Here With You - short and simplified ver.

Dependencies:   mbed

Committer:
JosipLupinski
Date:
Wed Nov 23 22:37:23 2016 +0000
Revision:
0:77987057a515
END

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JosipLupinski 0:77987057a515 1 #include "mbed.h"
JosipLupinski 0:77987057a515 2
JosipLupinski 0:77987057a515 3 PwmOut speaker(p26);
JosipLupinski 0:77987057a515 4 AnalogIn pot1(p19);
JosipLupinski 0:77987057a515 5 AnalogIn pot2(p20);
JosipLupinski 0:77987057a515 6 DigitalIn joystickCenter(p14);
JosipLupinski 0:77987057a515 7
JosipLupinski 0:77987057a515 8 int main() {
JosipLupinski 0:77987057a515 9 /* note frequencies in Hz
JosipLupinski 0:77987057a515 10 * rows: C C# D Eb E F F# G G# A Bb B
JosipLupinski 0:77987057a515 11 * columns: 0 1 2 3 4 5 6 7 8
JosipLupinski 0:77987057a515 12 */
JosipLupinski 0:77987057a515 13 enum noteNames {A3, E4, GH4, A4, B4, CH5, DH5, E5, FH5, GH5, A5, B5, CH6, DH6, E6, FH6, GH6, A6, B6, CH7, DH7, E7, B7};
JosipLupinski 0:77987057a515 14 float nt[23][9] = { {220.0}, {329.63}, {415.30}, {440.0}, {493.88}, {554.37}, {622.25}, {659.25}, {739.99}, {830.61}, {880.0}, {987.77}, {1108.73},
JosipLupinski 0:77987057a515 15 {1244.51}, {1318.51}, {1479.98}, {1661.22}, {1760.0}, {1975.53}, {2217.46}, {2489.02}, {2637.02}, {3951.07} };
JosipLupinski 0:77987057a515 16 for (int i = 0; i < 12; i++)
JosipLupinski 0:77987057a515 17 for (int j = 1; j < 9; j++)
JosipLupinski 0:77987057a515 18 nt[i][j] = nt[i][j-1] * 2;
JosipLupinski 0:77987057a515 19
JosipLupinski 0:77987057a515 20 while(1) {
JosipLupinski 0:77987057a515 21 int scale = 0 * 8;
JosipLupinski 0:77987057a515 22 float speed = 0.05 + pot1;
JosipLupinski 0:77987057a515 23 float notesHere_with_you[] = {nt[E6][scale], 0, nt[E7][scale], 0, nt[DH7][scale], 0, nt[E6][scale], 0, nt[CH7][scale], 0, nt[A5][scale], 0,
JosipLupinski 0:77987057a515 24 nt[B4][scale], 0, nt[FH5][scale], 0, nt[FH6][scale], 0, nt[E6][scale], 0, nt[DH6][scale], 0, nt[E5][scale], 0, nt[DH5][scale], 0,
JosipLupinski 0:77987057a515 25 nt[CH5][scale], 0, nt[E7][scale], 0, nt[DH7][scale], 0, nt[E6][scale], 0, nt[CH7][scale], 0, nt[A5][scale], 0, nt[B4][scale], 0,
JosipLupinski 0:77987057a515 26 nt[FH5][scale], 0, nt[B5][scale], 0, nt[E6][scale], 0, nt[DH6][scale], 0, nt[B5][scale], 0, nt[A3][scale], 0, nt[E4][scale], 0,
JosipLupinski 0:77987057a515 27 nt[CH6][scale], 0, nt[E5][scale], 0, nt[DH6][scale], 0, nt[E5][scale], 0, nt[E6][scale], 0, nt[E5][scale], 0, nt[B5][scale], 0,
JosipLupinski 0:77987057a515 28 nt[E4][scale], 0, nt[GH4][scale], 0, nt[B4][scale], 0, nt[E5][scale], 0, nt[A3][scale], 0, nt[E4][scale], 0, nt[CH6][scale], 0,
JosipLupinski 0:77987057a515 29 nt[E5][scale], 0, nt[DH6][scale], 0, nt[E5][scale], 0, nt[E6][scale], 0, nt[E5][scale], 0, nt[E6][scale], 0, nt[FH6][scale], 0,
JosipLupinski 0:77987057a515 30 nt[B6][scale], 0, nt[GH6][scale], 0, nt[E5][scale], 0, nt[GH6][scale], 0, nt[CH6][scale], 0, nt[DH6][scale], 0, nt[E6][scale], 0,
JosipLupinski 0:77987057a515 31 nt[A3][scale], 0, nt[A4][scale], 0, nt[A3][scale], 0, nt[E4][scale], 0, nt[E5][scale], 0, nt[B5][scale], 0, nt[E6][scale], 0,
JosipLupinski 0:77987057a515 32 nt[B6][scale], 0, nt[A6][scale], 0, nt[E7][scale], 0, nt[E6][scale], 0, nt[A6][scale], 0, nt[E7][scale], 0, nt[B7][scale], 0};
JosipLupinski 0:77987057a515 33 float beatHere_with_you[] = {2, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 4, 0.5, 4, 0.5, 2, 0.5, 2, 0.5, 0.25, 0.5, 2.75, 0.5, 1, 0.5, 5, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 2, 0.5,
JosipLupinski 0:77987057a515 34 2, 0.5, 4, 0.5, 4, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 4, 4, 0.5, 4, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 2, 0.5,
JosipLupinski 0:77987057a515 35 2, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 4, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 0.25, 0.5, 1.25, 0.5,
JosipLupinski 0:77987057a515 36 2, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 1, 0.5, 1, 0.5, 2, 0.5, 2, 0.5, 1, 0.5, 3, 0.5, 2, 0.5, 2, 0.5, 2, 0.5, 2, 0.5,
JosipLupinski 0:77987057a515 37 2, 0.5, 2, 0.5, 2, 0.5, 2, 4, 4 };
JosipLupinski 0:77987057a515 38 wait(4);
JosipLupinski 0:77987057a515 39
JosipLupinski 0:77987057a515 40 for (int i = 0; i < 100; i++) {
JosipLupinski 0:77987057a515 41 speaker.period(1 / (2*notesHere_with_you[i]) );
JosipLupinski 0:77987057a515 42 speaker = 0.5;
JosipLupinski 0:77987057a515 43 wait(speed * beatHere_with_you[i]);
JosipLupinski 0:77987057a515 44 }
JosipLupinski 0:77987057a515 45 if (joystickCenter) // press joystick center to stop playing
JosipLupinski 0:77987057a515 46 break;
JosipLupinski 0:77987057a515 47 }
JosipLupinski 0:77987057a515 48 }