Bluetooth Enabled Keyboard/Synthesizer
Dependencies: 4DGL-uLCD-SE SDFileSystem mbed-rtos mbed
Fork of 4180_Final_Design_Project by
synthesizer.h@26:d4000870deab, 2016-05-01 (annotated)
- Committer:
- Jake867
- Date:
- Sun May 01 22:51:18 2016 +0000
- Revision:
- 26:d4000870deab
- Parent:
- 24:3bd4e691ae59
Set
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jmpin | 2:f06ba516b1ad | 1 | #include "mbed.h" |
jmpin | 2:f06ba516b1ad | 2 | |
jmpin | 2:f06ba516b1ad | 3 | #define NUM_OCTAVE (7) // Number of octaves |
jmpin | 2:f06ba516b1ad | 4 | #define NUM_NOTE (7) // Number of notes in each octave |
jmpin | 2:f06ba516b1ad | 5 | |
jmpin | 2:f06ba516b1ad | 6 | //Types of waveforms |
jmpin | 2:f06ba516b1ad | 7 | |
jmpin | 2:f06ba516b1ad | 8 | enum WaveType{ sine, square, sawtooth}; |
jmpin | 2:f06ba516b1ad | 9 | |
jmpin | 8:f6699fd30737 | 10 | #define PI 3.14159265 |
jmpin | 8:f6699fd30737 | 11 | |
jmpin | 2:f06ba516b1ad | 12 | //Note Frequencies |
jmpin | 2:f06ba516b1ad | 13 | #define C1 (33) |
jmpin | 2:f06ba516b1ad | 14 | #define D1 (37) |
jmpin | 2:f06ba516b1ad | 15 | #define E1 (41) |
jmpin | 2:f06ba516b1ad | 16 | #define F1 (44) |
jmpin | 2:f06ba516b1ad | 17 | #define G1 (49) |
jmpin | 2:f06ba516b1ad | 18 | #define A1 (55) |
jmpin | 2:f06ba516b1ad | 19 | #define B1 (62) |
jmpin | 2:f06ba516b1ad | 20 | |
jmpin | 2:f06ba516b1ad | 21 | #define C2 (65) |
jmpin | 2:f06ba516b1ad | 22 | #define D2 (73) |
jmpin | 2:f06ba516b1ad | 23 | #define E2 (82) |
jmpin | 2:f06ba516b1ad | 24 | #define F2 (87) |
jmpin | 2:f06ba516b1ad | 25 | #define G2 (98) |
jmpin | 2:f06ba516b1ad | 26 | #define A2 (110) |
jmpin | 2:f06ba516b1ad | 27 | #define B2 (125) |
jmpin | 2:f06ba516b1ad | 28 | |
jmpin | 2:f06ba516b1ad | 29 | #define C3 (131) |
jmpin | 2:f06ba516b1ad | 30 | #define D3 (147) |
jmpin | 2:f06ba516b1ad | 31 | #define E3 (165) |
jmpin | 2:f06ba516b1ad | 32 | #define F3 (175) |
jmpin | 2:f06ba516b1ad | 33 | #define G3 (196) |
jmpin | 2:f06ba516b1ad | 34 | #define A3 (220) |
jmpin | 2:f06ba516b1ad | 35 | #define B3 (247) |
jmpin | 2:f06ba516b1ad | 36 | |
jmpin | 2:f06ba516b1ad | 37 | #define C4 (262) |
jmpin | 2:f06ba516b1ad | 38 | #define D4 (294) |
jmpin | 2:f06ba516b1ad | 39 | #define E4 (330) |
jmpin | 2:f06ba516b1ad | 40 | #define F4 (349) |
jmpin | 2:f06ba516b1ad | 41 | #define G4 (392) |
jmpin | 2:f06ba516b1ad | 42 | #define A4 (440) |
jmpin | 2:f06ba516b1ad | 43 | #define B4 (494) |
jmpin | 2:f06ba516b1ad | 44 | |
jmpin | 2:f06ba516b1ad | 45 | #define C5 (523) |
jmpin | 2:f06ba516b1ad | 46 | #define D5 (587) |
jmpin | 2:f06ba516b1ad | 47 | #define E5 (659) |
jmpin | 2:f06ba516b1ad | 48 | #define F5 (698) |
jmpin | 2:f06ba516b1ad | 49 | #define G5 (784) |
jmpin | 2:f06ba516b1ad | 50 | #define A5 (880) |
jmpin | 2:f06ba516b1ad | 51 | #define B5 (988) |
jmpin | 2:f06ba516b1ad | 52 | |
jmpin | 2:f06ba516b1ad | 53 | #define C6 (1047) |
jmpin | 2:f06ba516b1ad | 54 | #define D6 (1175) |
jmpin | 2:f06ba516b1ad | 55 | #define E6 (1319) |
jmpin | 2:f06ba516b1ad | 56 | #define F6 (1397) |
jmpin | 2:f06ba516b1ad | 57 | #define G6 (1568) |
jmpin | 2:f06ba516b1ad | 58 | #define A6 (1760) |
jmpin | 2:f06ba516b1ad | 59 | #define B6 (1976) |
jmpin | 2:f06ba516b1ad | 60 | |
jmpin | 2:f06ba516b1ad | 61 | #define C7 (2093) |
jmpin | 2:f06ba516b1ad | 62 | #define D7 (2349) |
jmpin | 2:f06ba516b1ad | 63 | #define E7 (2637) |
jmpin | 2:f06ba516b1ad | 64 | #define F7 (2794) |
jmpin | 2:f06ba516b1ad | 65 | #define G7 (3136) |
jmpin | 2:f06ba516b1ad | 66 | #define A7 (3520) |
jmpin | 2:f06ba516b1ad | 67 | #define B7 (3951) |
jmpin | 2:f06ba516b1ad | 68 | |
jmpin | 2:f06ba516b1ad | 69 | // Key Bindings |
jmpin | 2:f06ba516b1ad | 70 | |
jmpin | 3:3aba1d783730 | 71 | #define C_NOTE_KEY 'Z' |
jmpin | 3:3aba1d783730 | 72 | #define D_NOTE_KEY 'X' |
jmpin | 3:3aba1d783730 | 73 | #define E_NOTE_KEY 'C' |
jmpin | 3:3aba1d783730 | 74 | #define F_NOTE_KEY 'V' |
jmpin | 3:3aba1d783730 | 75 | #define G_NOTE_KEY 'B' |
jmpin | 3:3aba1d783730 | 76 | #define A_NOTE_KEY 'N' |
jmpin | 3:3aba1d783730 | 77 | #define B_NOTE_KEY 'M' |
jmpin | 2:f06ba516b1ad | 78 | #define RAISE_OCTAVE_KEY 'O' |
jmpin | 2:f06ba516b1ad | 79 | #define LOWER_OCTAVE_KEY 'L' |
jmpin | 24:3bd4e691ae59 | 80 | //#define RAISE_ATTACK_KEY 'Q' |
jmpin | 24:3bd4e691ae59 | 81 | //#define LOWER_ATTACK_KEY 'A' |
jmpin | 24:3bd4e691ae59 | 82 | //#define RAISE_DELAY_KEY 'W' |
jmpin | 24:3bd4e691ae59 | 83 | //#define LOWER_DELAY_KEY 'S' |
jmpin | 24:3bd4e691ae59 | 84 | #define RAISE_DURATION_KEY 'E' |
jmpin | 24:3bd4e691ae59 | 85 | #define LOWER_DURATION_KEY 'D' |
jmpin | 24:3bd4e691ae59 | 86 | #define RAISE_ADSR_KEY 'R' |
jmpin | 24:3bd4e691ae59 | 87 | #define LOWER_ADSR_KEY 'F' |
jmpin | 2:f06ba516b1ad | 88 | #define CHANGE_WAVESHAPE_UP 'T' |
jmpin | 2:f06ba516b1ad | 89 | #define CHANGE_WAVESHAPE_DOWN 'G' |