fixed interface function names, add sound functionality

This commit is contained in:
Matthias L. Jugel
2016-10-27 17:44:38 +02:00
parent e0735188fa
commit 96d5dc2064
5 changed files with 170 additions and 63 deletions

View File

@ -1,52 +1,3 @@
function note(n: Note, l: BeatFraction) {
return [music.noteFrequency(n), music.beat(l)];
}
var notes = [
note(Note.E, BeatFraction.Quarter), note(Note.E, BeatFraction.Quarter), note(Note.F, BeatFraction.Quarter),
note(Note.G, BeatFraction.Quarter), note(Note.G, BeatFraction.Quarter), note(Note.F, BeatFraction.Quarter),
note(Note.E, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter), note(Note.C, BeatFraction.Quarter),
note(Note.C, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter), note(Note.E, BeatFraction.Quarter),
note(Note.E, BeatFraction.Quarter + BeatFraction.Eighth),
note(Note.D, BeatFraction.Eighth), note(Note.D, BeatFraction.Half),
note(Note.E, BeatFraction.Quarter), note(Note.E, BeatFraction.Quarter), note(Note.F, BeatFraction.Quarter),
note(Note.G, BeatFraction.Quarter), note(Note.G, BeatFraction.Quarter), note(Note.F, BeatFraction.Quarter),
note(Note.E, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter), note(Note.C, BeatFraction.Quarter),
note(Note.C, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter), note(Note.E, BeatFraction.Quarter),
note(Note.D, BeatFraction.Quarter + BeatFraction.Eighth),
note(Note.C, BeatFraction.Eighth), note(Note.C, BeatFraction.Half),
note(Note.D, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter), note(Note.E, BeatFraction.Quarter),
note(Note.C, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter),
note(Note.E, BeatFraction.Eighth), note(Note.F, BeatFraction.Eighth),
note(Note.E, BeatFraction.Quarter), note(Note.C, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter),
note(Note.E, BeatFraction.Eighth), note(Note.F, BeatFraction.Eighth),
note(Note.E, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter), note(Note.C, BeatFraction.Quarter),
note(Note.D, BeatFraction.Quarter), note(Note.G3, BeatFraction.Quarter), note(Note.E, BeatFraction.Half),
note(Note.E, BeatFraction.Quarter), note(Note.F, BeatFraction.Quarter), note(Note.G, BeatFraction.Quarter),
note(Note.G, BeatFraction.Quarter), note(Note.F, BeatFraction.Quarter), note(Note.E, BeatFraction.Quarter),
note(Note.E, BeatFraction.Eighth), note(Note.F, BeatFraction.Eighth),
note(Note.C, BeatFraction.Quarter), note(Note.C, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter),
note(Note.E, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter + BeatFraction.Eighth),
note(Note.C, BeatFraction.Eighth), note(Note.C, BeatFraction.Half)
];
let whole = music.beat(BeatFraction.Whole);
for (var t = 0; t < notes.length; t++) {
serial.writeNumber(notes[t][0]);
serial.writeNumber(notes[t][1]);
serial.writeLine("\r\n");
music.playTone(notes[t][0], notes[t][1]);
basic.pause(whole - notes[t][1]);
}
/*music.playTone(Note.A, 2000);
music.playTone(Note.C, 2000);
music.playTone(Note.F, 2000);
music.playTone(Note.A, 100);
music.playTone(1000, 100);
music.playTone(3000, 100);
basic.setLedColor(Colors.Blue);
basic.pause(500);
basic.setLedColor(Colors.Red);
@ -99,4 +50,123 @@ input.onPinPressed(TouchPin.P2, () => {
input.onPinPressed(TouchPin.P3, () => {
basic.showNumber(3);
});
*/
music.setTempo(150);
let whole = music.beat(BeatFraction.Whole);
function note(n: Note, l: BeatFraction): number[] {
return [music.noteFrequency(n), music.beat(l)];
}
function getNoteName(frequency: number): string {
switch (frequency) {
case 262:
return "C";
case 277:
return "CSharp";
case 294:
return "D";
case 311:
return "Eb";
case 330:
return "E";
case 349:
return "F";
case 370:
return "FSharp";
case 392:
return "G";
case 415:
return "GSharp";
case 440:
return "A";
case 466:
return "Bb";
case 494:
return "B";
case 131:
return "C3";
case 139:
return "CSharp3";
case 147:
return "D3";
case 156:
return "Eb3";
case 165:
return "E3";
case 175:
return "F3";
case 185:
return "FSharp3";
case 196:
return "G3";
case 208:
return "GSharp3";
case 220:
return "A3";
case 233:
return "Bb3";
case 247:
return "B3";
case 523:
return "C5";
case 555:
return "CSharp5";
case 587:
return "D5";
case 622:
return "Eb5";
case 659:
return "E5";
case 698:
return "F5";
case 740:
return "FSharp5";
case 784:
return "G5";
case 831:
return "GSharp5";
case 880:
return "A5";
case 932:
return "Bb5";
case 989:
return "B5";
default:
return "?";
}
}
var notes = [
note(Note.E, BeatFraction.Quarter), note(Note.E, BeatFraction.Quarter), note(Note.F, BeatFraction.Quarter),
note(Note.G, BeatFraction.Quarter), note(Note.G, BeatFraction.Quarter), note(Note.F, BeatFraction.Quarter),
note(Note.E, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter), note(Note.C, BeatFraction.Quarter),
note(Note.C, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter), note(Note.E, BeatFraction.Quarter),
note(Note.E, BeatFraction.Quarter + BeatFraction.Eighth),
note(Note.D, BeatFraction.Eighth), note(Note.D, BeatFraction.Half),
note(Note.E, BeatFraction.Quarter), note(Note.E, BeatFraction.Quarter), note(Note.F, BeatFraction.Quarter),
note(Note.G, BeatFraction.Quarter), note(Note.G, BeatFraction.Quarter), note(Note.F, BeatFraction.Quarter),
note(Note.E, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter), note(Note.C, BeatFraction.Quarter),
note(Note.C, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter), note(Note.E, BeatFraction.Quarter),
note(Note.D, BeatFraction.Quarter + BeatFraction.Eighth),
note(Note.C, BeatFraction.Eighth), note(Note.C, BeatFraction.Half),
note(Note.D, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter), note(Note.E, BeatFraction.Quarter),
note(Note.C, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter),
note(Note.E, BeatFraction.Eighth), note(Note.F, BeatFraction.Eighth),
note(Note.E, BeatFraction.Quarter), note(Note.C, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter),
note(Note.E, BeatFraction.Eighth), note(Note.F, BeatFraction.Eighth),
note(Note.E, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter), note(Note.C, BeatFraction.Quarter),
note(Note.D, BeatFraction.Quarter), note(Note.G3, BeatFraction.Quarter), note(Note.E, BeatFraction.Half),
note(Note.E, BeatFraction.Quarter), note(Note.F, BeatFraction.Quarter), note(Note.G, BeatFraction.Quarter),
note(Note.G, BeatFraction.Quarter), note(Note.F, BeatFraction.Quarter), note(Note.E, BeatFraction.Quarter),
note(Note.E, BeatFraction.Eighth), note(Note.F, BeatFraction.Eighth),
note(Note.C, BeatFraction.Quarter), note(Note.C, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter),
note(Note.E, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter + BeatFraction.Eighth),
note(Note.C, BeatFraction.Eighth), note(Note.C, BeatFraction.Half)
];
for (var t = 0; t < notes.length; t++) {
music.playTone(notes[t][0], notes[t][1]);
basic.showString(getNoteName(notes[t][0]));
music.rest(whole - notes[t][1]);
}