Making music with code
Every library, language, and tool for writing music as code — 106 of them, compared on one page. Plus interactive music-theory tools, language cheat sheets, and the reference tables you keep open in another tab. Each entry is verified against the project's own repository.
Calculators & toolsScale & chord finders, metronome, circle of fifths, delay timesCheat sheetsTidalCycles, Sonic Pi, SuperCollider, Strudel, ChucK, ABCAI music generationSuno, Udio, MusicGen & open models — guides & tutorialsReference tablesScales, chords, key signatures, MIDI, frequencies, EQCompare & alternativesHead-to-head matchups and an alternatives page per tool
The directory
| Tool | Language | Category | License | Platforms |
|---|---|---|---|---|
| abcjsRenders ABC-notation text into SVG sheet music with optional MIDI playback in the browser. | JavaScript | Composition & notation | MIT | Web macOS Windows |
| AbjadPython API for building LilyPond files to produce publication-quality music notation. | Python | Composition & notation | GPL-3.0 | macOS Linux Windows |
| ACE-StepFast open-source music-generation foundation model producing full tracks from a style prompt and lyrics. | Python | ML & generative | Apache-2.0 | Linux Windows macOS |
| AldaText-based music composition language; write and play back scores from your editor and terminal. | Go / Kotlin | Composition & notation | EPL-2.0 | macOS Windows Linux |
| AmphionOpen-source toolkit for reproducible audio, music and speech generation (TTS, SVS, VC, TTA). | Python | ML & generative | MIT | Linux |
| Ardour (Lua scripting)Lua 5.3 scripting to automate editing, add real-time DSP/MIDI processors and hook events in Ardour. | Lua | DAW & host scripting | GPL-2.0-or-later | macOS Windows Linux |
| aubioC library with Python bindings for onset, pitch, beat and tempo detection. | Python | Audio analysis | GPL-3.0-or-later | macOS Windows Linux |
| AudioCraft (MusicGen)Meta's PyTorch library for audio generation, home of the MusicGen text-and-melody music model. | Python | ML & generative | MIT | macOS Windows Linux |
| AudioLazyinactiveReal-time expressive DSP package for Python built on lazy streams, filters and synthesis. | Python | Synthesis & DSP | GPL-3.0 | macOS Windows Linux |
| BarkinactiveTransformer text-to-audio model generating speech, music, sound effects and nonverbal sounds. | Python | ML & generative | MIT | macOS Windows Linux |
| Basic PitchLightweight neural audio-to-MIDI converter with polyphonic note and pitch-bend detection. | Python | Audio analysis | Apache-2.0 | macOS Windows Linux |
| Bespoke SynthFree open-source modular software synth/DAW with live-patchable modules and built-in Python livecoding. | Python | Trackers & modular | GPL-3.0-only | macOS Windows Linux |
| Bitwig Studio Extension APIJava API for writing Bitwig Studio controller extensions to integrate hardware and automate the DAW. | Java | DAW & host scripting | MIT | macOS Windows Linux |
| Bosca Ceoil: The Blue AlbumBeginner-friendly step-sequencer music maker; a modern Godot port of Bosca Ceoil. | GDScript (Godot) | Composition & notation | MIT | macOS Windows Linux |
| CabbageFramework to wrap Csound code into VST/AU audio plugins and standalone instruments with a GUI. | Csound | Synthesis & DSP | GPL-3.0 | macOS Windows Linux |
| CardinalSelf-contained open-source VCV Rack fork shipped as a VST/CLAP/LV2/AU modular synth plugin. | C++ | Trackers & modular | GPL-3.0-or-later | macOS Windows Linux |
| ChucKStrongly-timed language for real-time synthesis and on-the-fly (live coding) music programming. | ChucK | Live coding | GPL-2.0 | macOS Windows Linux |
| CREPEinactiveCNN-based monophonic pitch (f0) tracker with state-of-the-art accuracy. | Python | Audio analysis | MIT | macOS Windows Linux |
| CsoundVeteran sound-and-music computing system for synthesis and DSP via orchestra/score code. | Csound | Synthesis & DSP | LGPL-2.1 | macOS Windows Linux |
| DDSPDifferentiable Digital Signal Processing: DSP modules (oscillators, filters) usable inside neural nets. | Python | ML & generative | Apache-2.0 | macOS Windows Linux |
| DemucsinactiveState-of-the-art deep-learning music source separation (vocals, drums, bass, other) by Meta. | Python | ML & generative | MIT | macOS Windows Linux |
| Elementary AudioDeclarative JavaScript library for digital audio signal processing, portable across web and native renderers. | JavaScript / C++ | Synthesis & DSP | MIT | Web macOS Windows |
| EssentiaC++ library with Python bindings for audio analysis and music description algorithms. | Python | Audio analysis | AGPL-3.0-only | macOS Windows Linux |
| EstuaryBrowser platform for collaborative, networked live coding across multiple embedded languages. | Multi-language host | Live coding | GPL-3.0 | Web |
| ExtemporeLive-coding environment pairing a Scheme interpreter with xtlang, a typed Lisp that JIT-compiles via LLVM. | xtlang / Scheme | Live coding | BSD-2-Clause | macOS Windows Linux |
| FaustFunctional DSP language that compiles to C++, WebAssembly, plugins and many other targets. | Faust | Synthesis & DSP | LGPL-2.1-or-later | macOS Windows Linux |
| FeedforwardinactiveAn ncurses terminal editor for TidalCycles with built-in pattern visualization. | Haskell | Live coding | GPL-3.0 | macOS Linux |
| FL Studio MIDI Scripting APIBuilt-in Python API to script MIDI controllers and drive FL Studio transport, mixer and channels. | Python | DAW & host scripting | Proprietary | macOS Windows |
| FlockinginactiveJavaScript audio synthesis framework using declarative JSON specs, aimed at artists and experimental web sound. | JavaScript | Synthesis & DSP | MIT OR GPL-2.0 | Web |
| FluCoMaToolkit bringing signal decomposition, audio descriptors and ML to Max, Pure Data and SuperCollider. | Max / Pd / SuperCollider | Audio analysis | BSD-3-Clause | macOS Windows Linux |
| FoxDotinactivePython live-coding environment over SuperCollider for making music with concise looping pattern code. | Python | Live coding | CC-BY-SA-4.0 | macOS Windows Linux |
| FrescobaldiPowerful, lightweight text editor/IDE for LilyPond music engraving with live score preview. | Python (PyQt) | Composition & notation | GPL-2.0-or-later | macOS Windows Linux |
| FurnaceThe biggest multi-system chiptune tracker, emulating dozens of vintage sound chips. | Tracker | Trackers & modular | GPL-2.0-or-later | macOS Windows Linux |
| GibberinactiveBrowser-based live coding environment combining music synthesis and sequencing with 3D graphics. | JavaScript | Web Audio | MIT | Web |
| Gibberish.jsFast JavaScript DSP library that generates JIT-optimized, sample-accurate audio callbacks via code generation. | JavaScript | Synthesis & DSP | MIT | Web |
| gibberwockyLive-code sequencing and modulation into Ableton Live and Max from a browser-based editor. | JavaScript | DAW & host scripting | MIT | macOS Windows |
| GlicolGraph-oriented live coding language and audio DSP engine in Rust, running in the browser via WebAssembly. | Rust | Live coding | MIT | Web macOS Windows |
| GwionStrongly-timed, ChucK-inspired programming language: small, fast, extendable and embeddable. | Gwion | Live coding | GPL-3.0 | macOS Windows Linux |
| html-midi-playerWeb components (<midi-player>, <midi-visualizer>) for playing and visualizing MIDI files on a page. | HTML/JavaScript | MIDI tools | BSD-2-Clause | Web |
| isobarPython library for expressing and manipulating musical patterns for algorithmic composition. | Python | Composition & notation | MIT | macOS Windows Linux |
| ixi langinactiveA SuperCollider 'parasite' language merging code and an active graphical score. | ixi lang (over SuperCollider) | Live coding | GPL-3.0 | macOS Windows Linux |
| JUCECross-platform C++ framework for building audio apps and VST/AU/AAX/LV2 plug-ins. | C++ | Synthesis & DSP | AGPL-3.0-only OR Commercial | macOS Windows Linux |
| librosaPython package for music and audio analysis: feature extraction, beat tracking, and spectrograms. | Python | Audio analysis | ISC | macOS Windows Linux |
| LilyPondText-based music engraving program that produces publication-quality sheet music from plain-text input. | C++ / Scheme | Composition & notation | GPL-3.0-or-later | macOS Windows Linux |
| madmominactivePython MIR library with neural-network models for beat, downbeat and onset detection. | Python | Audio analysis | BSD-2-Clause | macOS Windows Linux |
| MagentainactiveGoogle research project using ML (TensorFlow) to generate music, art, and drawings. | Python | ML & generative | Apache-2.0 | macOS Windows Linux |
| Max/MSPVisual patching environment; scriptable via the js object, gen~ DSP language, and Node for Max. | JavaScript / Gen | Synthesis & DSP | Proprietary | macOS Windows |
| MelroseInteractive Go tool for programming melodies as expressions and playing them live over MIDI. | Melrose (DSL, Go) | Composition & notation | MIT | macOS Windows Linux |
| MercuryMinimal, human-readable language for algorithmic electronic music live coding. | Mercury (DSL) | Live coding | GPL-3.0 | Web macOS Windows |
| MIDIUtilinactivePure-Python library for programmatically creating and writing multi-track MIDI files. | Python | MIDI tools | MIT | macOS Windows Linux |
| MidiWriterJSTypeScript library for programmatically building and exporting multi-track Standard MIDI files. | JavaScript | MIDI tools | MIT | macOS Windows Linux |
| MidoLibrary for working with MIDI messages, ports, and files via convenient message objects. | Python | MIDI tools | MIT | macOS Windows Linux |
| mingusinactiveMusic-theory package for notes, scales, chords, progressions, and MIDI playback. | Python | Composition & notation | GPL-3.0 | macOS Windows Linux |
| MuseScoreFull-featured free music-notation and composition app with a QML/JavaScript plugin API. | C++ (plugins in QML/JS) | Composition & notation | GPL-3.0-only | macOS Windows Linux |
| music21Toolkit for computer-aided musicology and symbolic-music analysis and generation. | Python | Composition & notation | BSD-3-Clause | macOS Windows Linux |
| MusPyinactiveToolkit for symbolic music: convert between MIDI/MusicXML/ABC and load ML datasets. | Python | Composition & notation | MIT | macOS Windows Linux |
| NexusUIJavaScript toolkit of Web Audio UI widgets (dials, sliders, pads) for building browser instruments. | JavaScript | Web Audio | MIT | Web |
| note-seqinactiveSerializable NoteSequence representation and utilities from Google Magenta for music ML. | Python | ML & generative | Apache-2.0 | macOS Windows Linux |
| NyquistLisp/SAL language for sound synthesis and algorithmic composition; also embedded in Audacity. | Lisp / SAL | Synthesis & DSP | See project | macOS Windows Linux |
| OrcaEsoteric live-coding sequencer where each letter is an operation; sends MIDI, OSC and UDP. | JavaScript | Live coding | MIT | macOS Windows Linux |
| OvertoneClojure toolkit for programmable, collaborative music built on the SuperCollider synthesis engine. | Clojure | Live coding | MIT | macOS Windows Linux |
| p5.soundp5.js add-on bringing the Processing approach to Web Audio: playback, effects, synthesis and analysis. | JavaScript | Web Audio | MIT | Web |
| PartituraPython package for handling symbolic music: MusicXML, MIDI, Humdrum kern, and MEI. | Python | Composition & notation | Apache-2.0 | macOS Windows Linux |
| PedalboardFast Python library for audio effects and VST3/AU plugin hosting, built on JUCE by Spotify. | Python | Synthesis & DSP | GPL-3.0 | macOS Windows Linux |
| pretty_midiUtility library for handling MIDI data intuitively for analysis and MIR workflows. | Python | MIDI tools | MIT | macOS Windows Linux |
| PunctualBrowser language for live coding audio and visuals as signal-processor networks. | Punctual (DSL) | Live coding | GPL-3.0 | Web |
| Pure DataVisual dataflow environment for real-time synthesis, audio processing and interactive multimedia. | Pd (visual) | Synthesis & DSP | BSD-3-Clause | macOS Windows Linux |
| pydubHigh-level Python library for simple audio editing: slice, concatenate, convert, and apply gain. | Python | Synthesis & DSP | MIT | macOS Windows Linux |
| pyFluidSynthPython bindings for FluidSynth to render MIDI notes through SoundFont instruments. | Python | MIDI tools | LGPL-2.1-or-later | macOS Windows Linux |
| pyoPython module written in C for building real-time audio signal-processing and synthesis scripts. | Python | Synthesis & DSP | LGPL-3.0 | macOS Windows Linux |
| python-rtmidiPython binding to the RtMidi C++ library for real-time MIDI input and output. | Python | MIDI tools | MIT | macOS Windows Linux |
| python-sounddevicePlay and record NumPy audio arrays via PortAudio, with blocking and callback streaming. | Python | Synthesis & DSP | MIT | macOS Windows Linux |
| RAVEIRCAM's Realtime Audio Variational autoEncoder for fast, high-quality neural audio synthesis. | Python | ML & generative | CC-BY-NC-4.0 | macOS Windows Linux |
| ReaScriptScript REAPER in Lua, Python, or EEL2 to build macros and full extensions via its API. | Lua / Python / EEL | DAW & host scripting | Proprietary | macOS Windows Linux |
| RenardoModernized FoxDot fork for live coding music in Python on top of SuperCollider. | Python | Live coding | GPL-3.0 | macOS Windows Linux |
| Renoise (Lua Scripting API)Lua scripting API for the Renoise tracker to build tools, menu entries, keybindings, and GUIs. | Lua | Trackers & modular | MIT | macOS Windows Linux |
| RiffusioninactiveGenerates music by diffusing spectrogram images — the original open project, now also a polished web app. | Python | ML & generative | MIT | Linux Windows macOS |
| RTcmixReal-time descendant of Cmix: a C-based synthesis engine driven by Minc scripting scores. | Minc / C | Synthesis & DSP | Apache-2.0 | macOS Linux |
| SardinePython live coding environment for algorave, driving MIDI, OSC and SuperCollider with tempo-aware patterns. | Python | Live coding | GPL-3.0 | macOS Windows Linux |
| SCAMPComputer-assisted composition framework hubbing playback and notation from Python code. | Python | Composition & notation | GPL-3.0 | macOS Windows Linux |
| ScribbletuneWrite musical patterns as JS strings and export them to MIDI files or play them live via Tone.js. | JavaScript | MIDI tools | MIT | macOS Windows Linux |
| Sonic PiCode-based musical instrument for live coding music; popular for education and live performance. | Ruby | Live coding | MIT | macOS Windows Linux |
| SoundFileRead and write WAV/FLAC/OGG and other formats via libsndfile, returning NumPy arrays. | Python | Synthesis & DSP | BSD-3-Clause | macOS Windows Linux |
| SpleeterDeezer's pretrained source-separation library (2/4/5 stems) built on TensorFlow. | Python | ML & generative | MIT | macOS Windows Linux |
| Stable Audio OpenOpen text-to-audio diffusion model for generating short instrumentals, loops and sound effects locally. | Python | ML & generative | MIT | macOS Windows Linux |
| STK (Synthesis ToolKit)C++ class library of synthesis and DSP building blocks (oscillators, filters, physical models). | C++ | Synthesis & DSP | MIT | macOS Windows Linux |
| StrudelWeb-based live-coding environment; a faithful JavaScript port of TidalCycles for algorithmic patterns. | JavaScript | Live coding | AGPL-3.0 | Web |
| SunVoxSmall, fast modular synthesizer with a pattern-based tracker sequencer for nearly every platform. | Modular tracker | Trackers & modular | Proprietary | macOS Windows Linux |
| SuperColliderReal-time synthesis server plus the sclang language for algorithmic composition and live coding. | sclang | Live coding | GPL-3.0 | macOS Windows Linux |
| SupriyaPython API for the SuperCollider synthesis server: build synths, patterns and score audio. | Python | Synthesis & DSP | MIT | macOS Windows Linux |
| TeoriainactiveLightweight JavaScript library for classical and jazz music theory: notes, chords, scales, intervals. | JavaScript | Composition & notation | MIT | macOS Windows Linux |
| thebeatPython package for generating, visualizing and analyzing rhythms and temporal sequences. | Python | Audio analysis | GPL-3.0 | macOS Windows Linux |
| ThrenoscopeinactiveA live-coding instrument for spatial microtonal drones over long durations. | SuperCollider | Synthesis & DSP | AGPL-3.0 | macOS Windows Linux |
| TidalCyclesHaskell pattern language for live coding algorithmic music; a cornerstone of the Algorave scene. | Haskell | Live coding | GPL-3.0 | macOS Windows Linux |
| TonalFunctional music-theory library for notes, intervals, chords, scales and keys in JavaScript. | JavaScript | Composition & notation | MIT | macOS Windows Linux |
| Tone.jsWeb Audio framework for making interactive music in the browser, with DAW-like transport, synths and effects. | TypeScript / JavaScript | Web Audio | MIT | Web |
| torchaudioPyTorch's audio library: I/O, datasets, and transforms (spectrograms, MFCC) for audio ML. | Python | Audio analysis | BSD-2-Clause | macOS Windows Linux |
| TroopinactiveReal-time collaborative editor for group live coding in one shared document. | Python (editor) | Live coding | See project | macOS Windows Linux |
| VCV RackOpen-source virtual Eurorack modular synthesizer host; modules developed in C++ via the Rack SDK. | C++ | Trackers & modular | GPL-3.0-only | macOS Windows Linux |
| VerovioFast, portable library for engraving MEI music scores to SVG, with MusicXML/Humdrum/ABC import. | C++ / JS | Composition & notation | LGPL-3.0 | macOS Windows Linux |
| VexFlowTypeScript library for rendering music notation and guitar tablature in the browser (SVG/Canvas). | TypeScript | Composition & notation | MIT | Web |
| VortexPython port of the TidalCycles pattern language, sending events to SuperDirt via OSC. | Python | Live coding | GPL-3.0 | macOS Windows Linux |
| wavesurfer.jsRenders interactive audio waveforms with playback, regions, spectrogram and timeline plugins. | JavaScript | Audio analysis | BSD-3-Clause | Web |
| WebMidi.jsFriendly wrapper over the Web MIDI API for sending and receiving MIDI in the browser and Node. | JavaScript | MIDI tools | Apache-2.0 | Web macOS Windows |
| YuEOpen foundation model that turns lyrics into full songs — vocals and backing — across many genres. | Python | ML & generative | Apache-2.0 | Linux Windows macOS |
| ZzFXSub-1KB zero-dependency synth that generates game sound effects from a list of numeric parameters. | JavaScript | Synthesis & DSP | MIT | Web |
106 tools shown · reference tables →