Awesome
Awesome Music
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.
Audio Tools
- Beets - a powerful command-line music organizer and manipulator.
- Cecilia - a Pyo-based graphical environment for music and signal processing.
- cyanrip - rips and encodes standard audio CDs with the least effort required from user. Cross platform.
- fre:ac - free audio converter. It supports audio CD ripping and tag editing.
- Jack - command-line CD ripper.
- K3b - is a full-featured CD/DVD/Blu-ray burning and ripping application.
- Koel - an open-source personal audio streaming server.
- Lame - a high quality, free and open-source MP3 encoder.
- lltag - automatic command-line mp3/ogg/flac file tagger and renamer.
- matchering - сontainerized web application and library for automated reference audio mastering.
- MusicBrainz - Open Encyclopedia for Music information and Metadata, providing a unique ID for everything
- Musikernel - a futuristic audio production platform (hardware support, APIs, hosts, plugins and more)
- Rubyripper - is a secure digital audio extraction application ("cd ripper") for Unix-like operating systems.
- SoX - a free open-source command line utility for playing, converting and manipulating audio files.
- split2flac - split flac/ape/wv/wav + cue sheet into separate tracks
- Whipper - Python CD-DA ripper preferring accuracy over speed.
- X Audio Copy - GTK and GNOME application for ripping CD-Audio and encoding in lossy and lossless audio formats.
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.
MIDI Tools & Libraries
- JJazzLab-X - a complete Midi-based framework for automatic backing tracks generation.
- Midifile - C++ library for parsing Standard MIDI Files.
- mido - Python library for working with MIDI messages and ports.
- Polyrhythmix - MIDI drums generator, designed for polyrhythmic parts
- Timidity - an open-source command line synthesizer that plays MIDI files.
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.
- 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.
- 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.
- 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.
- 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.
Music Theory Teaching
- Artusi - Interactive music theory exercises.
- Four Score and More - Tailored music theory exercises based on scores.
- musictheory.net - Lessons and exercises
- OpenMusicTheory - a growing, online "textbook" for music theory and aural skills.
- Theorytab - a database of songs with their chord functions.
Standards
- MEI (Music Encoding Initiative) - an open-source effort to define a system for encoding musical documents in a machine-readable structure.
- MusicXML - the standard open format for exchanging digital sheet music.
- SMuFL (Standard Music Font Layout) - a specification for mapping music symbols to Unicode for use in music fonts.
Other Awesomeness
Related lists
- Awesome Audio DSP - A curated list of audio DSP and plugin development resources.
- Awesome Audio Visualization - A curated list about Audio Visualization.
- Awesome Music Listening - Awesome list of websites dedicated to listening to music.
- Awesome Music Production - A curated list of software and resources to create music.
- Awesome Python for Scientific Audio - A curated list of python software and packages related to scientific research in audio.
- Awesome sheet music - A curated list of awesome sheet music software, libraries and resources.
- Awesome WebAudio - A curated list of awesome WebAudio packages and resources.
Other amazingly awesome lists can be found in the list.
License
To the extent possible under law, Sharon Rosner has waived all copyright and related or neighboring rights to this work.