Awesome Music Awesome

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.

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 CSound-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

  • 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.
  • 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.
  • 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).
  • i-score - a software for interactive music notation, with DAW features.
  • 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.
  • Lydown - a modern language for music notation, based on Lilypond.
  • Lyp - the Lilypond swiss army knife - easily install packages, manage multiple versions of Lilypond, and other tools for power users.
  • MuseScore - free open-source music notation and composition software.
  • MusicKit - Music sheet rendering for iOS and OSX.
  • 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.
  • Tunefl - LilyPond mini-score engraving and sharing service for musicians.
  • 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.
  • 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.
  • py-modular - a modular and experimental programming environment with basic DSP routines in python.
  • Sonic Pi - a live coding synth with an emphasis on educational use.
  • Sporth - a small stack based audio language.
  • SuperCollider - a programming language for real time audio synthesis and algorithmic composition.
  • Tidal - a language built on Haskell for live coding patterns.
  • Unilang - Domain specific language used in Unison.

Music Theory Teaching

Standards

Other Awesomeness

Related lists

Other amazingly awesome lists can be found in the Awesome list.

License

CC0

To the extent possible under law, Sharon Rosner has waived all copyright and related or neighboring rights to this work.