try to use uBit.soundmotor sound functions
This commit is contained in:
parent
a4ba24d6ef
commit
e0735188fa
@ -1,278 +1,52 @@
|
|||||||
// Für Elise...
|
function note(n: Note, l: BeatFraction) {
|
||||||
|
return [music.noteFrequency(n), music.beat(l)];
|
||||||
|
}
|
||||||
|
|
||||||
// play e4
|
|
||||||
music.playTone(330, 300);
|
|
||||||
basic.pause(350);
|
|
||||||
// play d4#
|
|
||||||
music.playTone(311, 300);
|
|
||||||
basic.pause(350);
|
|
||||||
// play e4
|
|
||||||
music.playTone(330, 300);
|
|
||||||
basic.pause(350);
|
|
||||||
// play d4#
|
|
||||||
music.playTone(311, 300);
|
|
||||||
basic.pause(350);
|
|
||||||
// play e4
|
|
||||||
music.playTone(330, 300);
|
|
||||||
basic.pause(350);
|
|
||||||
// play b3
|
|
||||||
music.playTone(247, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play d4
|
|
||||||
music.playTone(294, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play c4
|
|
||||||
music.playTone(262, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play a3
|
|
||||||
music.playTone(220, 900);
|
|
||||||
basic.pause(1000);
|
|
||||||
// play d3
|
|
||||||
music.playTone(147, 300);
|
|
||||||
basic.pause(350);
|
|
||||||
//play f3
|
|
||||||
music.playTone(175, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
//play a3
|
|
||||||
music.playTone(220, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play b3
|
|
||||||
music.playTone(247, 900);
|
|
||||||
basic.pause(1000);
|
|
||||||
// play f3
|
|
||||||
music.playTone(175, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play a3#
|
|
||||||
music.playTone(233, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play b3
|
|
||||||
music.playTone(247, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play c4
|
|
||||||
music.playTone(262, 900);
|
|
||||||
basic.pause(1000);
|
|
||||||
basic.pause(300);
|
|
||||||
// play e4
|
|
||||||
music.playTone(330, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play d4#
|
|
||||||
music.playTone(311, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play e4
|
|
||||||
music.playTone(330, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play d4#
|
|
||||||
music.playTone(311, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play e4
|
|
||||||
music.playTone(330, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play b3
|
|
||||||
music.playTone(247, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play d4
|
|
||||||
music.playTone(294, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play c4
|
|
||||||
music.playTone(263, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play a3
|
|
||||||
music.playTone(220, 900);
|
|
||||||
basic.pause(1000);
|
|
||||||
// play d3
|
|
||||||
music.playTone(147, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play f3
|
|
||||||
music.playTone(175, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play a3
|
|
||||||
music.playTone(220, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play b3
|
|
||||||
music.playTone(247, 900);
|
|
||||||
basic.pause(1000);
|
|
||||||
// play f3
|
|
||||||
music.playTone(175, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play c4
|
|
||||||
music.playTone(262, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play b3
|
|
||||||
music.playTone(247, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play a3
|
|
||||||
music.playTone(220, 900);
|
|
||||||
basic.pause(1000);
|
|
||||||
// play b3
|
|
||||||
music.playTone(247, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play c4
|
|
||||||
music.playTone(262, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play d4
|
|
||||||
music.playTone(294, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play e4
|
|
||||||
music.playTone(330, 900);
|
|
||||||
basic.pause(1000);
|
|
||||||
// play g3
|
|
||||||
music.playTone(196, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play f4
|
|
||||||
music.playTone(349, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
//play e4
|
|
||||||
music.playTone(330, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play d4
|
|
||||||
music.playTone(294, 900);
|
|
||||||
basic.pause(1000);
|
|
||||||
// play e3
|
|
||||||
music.playTone(165, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play e4
|
|
||||||
music.playTone(330, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play d4
|
|
||||||
music.playTone(294, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play c4
|
|
||||||
music.playTone(262, 900);
|
|
||||||
basic.pause(1000);
|
|
||||||
// play d3
|
|
||||||
music.playTone(147, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play d4
|
|
||||||
music.playTone(294, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play c4
|
|
||||||
music.playTone(262, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play b3
|
|
||||||
music.playTone(247, 900);
|
|
||||||
basic.pause(1000);
|
|
||||||
basic.pause(400);
|
|
||||||
// play e4
|
|
||||||
music.playTone(330, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play d4#
|
|
||||||
music.playTone(311, 300);
|
|
||||||
basic.pause(350);
|
|
||||||
// play e4
|
|
||||||
music.playTone(330, 300);
|
|
||||||
basic.pause(350);
|
|
||||||
// play d4#
|
|
||||||
music.playTone(311, 300);
|
|
||||||
basic.pause(350);
|
|
||||||
// play e4
|
|
||||||
music.playTone(330, 300);
|
|
||||||
basic.pause(350);
|
|
||||||
// play b3
|
|
||||||
music.playTone(247, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play d4
|
|
||||||
music.playTone(294, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play c4
|
|
||||||
music.playTone(262, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play a3
|
|
||||||
music.playTone(220, 900);
|
|
||||||
basic.pause(1000);
|
|
||||||
// play d3
|
|
||||||
music.playTone(147, 300);
|
|
||||||
basic.pause(350);
|
|
||||||
//play f3
|
|
||||||
music.playTone(175, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
//play a3
|
|
||||||
music.playTone(220, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play b3
|
|
||||||
music.playTone(247, 900);
|
|
||||||
basic.pause(1000);
|
|
||||||
// play f3
|
|
||||||
music.playTone(175, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play a3
|
|
||||||
music.playTone(233, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play b3
|
|
||||||
music.playTone(247, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play c4
|
|
||||||
music.playTone(262, 900);
|
|
||||||
basic.pause(1000);
|
|
||||||
basic.pause(300);
|
|
||||||
// play e4
|
|
||||||
music.playTone(330, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play d4#
|
|
||||||
music.playTone(311, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play e4
|
|
||||||
music.playTone(330, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play d4#
|
|
||||||
music.playTone(311, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play e4
|
|
||||||
music.playTone(330, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play b3
|
|
||||||
music.playTone(247, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play d4
|
|
||||||
music.playTone(294, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play c4
|
|
||||||
music.playTone(262, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play a3
|
|
||||||
music.playTone(220, 900);
|
|
||||||
basic.pause(1000);
|
|
||||||
// play d3
|
|
||||||
music.playTone(147, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play f3
|
|
||||||
music.playTone(175, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play a3
|
|
||||||
music.playTone(220, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play b3
|
|
||||||
music.playTone(247, 900);
|
|
||||||
basic.pause(1000);
|
|
||||||
// play f3
|
|
||||||
music.playTone(175, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play c4
|
|
||||||
music.playTone(262, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play b3
|
|
||||||
music.playTone(247, 300);
|
|
||||||
basic.pause(400);
|
|
||||||
// play a3
|
|
||||||
music.playTone(220, 900);
|
|
||||||
basic.pause(1000);
|
|
||||||
|
|
||||||
// and again slightly different
|
|
||||||
var notes = [
|
var notes = [
|
||||||
Note.E5, Note.Eb5, Note.E5, Note.Eb5, Note.E5, Note.B5, Note.D5, Note.C5, Note.A5,
|
note(Note.E, BeatFraction.Quarter), note(Note.E, BeatFraction.Quarter), note(Note.F, BeatFraction.Quarter),
|
||||||
Note.C5, Note.E5, Note.A5, Note.B5, Note.E5, Note.A5, Note.B5, Note.C5,
|
note(Note.G, BeatFraction.Quarter), note(Note.G, BeatFraction.Quarter), note(Note.F, BeatFraction.Quarter),
|
||||||
Note.E5, Note.Eb5, Note.E5, Note.Eb5, Note.E5, Note.B5, Note.D5, Note.C5, Note.A5,
|
note(Note.E, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter), note(Note.C, BeatFraction.Quarter),
|
||||||
Note.C5, Note.E5, Note.A5, Note.B5, Note.E5, Note.C5, Note.B5, Note.A5,
|
note(Note.C, BeatFraction.Quarter), note(Note.D, BeatFraction.Quarter), note(Note.E, BeatFraction.Quarter),
|
||||||
Note.B5, Note.C5, Note.D5, Note.E5, Note.G, Note.F, Note.E5, Note.D5, Note.E5, Note.E5, Note.D5, Note.C5, Note.E5, Note.D5, Note.C5, Note.E5,
|
note(Note.E, BeatFraction.Quarter + BeatFraction.Eighth),
|
||||||
Note.E5, Note.Eb5, Note.E5, Note.Eb5, Note.E5, Note.E5, Note.D5, Note.C5, Note.A5,
|
note(Note.D, BeatFraction.Eighth), note(Note.D, BeatFraction.Half),
|
||||||
Note.C5, Note.E5, Note.A5, Note.B5, Note.E5, Note.A5, Note.B5, Note.C5,
|
note(Note.E, BeatFraction.Quarter), note(Note.E, BeatFraction.Quarter), note(Note.F, BeatFraction.Quarter),
|
||||||
Note.E5, Note.Eb5, Note.E5, Note.Eb5, Note.E5, Note.B5, Note.D5, Note.C5, Note.A5,
|
note(Note.G, BeatFraction.Quarter), note(Note.G, BeatFraction.Quarter), note(Note.F, BeatFraction.Quarter),
|
||||||
Note.C5, Note.E5, Note.A5, Note.B5, Note.E5, Note.C5, Note.B5, Note.A5
|
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 (let note of notes) {
|
let whole = music.beat(BeatFraction.Whole);
|
||||||
music.playTone(note, 100);
|
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.setLedColor(Colors.Blue);
|
||||||
basic.pause(500);
|
basic.pause(500);
|
||||||
basic.setLedColor(Colors.Red);
|
basic.setLedColor(Colors.Red);
|
||||||
@ -325,3 +99,4 @@ input.onPinPressed(TouchPin.P2, () => {
|
|||||||
input.onPinPressed(TouchPin.P3, () => {
|
input.onPinPressed(TouchPin.P3, () => {
|
||||||
basic.showNumber(3);
|
basic.showNumber(3);
|
||||||
});
|
});
|
||||||
|
*/
|
9
libs/core/music.cpp
Normal file
9
libs/core/music.cpp
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#include "ksbit.h"
|
||||||
|
|
||||||
|
namespace music {
|
||||||
|
void playTone(int freqency, int ms) {
|
||||||
|
uBit.soundmotor.Sound_On(freqency);
|
||||||
|
if(ms > 0) uBit.sleep(ms);
|
||||||
|
uBit.soundmotor.Sound_Off();
|
||||||
|
}
|
||||||
|
}
|
@ -137,13 +137,13 @@ namespace music {
|
|||||||
//% help=music/play-tone weight=90
|
//% help=music/play-tone weight=90
|
||||||
//% blockId=device_play_note block="play|tone %note=device_note|for %duration=device_beat" icon="\uf025" blockGap=8
|
//% blockId=device_play_note block="play|tone %note=device_note|for %duration=device_beat" icon="\uf025" blockGap=8
|
||||||
//% parts="speaker"
|
//% parts="speaker"
|
||||||
export function playTone(frequency: number, ms: number): void {
|
// export function playTone(frequency: number, ms: number): void {
|
||||||
// TODO check timing
|
// // TODO check timing
|
||||||
pins.digitalWritePin(DigitalPin.P28, 1); // switch on the motor driver
|
// pins.digitalWritePin(DigitalPin.P28, 1); // switch on the motor driver
|
||||||
pins.analogSetPitchPin(AnalogPin.P29);
|
// pins.analogSetPitchPin(AnalogPin.P29);
|
||||||
pins.analogPitch(frequency, ms);
|
// pins.analogPitch(frequency, ms);
|
||||||
pins.digitalWritePin(DigitalPin.P28, 0); // switch off the motor driver
|
// pins.digitalWritePin(DigitalPin.P28, 0); // switch off the motor driver
|
||||||
}
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Plays a tone through ``speaker``.
|
* Plays a tone through ``speaker``.
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
"led.cpp",
|
"led.cpp",
|
||||||
"led.ts",
|
"led.ts",
|
||||||
"motors.cpp",
|
"motors.cpp",
|
||||||
|
"music.cpp",
|
||||||
"music.ts",
|
"music.ts",
|
||||||
"pins.cpp",
|
"pins.cpp",
|
||||||
"pins.ts",
|
"pins.ts",
|
||||||
|
Loading…
Reference in New Issue
Block a user