Sound update
Dependencies: 4DGL-uLCD-SE Physac-MBED PinDetect SDFileSystem mbed-rtos mbed
Diff: main.cpp
- Revision:
- 27:a09981ebd532
- Parent:
- 26:163d7ca8c42d
- Child:
- 28:bccd14334bb9
diff -r 163d7ca8c42d -r a09981ebd532 main.cpp --- a/main.cpp Thu Dec 08 02:12:14 2022 +0000 +++ b/main.cpp Thu Dec 08 18:42:16 2022 +0000 @@ -35,11 +35,10 @@ PwmOut Rgb(p23); PwmOut rGb(p24); PwmOut rgB(p25); -//Speaker DACout(p18); +Speaker DACout(p18); //wave_player waver(&DACout); - //////////////////////////////// // MAIN.CPP LOCAL DEFINITIONS // //////////////////////////////// @@ -55,34 +54,253 @@ ////////////////////// // MAIN.CPP THREADS // ////////////////////// -/* + void audioThread() { while (true) { - FILE *wave_file; + //FILE *wave_file; while (game1 == false && game2 == false) { - led2 = true; + DACout.PlayNote(369.99, 0.4, 1); + DACout.PlayNote(0, 0.4, 1); + DACout.PlayNote(466.16, 0.2, 1); + DACout.PlayNote(554.37, 0.2, 1); + if(game1 == true || game2 == true) break; + DACout.PlayNote(0, 0.4, 1); + DACout.PlayNote(466.16, 0.4, 1); + DACout.PlayNote(0, 0.4, 1); + DACout.PlayNote(369.99, 0.4, 1); + if(game1 == true || game2 == true) break; + DACout.PlayNote(293.66, 0.2, 1); + DACout.PlayNote(293.66, 0.2, 1); + DACout.PlayNote(293.66, 0.2, 1); + DACout.PlayNote(0, 0.8, 1); + if(game1 == true || game2 == true) break; + DACout.PlayNote(277.18, 0.4, 1); + DACout.PlayNote(293.66, 0.2, 1); + DACout.PlayNote(369.99, 0.2, 1); + DACout.PlayNote(466.16, 0.2, 1); + if(game1 == true || game2 == true) break; + DACout.PlayNote(554.37, 0.2, 1); + DACout.PlayNote(0, 0.4, 1); + DACout.PlayNote(466.16, 0.4, 1); + DACout.PlayNote(0, 0.4, 1); + if(game1 == true || game2 == true) break; + DACout.PlayNote(369.99, 0.4, 1); + DACout.PlayNote(659.25, 0.4, 1); + DACout.PlayNote(622.25, 0.4, 1); + DACout.PlayNote(587.33, 0.4, 1); + if(game1 == true || game2 == true) break; + DACout.PlayNote(0, 0.4, 1); + + + + DACout.PlayNote(392.00, 0.4, 1); + DACout.PlayNote(0, 0.4, 1); + DACout.PlayNote(554.37, 0.2, 1); + if(game1 == true || game2 == true) break; + DACout.PlayNote(369.99, 0.2, 1); + DACout.PlayNote(0, 0.4, 1); + DACout.PlayNote(554.37, 0.4, 1); + DACout.PlayNote(0, 0.4, 1); + if(game1 == true || game2 == true) break; + DACout.PlayNote(329.00, 0.4, 1); + DACout.PlayNote(0, 0.4, 1); + DACout.PlayNote(523.25, 0.4, 1); + DACout.PlayNote(0, 0.4, 1); + if(game1 == true || game2 == true) break; + DACout.PlayNote(329.00, 0.4, 1); + DACout.PlayNote(369.99, 0.4, 1); + DACout.PlayNote(0, 0.4, 1); + DACout.PlayNote(329.63, 0.4, 1); + if(game1 == true || game2 == true) break; + DACout.PlayNote(0, 0.4, 1); + DACout.PlayNote(277.18, 0.2, 1); + DACout.PlayNote(277.18, 0.2, 1); + DACout.PlayNote(277.18, 0.2, 1); + if(game1 == true || game2 == true) break; + DACout.PlayNote(0, 0.4, 1); + DACout.PlayNote(0, 0.4, 1); + DACout.PlayNote(277.18, 0.2, 1); + DACout.PlayNote(277.18, 0.2, 1); + if(game1 == true || game2 == true) break; + DACout.PlayNote(277.18, 0.4, 1); + DACout.PlayNote(0, 0.4, 1); + DACout.PlayNote(0, 0.4, 1); + DACout.PlayNote(311.13, 0.4, 1); + if(game1 == true || game2 == true) break; + DACout.PlayNote(293.66, 0.4, 1); + //DACout.PlayNote(440.00, 0.3, 1); + + /*led2 = true; wave_file=fopen("/sd/MiiMenu.wav","r"); + PRINTF("Opening"); waver.play(wave_file); fclose(wave_file); - led2 = false; + led2 = false;*/ } while (game1 == true && game2 == false) { - led2 = true; + DACout.PlayNote(659.25, 0.3, 1); + DACout.PlayNote(493.88, 0.3, 1); + DACout.PlayNote(523.25, 0.3, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(587.33, 0.3, 1); + DACout.PlayNote(523.25, 0.3, 1); + DACout.PlayNote(493.88, 0.3, 1); + DACout.PlayNote(440.00, 0.3, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(440.00, 0.3, 1); + DACout.PlayNote(523.25, 0.3, 1); + DACout.PlayNote(659.25, 0.3, 1); + DACout.PlayNote(587.33, 0.3, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(523.25, 0.3, 1); + DACout.PlayNote(493.88, 0.3, 1); + DACout.PlayNote(523.25, 0.3, 1); + DACout.PlayNote(587.33, 0.3, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(659.25, 0.3, 1); + DACout.PlayNote(523.25, 0.3, 1); + DACout.PlayNote(440.00, 0.3, 1); + DACout.PlayNote(440.00, 0.3, 1); + if(game1 != true && game2 == false) break; + + DACout.PlayNote(583.33, 0.3, 1); + DACout.PlayNote(698.46, 0.3, 1); + DACout.PlayNote(880.00, 0.3, 1); + DACout.PlayNote(783.99, 0.3, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(698.46, 0.3, 1); + DACout.PlayNote(659.25, 0.3, 1); + DACout.PlayNote(523.25, 0.3, 1); + DACout.PlayNote(659.25, 0.3, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(587.33, 0.3, 1); + DACout.PlayNote(523.25, 0.3, 1); + DACout.PlayNote(493.88, 0.3, 1); + DACout.PlayNote(493.88, 0.3, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(523.25, 0.3, 1); + DACout.PlayNote(587.33, 0.3, 1); + DACout.PlayNote(659.25, 0.3, 1); + DACout.PlayNote(523.35, 0.3, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(440.00, 0.3, 1); + DACout.PlayNote(440.00, 0.3, 1); + /* led2 = true; wave_file=fopen("/sd/tetris.wav","r"); waver.play(wave_file); fclose(wave_file); - led2 = false; + led2 = false;*/ } while (game2 == true && game1 == false) { - led2 = true; + DACout.PlayNote(329.63, 0.6, 1); + DACout.PlayNote(349.23, 0.6, 1); + DACout.PlayNote(392.00, 0.15, 1); + DACout.PlayNote(523.25, 0.15, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(493.88, 0.15, 1); + DACout.PlayNote(523.25, 0.15, 1); + DACout.PlayNote(392.00, 0.15, 1); + DACout.PlayNote(329.63, 0.15, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(261.63, 0.15, 1); + DACout.PlayNote(293.66, 0.15, 1); + DACout.PlayNote(329.33, 0.15, 1); + DACout.PlayNote(293.66, 0.6, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(293.66, 1.2, 1); + DACout.PlayNote(329.63, 0.6, 1); + DACout.PlayNote(349.23, 0.3, 1); + DACout.PlayNote(329.63, 0.15, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(349.23, 0.15, 1); + + + DACout.PlayNote(392.00, 0.15, 1); + DACout.PlayNote(523.25, 0.15, 1); + DACout.PlayNote(587.33, 0.15, 1); + DACout.PlayNote(523.25, 0.3, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(587.33, 0.1, 1); + DACout.PlayNote(659.25, 0.1, 1); + DACout.PlayNote(698.46, 0.15, 1); + DACout.PlayNote(659.25, 0.15, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(587.33, 0.15, 1); + DACout.PlayNote(523.25, 0.3, 1); + DACout.PlayNote(392.00, 0.15, 1); + DACout.PlayNote(440.00, 0.15, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(440.00, 0.15, 1); + DACout.PlayNote(587.33, 0.15, 1); + DACout.PlayNote(587.33, 0.1, 1); + DACout.PlayNote(587.33, 0.15, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(587.33, 0.1, 1); + DACout.PlayNote(659.25, 0.1, 1); + DACout.PlayNote(698.46, 0.15, 1); + DACout.PlayNote(659.25, 0.15, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(587.33, 0.15, 1); + DACout.PlayNote(523.25, 0.3, 1); + DACout.PlayNote(392.00, 0.3, 1); + DACout.PlayNote(392.00, 0.6, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(392.00, 0.15, 1); + DACout.PlayNote(587.33, 0.1, 1); + DACout.PlayNote(659.25, 0.1, 1); + DACout.PlayNote(698.46, 0.15, 1); + DACout.PlayNote(659.25, 0.15, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(587.33, 0.15, 1); + DACout.PlayNote(523.25, 0.3, 1); + DACout.PlayNote(783.99, 0.3, 1); + DACout.PlayNote(783.99, 0.6, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(783.99, 0.15, 1); + DACout.PlayNote(783.99, 0.1, 1); + DACout.PlayNote(880.00, 0.1, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(932.33, 0.15, 1); + DACout.PlayNote(880.00, 0.15, 1); + DACout.PlayNote(783.99, 0.15, 1); + DACout.PlayNote(698.46, 0.6, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(830.61, 0.15, 1); + DACout.PlayNote(783.99, 0.15, 1); + DACout.PlayNote(698.46, 0.15, 1); + DACout.PlayNote(622.25, 0.3, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(739.99, 0.15, 1); + DACout.PlayNote(698.46, 0.1, 1); + DACout.PlayNote(698.46, 0.15, 1); + DACout.PlayNote(622.25, 0.15, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(554.37, 0.15, 1); + DACout.PlayNote(415.30, 0.15, 1); + DACout.PlayNote(349.23, 0.15, 1); + DACout.PlayNote(277.18, 0.15, 1); + DACout.PlayNote(311.13, 0.3, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(554.37, 0.3, 1); + DACout.PlayNote(587.33, 0.6, 1); + DACout.PlayNote(587.33, 0.6, 1); + DACout.PlayNote(587.33, 0.15, 1); + DACout.PlayNote(392.00, 0.15, 1); + if(game1 != true && game2 == false) break; + DACout.PlayNote(587.33, 0.3, 1); + DACout.PlayNote(783.99, 0.3, 1); + DACout.PlayNote(783.99, 0.6, 1); + DACout.PlayNote(783.99, 1.2, 1); + if(game1 != true && game2 == false) break; + /*led2 = true; wave_file=fopen("/sd/WiiPlayAirHockey.wav","r"); waver.play(wave_file); fclose(wave_file); - led2 = false; + led2 = false;*/ } } -}*/ +} void ledThread() { @@ -113,10 +331,18 @@ // Launch four threads Thread thread1(tetrisGame, osPriorityHigh); Thread thread2(hockeyGame, osPriorityHigh); - //Thread thread3(audioThread, osPriorityLow); + Thread thread3(audioThread, osPriorityLow); Thread thread4(ledThread, osPriorityLow); // The main thread goes on to blink LEDs + //Speaker mySpeaker(p18); + // loops forever playing two notes on speaker using analog samples + //PRINTF("test"); +// while(1) { +// //mySpeaker.PlayNote(969.0, 0.5, 1.0); +//// mySpeaker.PlayNote(800.0, 0.5, 1.0); +// //PRINTF("loop"); +// } while (true) { led1 = 1; Thread::wait(500); @@ -143,7 +369,7 @@ PRINTF("[MAIN] Thread stacks: %lu %lu %lu %lu\r\n", thread1.used_stack(), thread2.used_stack(), - //thread3.used_stack(), + thread3.used_stack(), thread4.used_stack()); // Launch into the air hockey game