fixed interface function names, add sound functionality
This commit is contained in:
@ -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]);
|
||||
}
|
Reference in New Issue
Block a user