MidiWriterJS Alternatives
Looking for an alternative to MidiWriterJS? It's typeScript library for programmatically building and exporting multi-track Standard MIDI files. Below are 8 other midi tools tools for making music with code — how each compares, and when it's the better choice. Every option is verified against its own source.
| Alternative | Language | License | Best for |
|---|---|---|---|
| ScribbletuneWrite musical patterns as JS strings and export them to MIDI files or play them live via Tone.js.↔ head-to-head vs MidiWriterJS | JavaScript | MIT | Generating MIDI clips and progressions programmatically from terse JS patterns. |
| WebMidi.jsFriendly wrapper over the Web MIDI API for sending and receiving MIDI in the browser and Node. | JavaScript | Apache-2.0 | Building browser apps that talk to hardware or virtual MIDI instruments. |
| html-midi-playerWeb components (<midi-player>, <midi-visualizer>) for playing and visualizing MIDI files on a page. | HTML/JavaScript | BSD-2-Clause | Embedding a styled, interactive MIDI player and visualizer directly in HTML. |
| MidoLibrary for working with MIDI messages, ports, and files via convenient message objects. | Python | MIT | Reading, writing, and sending/receiving raw MIDI messages and files. |
| pretty_midiUtility library for handling MIDI data intuitively for analysis and MIR workflows. | Python | MIT | MIR/ML preprocessing: extracting features and piano rolls from MIDI files. |
| pyFluidSynthPython bindings for FluidSynth to render MIDI notes through SoundFont instruments. | Python | LGPL-2.1-or-later | Programmatically playing MIDI/notes through SoundFont software synthesis. |
| python-rtmidiPython binding to the RtMidi C++ library for real-time MIDI input and output. | Python | MIT | Sending and receiving real-time MIDI messages to hardware or software ports. |
| MIDIUtilinactivePure-Python library for programmatically creating and writing multi-track MIDI files. | Python | MIT | Simple, dependency-free generation of MIDI files from code. |
Notable picks
Scribbletune
Write musical patterns as JS strings and export them to MIDI files or play them live via Tone.js. Best for generating MIDI clips and progressions programmatically from terse JS patterns. Versus MidiWriterJS: it's also written in JavaScript, so switching is low-friction. Compare head-to-head →
WebMidi.js
Friendly wrapper over the Web MIDI API for sending and receiving MIDI in the browser and Node. Best for building browser apps that talk to hardware or virtual MIDI instruments. Versus MidiWriterJS: it's also written in JavaScript, so switching is low-friction.
html-midi-player
Web components (<midi-player>, <midi-visualizer>) for playing and visualizing MIDI files on a page. Best for embedding a styled, interactive MIDI player and visualizer directly in HTML.
Mido
Library for working with MIDI messages, ports, and files via convenient message objects. Best for reading, writing, and sending/receiving raw MIDI messages and files.
pretty_midi
Utility library for handling MIDI data intuitively for analysis and MIR workflows. Best for mIR/ML preprocessing: extracting features and piano rolls from MIDI files.
Related JavaScript tools
Other JavaScript tools worth a look, from adjacent categories.