MIDIというと20年くらい前のWebで、ブラウザで音楽を流すのに使ったり、耳コピーした映画やドラマ、ゲームの音楽を配布するのに使われていた覚えがあります。 最近ではあまり聞きませんが、音楽の創作をもっとプログラマブルにすることで新しい可能性が出てくるかも知れません。そう感じさせるのがMidiWriterJSです。

MidiWriterJSの使い方

MidiWriterJSはその名前の通り、JavaScriptでMIDIファイルを生成します。例えば次のようなコードです。

// Start with a new track
var track = new MidiWriter.Track();

// Define an instrument (optional):
track.addEvent(new MidiWriter.ProgramChangeEvent({instrument : 1}));

// Add some notes:
var note = new MidiWriter.NoteEvent({pitch:['C4', 'E4', 'G4'], duration: '4', sequential: true});
track.addEvent(note);

// Generate a data URI
var write = new MidiWriter.Writer([track]);
console.log('data:audio/midi;base64,' + write.base64());

最終的にdataURIに対してaudio/midiにて書き出すようになっています。後はブラウザでダウンロードするだけです。特別なキーボードなども不要なので、プログラミングを使って音楽を作るときに使えそうです。

MidiWriterJSはJavaScript製のオープンソース・ソフトウェア(MIT License)です。

MidiWriterJS · Expressive multi-track MIDI generator written in JavaScript grimmdude/MidiWriterJS: ♬ JavaScript library providing an API for generating expressive multi-track MIDI files in browser and Node.