A categorized collection of awesome music libraries, tools, frameworks and software.
Contributions and suggestions are always welcome! Please take a look at the contribution guidelines and quality standard first.
Thanks to all contributors, you're awesome and this project wouldn't be possible without you!
Audio Editing
- Audacity - a free, cross-platform digital audio editor.
- Ardour - a cross-platform digital audio workstation emphasizing audio recording.
- LMMS - another cross-platform digital audio workstation, more oriented towards making beats.
- OpenUtau - A free, cross-platform singing voice synthesis framework.
- snd - Snd is a sound editor modelled loosely after Emacs.
- Stargate DAW - A cross-platform, all-in-one digital audio workstation and plugin suite, optimized for EDM production.
- TuneFlow - a next-gen DAW that helps you generate melody, beats, or a whole song, while still being able to edit them.
Audio Libraries
- audio.js - audio.js is a drop-in javascript library that allows HTML5's <audio> tag to be used anywhere.
- audioFlux - A library for audio and music analysis, feature extraction.
- chord-mark - reference implementation of ChordMark, a text notation format for lyrics, chords and rhythm.
- howler.js - a Javascript audio library for the modern web.
- JSyn - an audio synthesis software API for Java.
- Librosa - a python package for music and audio analysis, providing the building blocks necessary to create music information retrieval systems.
- midi.js - a framework for creating web-based MIDI apps.
- mxml - MusicXML parsing and layout library.
- PortAudio - a free, cross-platform, open-source, audio I/O library.
- RustAudio - an aggregate of free and useful Audio, DSP and music libraries written in Rust.
- Soundpipe - a lightweight DSP library written in C.
Free Music Scores
- bayanguru - engraving and publishing system that produces high quality sheet music for bayan in PDF.
- cellist/Lilypond-Sheet-Music - a collection of music typeset with lilypond (mostly chamber music and music for cello).
- ciconia/music - a collection of mostly baroque music, lots of sacred works by J. S. Bach, coded in lilypond/ripple.
- CPDL - the choral public domain library contains more than 20K free scores of vocal music.
- Éditions Nicolas Sceaux - baroque music scores (mainly French music), typeset using lilypond.
- IMSLP - the International Music Score Library Project is the largest collection of public domain scores and parts on the web.
- Lavender Blue Open-Scores - open scores for piano encoded using lilypond.
- Mutopia - sheet music based on editions in the public domain.
- wbsoft/lilymusic - beautiful LilyPond scores under free licenses.
Music Notation
- Abjad - a Python API for Formalized Score Control, based on Lilypond.
- ChordMark - a text-based notation format for lyrics, chords and rhythm.
- Denemo - a free music notation editor based on Lilypond.
- Digital Music Stand - a free web app for displaying sheet music.
- Jan Angermüller's music fonts page - A listing and visual comparison of different music fonts.
- Frescobaldi - a free Lilypond sheet music editor.
- Guido - a generic, portable library and API for the graphical rendering of musical scores.
- Hacklily - online LilyPond-based sheet music editor (with optional GitHub integration).
- Inknote - free, open source, browser based music notation and composition software.
- JotChord - an online, text-based editor for making PDF-formatted Nashville Number System song charts.
- LibMEI - a C++ library for reading and writing MEI files.
- Lilybin - an open source web-based LilyPond editor.
- Lilypond - free, open-source music engraving program, devoted to producing the highest-quality sheet music possible.
- Lilypond cook book - tips & tricks for getting the most out of lilypond.
- Lilypond Snippet Repository - an online database of Lilypond snippets ideas, features and hacks.
- Lilyvm - Lilypond version manager.
- Lyp - the Lilypond swiss army knife - easily install packages, manage multiple versions of Lilypond, and other tools for power users.
- mei-friend - a friendly, browser-based editor for music encodings.
- MuseScore - free open-source music notation and composition software.
- MusicKit - Music sheet rendering for iOS and OSX.
- neoscore - python library for notating music in a graphics-first paradigm.
- NOTATIO - a forum devoted to the practice of music notation.
- OpenLilyLib - LilyPond tools - snippets, templates, and extensions.
- OpenSheetMusicDisplay - Typescript library for rendering MusicXML in the browser.
- Python-ly - a tool and library for manipulating LilyPond files.
- Ripple - DRY for Lilypond - generate scores and parts with minimal fuss.
- Scorelib - a C++ library for parsing SCORE data files.
- Tbon - Typographic Beat-Oriented Notation for music.
- Unison - Proprietary software for creating music score with words.
- VectorScore - Lightweight, SVG-based music notation library for TypeScript under MIT license.
- Verovio - a library and a toolkit for engraving MEI music notation into SVG.
- Vexflow - a JavaScript library for rendering music notation and guitar tablature.
Music Programming
- Alda - a music programming language for musicians.
- Bach: Automated Composer's Helper - a cross-platform set of patches and externals for Max, aimed to bring the richness of computer-aided composition into the real-time world.
- Cane - A small MIDI sequencer DSL designed around vectors and euclidean rhythms.
- Chuck - strongly-timed, concurrent, and on-the-fly music programming language.
- CoffeeCollider - a language for real time audio synthesis and algorithmic composition in HTML5. "Write CoffeeScript, and be processed as SuperCollider."
- Common Music - an open source music composition system.
- Csound - a user-programmable and user-extensible sound processing language and software synthesizer.
- DrumBeatRepo - A rhythm library for playing drum beats of differents music genres in the browser.
- Faust - a functional programming language specifically designed for real-time signal processing and synthesis.
- Gwion - A strongly-timed programming language aimed at music creation. Heavily inspired by ChucK.
- IanniX - a graphical open-source sequencer, based on Iannis Xenakis works, for digital art.
- Inscore - an environmnent for the design of interactive, augmented music scores.
- Leipzig - a composition library for Overtone.
- Leiter - TypeScript-based library designed to generate musical scales.
- Midica - MIDI programming language with decompiler and player, supports karaoke.
- music21 - A Toolkit for Computational Musicology.
- Music Suite - a language for generalized music notation and theory, based on Haskell.
- mutwo - a Python library for composition that outputs notation, MIDI or audio files and that provides a generalized model to describe time-based structures.
- Nyquist - a sound synthesis and composition language.
- OpenMusic - a visual programming language based on Lisp.
- Orca - live programming environment for music.
- Overtone - an Open Source toolkit for designing synthesizers and collaborating with music.
- Platonic Music Engine - an open-source music generation framework written in Lua.
- Pure Data - a visual programming language for audio and other multimedia.
- pyo - a Python module to help digital signal processing script creation.
- py-modular - a modular and experimental programming environment with basic DSP routines in python.
- Sardine - a music live coding library for Python 3.10+ (MIDI/OSC/SuperCollider).
- slippery chicken - a Common Lisp environment for composition building on CLM, CMN, CM, MusicXML and Lilypond for score, sound file, and/or MIDI file outputs.
- Sonic Pi - a live coding synth with an emphasis on educational use.
- Sporth - a small stack based audio language.
- Strudel - an experiment in making a language built on javascript for live coding patterns using web technologies.
- SuperCollider - a programming language for real time audio synthesis and algorithmic composition.
- Tidal - a language built on Haskell for live coding patterns.
- Topos - a web based live coding environment (WebAudio / MIDI)
- tuneflow-py - python plugin SDK for the next-gen DAW, that allows you to program your music algorithms & AI models into all stages of music production
- Unilang - Domain specific language used in Unison.
Standards
Other Awesomeness