Published
Edited
Jul 12, 2020
1 fork
4 stars
Insert cell
md`# Parsing midi files with tonejs/midi`
Insert cell
import {fileInput} from "@mbostock/file-input"
Insert cell
midiFileUrl = fileInput({initialUrl: "https://bitmidi.com/uploads/98128.mid"})
Insert cell
ToneJSMidi = require('@tonejs/midi')
Insert cell
midiFile = await ToneJSMidi.Midi.fromUrl(midiFileUrl.value)
Insert cell
TonalMidi = require('@tonaljs/midi')
Insert cell
midiFileNotes = midiFile.tracks.flatMap(track => track.notes.map(midiNote => TonalMidi.midiToNoteName(midiNote.midi)))



Insert cell
// export
blob = new Blob([midiFile.toArray()], {type: 'audio/midi'})

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