Published
Edited
Mar 1, 2021
Sample flip
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
offset = 2
Insert cell
bpm = 74
Insert cell
increment = (60 / bpm) * 2
Insert cell
Insert cell
Insert cell
Insert cell
throttledPlayFromIndex = throttle(i => {
playFromIndex(i);
}, 1000)
Insert cell
function playFromNote(note) {
const index = notes.findIndex(n => {
return n === note;
});

if (index === -1) return;

throttledPlayFromIndex(index);
}
Insert cell
context = new AC()
Insert cell
AC = window.AudioContext || window.webkitAudioContext
Insert cell
Insert cell
Insert cell
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