$ exemples
// une note
const s = new Tone.Synth().toDestination();
s.triggerAttackRelease("C4", "8n");
// une mélodie
["C4","E4","G4"].forEach((n, i) =>
s.triggerAttackRelease(n, "8n", Tone.now() + i * 0.3));
// un accord
new Tone.PolySynth().toDestination()
.triggerAttackRelease(["C4","E4","G4"], "2n");
$ durées des notes
- 𝅝
"1n"ronde
- 𝅗𝅥
"2n"blanche
- ♩
"4n"noire
- ♪
"8n"croche
- ♬
"16n"double-croche
$ gérer le temps
let t = Tone.now();
for (const [n, d] of [["C4","8n"],["E4","4n"]]) {
s.triggerAttackRelease(n, d, t);
t += Tone.Time(d).toSeconds(); // on avance
}
Tone.getTransport().bpm.value = 120; // tempo
$ instruments