ECE3872 HW/SW Project Code
Dependencies: mbed Servo mbed-rtos 4DGL-uLCD-SE PinDetect X_NUCLEO_53L0A1
speaker_out.h@26:2063ee8419cc, 2020-04-14 (annotated)
- Committer:
- trmontgomery
- Date:
- Tue Apr 14 01:40:26 2020 +0000
- Revision:
- 26:2063ee8419cc
- Parent:
- 18:0e0edd4f9e4d
map of distinct movements is playable. can record and play music at the same time.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rdobbs6 | 15:7565013b55df | 1 | #include "mbed.h" |
rdobbs6 | 15:7565013b55df | 2 | #include "Speaker.h" |
trmontgomery | 26:2063ee8419cc | 3 | #include <vector> |
trmontgomery | 26:2063ee8419cc | 4 | Timer t; |
trmontgomery | 26:2063ee8419cc | 5 | /* |
trmontgomery | 26:2063ee8419cc | 6 | void record(vector<float>& song) { |
trmontgomery | 26:2063ee8419cc | 7 | float freq; |
trmontgomery | 26:2063ee8419cc | 8 | char note; |
rdobbs6 | 15:7565013b55df | 9 | t.start(); |
trmontgomery | 26:2063ee8419cc | 10 | while(t.read() < 30){ |
rdobbs6 | 15:7565013b55df | 11 | note = pc.getc(); |
rdobbs6 | 15:7565013b55df | 12 | switch (note){ |
rdobbs6 | 15:7565013b55df | 13 | case 'a': |
trmontgomery | 26:2063ee8419cc | 14 | freq = 523.25; |
rdobbs6 | 15:7565013b55df | 15 | break; |
rdobbs6 | 15:7565013b55df | 16 | |
trmontgomery | 26:2063ee8419cc | 17 | case 's': |
trmontgomery | 26:2063ee8419cc | 18 | freq = 554.37; |
rdobbs6 | 15:7565013b55df | 19 | break; |
rdobbs6 | 15:7565013b55df | 20 | |
rdobbs6 | 15:7565013b55df | 21 | case 'd': |
trmontgomery | 26:2063ee8419cc | 22 | freq = 587.33; |
trmontgomery | 26:2063ee8419cc | 23 | break; |
trmontgomery | 26:2063ee8419cc | 24 | |
trmontgomery | 26:2063ee8419cc | 25 | case 'f': |
trmontgomery | 26:2063ee8419cc | 26 | freq = 622.25; |
trmontgomery | 26:2063ee8419cc | 27 | break; |
trmontgomery | 26:2063ee8419cc | 28 | |
trmontgomery | 26:2063ee8419cc | 29 | case 'g': |
trmontgomery | 26:2063ee8419cc | 30 | freq = 659.26; |
trmontgomery | 26:2063ee8419cc | 31 | break; |
trmontgomery | 26:2063ee8419cc | 32 | |
trmontgomery | 26:2063ee8419cc | 33 | case 'h': |
trmontgomery | 26:2063ee8419cc | 34 | freq = 698.46; |
trmontgomery | 26:2063ee8419cc | 35 | break; |
trmontgomery | 26:2063ee8419cc | 36 | |
trmontgomery | 26:2063ee8419cc | 37 | case 'j': |
trmontgomery | 26:2063ee8419cc | 38 | freq = 739.99; |
trmontgomery | 26:2063ee8419cc | 39 | break; |
trmontgomery | 26:2063ee8419cc | 40 | |
trmontgomery | 26:2063ee8419cc | 41 | case 'k': |
trmontgomery | 26:2063ee8419cc | 42 | freq = 783.99; |
trmontgomery | 26:2063ee8419cc | 43 | break; |
trmontgomery | 26:2063ee8419cc | 44 | |
trmontgomery | 26:2063ee8419cc | 45 | case 'l': |
trmontgomery | 26:2063ee8419cc | 46 | freq = 830.61; |
trmontgomery | 26:2063ee8419cc | 47 | break; |
trmontgomery | 26:2063ee8419cc | 48 | |
trmontgomery | 26:2063ee8419cc | 49 | case 'q': |
trmontgomery | 26:2063ee8419cc | 50 | freq = 880.00; |
trmontgomery | 26:2063ee8419cc | 51 | break; |
trmontgomery | 26:2063ee8419cc | 52 | |
trmontgomery | 26:2063ee8419cc | 53 | case 'w': |
trmontgomery | 26:2063ee8419cc | 54 | freq = 932.33; |
rdobbs6 | 15:7565013b55df | 55 | break; |
rdobbs6 | 15:7565013b55df | 56 | |
rdobbs6 | 15:7565013b55df | 57 | case 'e': |
trmontgomery | 26:2063ee8419cc | 58 | freq = 987.77; |
rdobbs6 | 15:7565013b55df | 59 | break; |
rdobbs6 | 15:7565013b55df | 60 | } |
trmontgomery | 26:2063ee8419cc | 61 | song.push_back(freq); |
trmontgomery | 26:2063ee8419cc | 62 | mySpeaker.PlayNote(freq,1.0,0.2); |
rdobbs6 | 15:7565013b55df | 63 | } |
trmontgomery | 26:2063ee8419cc | 64 | t.stop(); |
trmontgomery | 26:2063ee8419cc | 65 | } |
rdobbs6 | 15:7565013b55df | 66 | |
rdobbs6 | 15:7565013b55df | 67 | |
trmontgomery | 18:0e0edd4f9e4d | 68 | void audio_out() { |
rdobbs6 | 15:7565013b55df | 69 | record(freq); |
rdobbs6 | 15:7565013b55df | 70 | for (int i = 0; i<100; i++){ |
rdobbs6 | 15:7565013b55df | 71 | if (freq[i] == 0){ |
rdobbs6 | 15:7565013b55df | 72 | } |
rdobbs6 | 15:7565013b55df | 73 | else{ |
rdobbs6 | 15:7565013b55df | 74 | mySpeaker.PlayNote(freq[i],1.0,0.1); |
rdobbs6 | 15:7565013b55df | 75 | } |
rdobbs6 | 15:7565013b55df | 76 | } |
rdobbs6 | 15:7565013b55df | 77 | } |
trmontgomery | 26:2063ee8419cc | 78 | */ |