Public
Edited
Feb 9, 2023
Fork of Tone study
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
## References

* [tonal]
* [tone]
* @tmcw/[playing-with-tone-js]
* @observablehq/[invalidation]
* @alejandrokennedy/[scale-explorer-2]

[tonal]: https://github.com/tonaljs/tonal
[tone]: https://github.com/Tonejs/Tone.js
[playing-with-tone-js]: https://observablehq.com/@tmcw/playing-with-tone-js
[invalidation]: https://observablehq.com/@observablehq/invalidation
[scale-explorer-2]: https://observablehq.com/@alejandrokennedy/scale-explorer-2
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
// TODO playing sound through a single function causes timing error
// playNote = (mode, tonic, octave) => {
// var notes = tonal.Mode.notes(mode, tonic);
// var randNote = notes[(Math.random() * notes.length) | 0] + octave;
// synth.triggerAttackRelease(randNote, "8n", tone.now());
// return randNote;
// }
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
## Libraries
Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more