mirror of
https://github.com/s00500/SimpleExpressions
synced 2024-11-23 21:20:55 +00:00
246 lines
7.0 KiB
C
246 lines
7.0 KiB
C
#ifndef Sounds_h
|
|
#define Sounds_h
|
|
|
|
//***********************************************************************************
|
|
//*********************************SOUNDS DEFINES************************************
|
|
//***********************************************************************************
|
|
|
|
|
|
// Reference: This list was adapted from the table located here:
|
|
// http://www.phy.mtu.edu/~suits/notefreqs.html
|
|
#define NOTE_C0 16.35 //C0
|
|
#define NOTE_Db0 17.32 //C#0/Db0
|
|
#define NOTE_D0 18.35 //D0
|
|
#define NOTE_Eb0 19.45 //D#0/Eb0
|
|
#define NOTE_E0 20.6 //E0
|
|
#define NOTE_F0 21.83 //F0
|
|
#define NOTE_Gb0 23.12 //F#0/Gb0
|
|
#define NOTE_G0 24.5 //G0
|
|
#define NOTE_Ab0 25.96 //G#0/Ab0
|
|
#define NOTE_A0 27.5 //A0
|
|
#define NOTE_Bb0 29.14 //A#0/Bb0
|
|
#define NOTE_B0 30.87 //B0
|
|
#define NOTE_C1 32.7 //C1
|
|
#define NOTE_Db1 34.65 //C#1/Db1
|
|
#define NOTE_D1 36.71 //D1
|
|
#define NOTE_Eb1 38.89 //D#1/Eb1
|
|
#define NOTE_E1 41.2 //E1
|
|
#define NOTE_F1 43.65 //F1
|
|
#define NOTE_Gb1 46.25 //F#1/Gb1
|
|
#define NOTE_G1 49 //G1
|
|
#define NOTE_Ab1 51.91 //G#1/Ab1
|
|
#define NOTE_A1 55 //A1
|
|
#define NOTE_Bb1 58.27 //A#1/Bb1
|
|
#define NOTE_B1 61.74 //B1
|
|
#define NOTE_C2 65.41 //C2 (Middle C)
|
|
#define NOTE_Db2 69.3 //C#2/Db2
|
|
#define NOTE_D2 73.42 //D2
|
|
#define NOTE_Eb2 77.78 //D#2/Eb2
|
|
#define NOTE_E2 82.41 //E2
|
|
#define NOTE_F2 87.31 //F2
|
|
#define NOTE_Gb2 92.5 //F#2/Gb2
|
|
#define NOTE_G2 98 //G2
|
|
#define NOTE_Ab2 103.83 //G#2/Ab2
|
|
#define NOTE_A2 110 //A2
|
|
#define NOTE_Bb2 116.54 //A#2/Bb2
|
|
#define NOTE_B2 123.47 //B2
|
|
#define NOTE_C3 130.81 //C3
|
|
#define NOTE_Db3 138.59 //C#3/Db3
|
|
#define NOTE_D3 146.83 //D3
|
|
#define NOTE_Eb3 155.56 //D#3/Eb3
|
|
#define NOTE_E3 164.81 //E3
|
|
#define NOTE_F3 174.61 //F3
|
|
#define NOTE_Gb3 185 //F#3/Gb3
|
|
#define NOTE_G3 196 //G3
|
|
#define NOTE_Ab3 207.65 //G#3/Ab3
|
|
#define NOTE_A3 220 //A3
|
|
#define NOTE_Bb3 233.08 //A#3/Bb3
|
|
#define NOTE_B3 246.94 //B3
|
|
#define NOTE_C4 261.63 //C4
|
|
#define NOTE_Db4 277.18 //C#4/Db4
|
|
#define NOTE_D4 293.66 //D4
|
|
#define NOTE_Eb4 311.13 //D#4/Eb4
|
|
#define NOTE_E4 329.63 //E4
|
|
#define NOTE_F4 349.23 //F4
|
|
#define NOTE_Gb4 369.99 //F#4/Gb4
|
|
#define NOTE_G4 392 //G4
|
|
#define NOTE_Ab4 415.3 //G#4/Ab4
|
|
#define NOTE_A4 440 //A4
|
|
#define NOTE_Bb4 466.16 //A#4/Bb4
|
|
#define NOTE_B4 493.88 //B4
|
|
#define NOTE_C5 523.25 //C5
|
|
#define NOTE_Db5 554.37 //C#5/Db5
|
|
#define NOTE_D5 587.33 //D5
|
|
#define NOTE_Eb5 622.25 //D#5/Eb5
|
|
#define NOTE_E5 659.26 //E5
|
|
#define NOTE_F5 698.46 //F5
|
|
#define NOTE_Gb5 739.99 //F#5/Gb5
|
|
#define NOTE_G5 783.99 //G5
|
|
#define NOTE_Ab5 830.61 //G#5/Ab5
|
|
#define NOTE_A5 880 //A5
|
|
#define NOTE_Bb5 932.33 //A#5/Bb5
|
|
#define NOTE_B5 987.77 //B5
|
|
#define NOTE_C6 1046.5 //C6
|
|
#define NOTE_Db6 1108.73 //C#6/Db6
|
|
#define NOTE_D6 1174.66 //D6
|
|
#define NOTE_Eb6 1244.51 //D#6/Eb6
|
|
#define NOTE_E6 1318.51 //E6
|
|
#define NOTE_F6 1396.91 //F6
|
|
#define NOTE_Gb6 1479.98 //F#6/Gb6
|
|
#define NOTE_G6 1567.98 //G6
|
|
#define NOTE_Ab6 1661.22 //G#6/Ab6
|
|
#define NOTE_A6 1760 //A6
|
|
#define NOTE_Bb6 1864.66 //A#6/Bb6
|
|
#define NOTE_B6 1975.53 //B6
|
|
#define NOTE_C7 2093 //C7
|
|
#define NOTE_Db7 2217.46 //C#7/Db7
|
|
#define NOTE_D7 2349.32 //D7
|
|
#define NOTE_Eb7 2489.02 //D#7/Eb7
|
|
#define NOTE_E7 2637.02 //E7
|
|
#define NOTE_F7 2793.83 //F7
|
|
#define NOTE_Gb7 2959.96 //F#7/Gb7
|
|
#define NOTE_G7 3135.96 //G7
|
|
#define NOTE_Ab7 3322.44 //G#7/Ab7
|
|
#define NOTE_A7 3520 //A7
|
|
#define NOTE_Bb7 3729.31 //A#7/Bb7
|
|
#define NOTE_B7 3951.07 //B7
|
|
#define NOTE_C8 4186.01 //C8
|
|
#define NOTE_Db8 4434.92 //C#8/Db8
|
|
#define NOTE_D8 4698.64 //D8
|
|
#define NOTE_Eb8 4978.03 //D#8/Eb8
|
|
|
|
|
|
#define S_CONNECTION 0
|
|
#define S_DISCONNECTION 1
|
|
#define S_BUTTON_PUSHED 2
|
|
#define S_MODE1 3
|
|
#define S_MODE2 4
|
|
#define S_MODE3 5
|
|
#define S_SURPRISE 6
|
|
#define S_OHOOH 7
|
|
#define S_OHOOH2 8
|
|
#define S_CUDDLY 9
|
|
#define S_SLEEPING 10
|
|
#define S_HAPPY 11
|
|
#define S_SUPER_HAPPY 12
|
|
#define S_HAPPY_SHORT 13
|
|
#define S_SAD 14
|
|
#define S_CONFUSED 15
|
|
#define S_FART1 16
|
|
#define S_FART2 17
|
|
#define S_FART3 18
|
|
#define PIRATES 19
|
|
|
|
|
|
const int songspeed = 1;
|
|
|
|
const PROGMEM int notes[] = { //Note of the song, 0 is a rest/pulse
|
|
NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0,
|
|
NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0,
|
|
NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0,
|
|
NOTE_A4, NOTE_G4, NOTE_A4, 0,
|
|
|
|
NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0,
|
|
NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0,
|
|
NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0,
|
|
NOTE_A4, NOTE_G4, NOTE_A4, 0,
|
|
|
|
NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0,
|
|
NOTE_A4, NOTE_C5, NOTE_D5, NOTE_D5, 0,
|
|
NOTE_D5, NOTE_E5, NOTE_F5, NOTE_F5, 0,
|
|
NOTE_E5, NOTE_D5, NOTE_E5, NOTE_A4, 0,
|
|
|
|
NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0,
|
|
NOTE_D5, NOTE_E5, NOTE_A4, 0,
|
|
NOTE_A4, NOTE_C5, NOTE_B4, NOTE_B4, 0,
|
|
NOTE_C5, NOTE_A4, NOTE_B4, 0,
|
|
|
|
NOTE_A4, NOTE_A4,
|
|
//Repeat of first part
|
|
NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0,
|
|
NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0,
|
|
NOTE_A4, NOTE_G4, NOTE_A4, 0,
|
|
|
|
NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0,
|
|
NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0,
|
|
NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0,
|
|
NOTE_A4, NOTE_G4, NOTE_A4, 0,
|
|
|
|
NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0,
|
|
NOTE_A4, NOTE_C5, NOTE_D5, NOTE_D5, 0,
|
|
NOTE_D5, NOTE_E5, NOTE_F5, NOTE_F5, 0,
|
|
NOTE_E5, NOTE_D5, NOTE_E5, NOTE_A4, 0,
|
|
|
|
NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0,
|
|
NOTE_D5, NOTE_E5, NOTE_A4, 0,
|
|
NOTE_A4, NOTE_C5, NOTE_B4, NOTE_B4, 0,
|
|
NOTE_C5, NOTE_A4, NOTE_B4, 0,
|
|
//End of Repeat
|
|
|
|
NOTE_E5, 0, 0, NOTE_F5, 0, 0,
|
|
NOTE_E5, NOTE_E5, 0, NOTE_G5, 0, NOTE_E5, NOTE_D5, 0, 0,
|
|
NOTE_D5, 0, 0, NOTE_C5, 0, 0,
|
|
NOTE_B4, NOTE_C5, 0, NOTE_B4, 0, NOTE_A4,
|
|
|
|
NOTE_E5, 0, 0, NOTE_F5, 0, 0,
|
|
NOTE_E5, NOTE_E5, 0, NOTE_G5, 0, NOTE_E5, NOTE_D5, 0, 0,
|
|
NOTE_D5, 0, 0, NOTE_C5, 0, 0,
|
|
NOTE_B4, NOTE_C5, 0, NOTE_B4, 0, NOTE_A4
|
|
};
|
|
//*****************************************
|
|
const PROGMEM int duration[] = { //duration of each note (in ms) Quarter Note is set to 250 ms
|
|
125, 125, 250, 125, 125,
|
|
125, 125, 250, 125, 125,
|
|
125, 125, 250, 125, 125,
|
|
125, 125, 375, 125,
|
|
|
|
125, 125, 250, 125, 125,
|
|
125, 125, 250, 125, 125,
|
|
125, 125, 250, 125, 125,
|
|
125, 125, 375, 125,
|
|
|
|
125, 125, 250, 125, 125,
|
|
125, 125, 250, 125, 125,
|
|
125, 125, 250, 125, 125,
|
|
125, 125, 125, 250, 125,
|
|
|
|
125, 125, 250, 125, 125,
|
|
250, 125, 250, 125,
|
|
125, 125, 250, 125, 125,
|
|
125, 125, 375, 375,
|
|
|
|
250, 125,
|
|
//Rpeat of First Part
|
|
125, 125, 250, 125, 125,
|
|
125, 125, 250, 125, 125,
|
|
125, 125, 375, 125,
|
|
|
|
125, 125, 250, 125, 125,
|
|
125, 125, 250, 125, 125,
|
|
125, 125, 250, 125, 125,
|
|
125, 125, 375, 125,
|
|
|
|
125, 125, 250, 125, 125,
|
|
125, 125, 250, 125, 125,
|
|
125, 125, 250, 125, 125,
|
|
125, 125, 125, 250, 125,
|
|
|
|
125, 125, 250, 125, 125,
|
|
250, 125, 250, 125,
|
|
125, 125, 250, 125, 125,
|
|
125, 125, 375, 375,
|
|
//End of Repeat
|
|
|
|
250, 125, 375, 250, 125, 375,
|
|
125, 125, 125, 125, 125, 125, 125, 125, 375,
|
|
250, 125, 375, 250, 125, 375,
|
|
125, 125, 125, 125, 125, 500,
|
|
|
|
250, 125, 375, 250, 125, 375,
|
|
125, 125, 125, 125, 125, 125, 125, 125, 375,
|
|
250, 125, 375, 250, 125, 375,
|
|
125, 125, 125, 125, 125, 500
|
|
};
|
|
|
|
#endif
|