C++ Music

Open-source C++ projects categorized as Music | Edit details
Related topics: #Audio #Sound #Qt #Linux #Windows

Top 23 C++ Music Projects

  • GitHub repo Sonic Pi

    Code. Music. Live.

    Project mention: When somebody asks you what language you code in: | reddit.com/r/ProgrammerHumor | 2021-11-30

    https://sonic-pi.net/ or

  • GitHub repo lmms

    Cross-platform music production software

    Project mention: MIDI export problems | reddit.com/r/lmms | 2021-12-02
  • Nanos

    Run Linux Software Faster and Safer than Linux with Unikernels.

  • GitHub repo supercollider

    An audio server, programming language, and IDE for sound synthesis and algorithmic composition.

    Project mention: CPU Pinning and CPU Sets | news.ycombinator.com | 2021-11-29

    The Supernova audio server (https://github.com/supercollider/supercollider/tree/develop/...) pins each thread of its DSP thread pool to a dedicated core.

  • GitHub repo Snapcast

    Synchronous multiroom audio player

    Project mention: Apple Music is the last library focused music service | news.ycombinator.com | 2021-12-01

    I still pay for it... but only barely. It's a sad shadow of GPM, which was much more to my liking.

    If you want to avoid their awful web UI there are options. There's a decent, standalone, GUI YTM application for KDE [0] which I've used. Doesn't support logins, but if you just want a player it works well. There's also a plugin for Mopidy [1] that lets you listen through your MPD / snapcast [2] server, but that's more fiddly.

    [0] https://apps.kde.org/audiotube/

    [1] https://github.com/OzymandiasTheGreat/mopidy-ytmusic

    [2] https://github.com/badaix/snapcast

  • GitHub repo Clementine

    :tangerine: Clementine Music Player

    Project mention: Which music players exist which are currently still developed/maintained and have a GUI? | reddit.com/r/linuxquestions | 2021-11-30

    https://github.com/clementine-player/Clementine (for a long time, however, only RC releases have been published and not final versions)

  • GitHub repo mixxx

    Mixxx is Free DJ software that gives you everything you need to perform live mixes.

    Project mention: Beginner's question - Serrato or Rekordbox? | reddit.com/r/Beatmatch | 2021-11-29

    for fun? open source https://mixxx.org/ !

  • GitHub repo OTTO

    Sampler, Sequencer, Multi-engine synth and effects - in a box! [WIP] (by bitfieldaudio)

    Project mention: Piecing together an OP-1 from parts? | reddit.com/r/synthdiy | 2021-06-16

    This was born as an accessible replacement: https://github.com/bitfieldaudio/OTTO

  • Scout APM

    Scout APM: A developer's best friend. Try free for 14-days. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.

  • GitHub repo mpd

    Music Player Daemon

    Project mention: Let's make a definitive guide to the subtle differences in Self Hosted Music Streaming. | reddit.com/r/selfhosted | 2021-10-01

    Others: Ampache, Mopidy, Koel, Music Player Daemon (MPD), Lightweight Music Server (LMS), Serviio. I'm not saying these are bad, I just don't know what sets these apart from the "Generic Music Server"

  • GitHub repo strawberry

    :strawberry: Strawberry Music Player (by strawberrymusicplayer)

    Project mention: Which music players exist which are currently still developed/maintained and have a GUI? | reddit.com/r/linuxquestions | 2021-11-30

    https://github.com/strawberrymusicplayer/strawberry (fork of clementine)

  • GitHub repo sonobus

    Source code for SonoBus, a real-time network audio streaming collaboration tool.

    Project mention: Super low-latency jamming over the internet | news.ycombinator.com | 2021-10-23

    I'm guessing that most people reading this are not familiar with some of the other options available for this kind of thing. In particular, they likely don't know about Sonobus:


    (and that's likely because it's libre software and the developer doesn't really do marketing)

  • GitHub repo zynaddsubfx

    ZynAddSubFX open source synthesizer

    Project mention: Idiomatic way to execute code at a sample rate? | reddit.com/r/rust | 2021-08-28

    I suggest that you look into open source audio synthetizers (like https://github.com/zynaddsubfx/zynaddsubfx) to see the approach they use.

  • GitHub repo q

    C++ Library for Audio Digital Signal Processing (by cycfi)

    Project mention: Declarative, non-intrusive, compile-time C++ reflection for audio plug-ins | news.ycombinator.com | 2021-10-31
  • GitHub repo LMS

    Lightweight Music Server. Access your self-hosted music using a web interface.

    Project mention: Let's create an overview of selfhostable music servers! | reddit.com/r/selfhosted | 2021-11-27

    LMS refers to lightweight music server maybe that should be more clear in the table, i'll make a PR for that later

  • GitHub repo DaisySP

    A Powerful, Open Source DSP Library in C++

    Project mention: Best sounding reverb? | reddit.com/r/modular | 2021-09-19
  • GitHub repo nsfplay

    Nintendo NES sound file NSF music player

    Project mention: Sound of the 2C33: The Famicom Disk System | news.ycombinator.com | 2021-11-13

    To elaborate on how frequency modulation "gives the triangle wave a grittier sound", FDS's FM and Yamaha's phase modulation produce sidebands, or extra frequencies, at (harmonic * carrier frequency ± n * modulator frequency). The intensity of each sideband is proportional to FFT(carrier)[harmonic] * f(n) (for some odd f involving Bessel functions and FFT(modulator), which is zero for large |n|, and the number of nonzero n increases as the modulation index increases). In this case, the modulator frequency isn't a small rational factor of the carrier frequency, creating gritty inharmonic sidebands.

    As an example of FDS FM, you can look at this video (https://www.youtube.com/watch?v=Tgu1mCBU2vA) describing FM emulation errors in older versions of FamiTracker, and how some chiptune songs are incompatible with the more accurate emulation core I imported into Dn-FamiTracker.

    FDS FM is the chip's defining characteristic in modern chiptune, though it was sadly barely explored by official games in the console's original lifespan (aside from being used as vibrato). The only game I currently know which used FM at audible frequencies was Bio Miracle Bokutte Upa (https://www.youtube.com/watch?v=_alQrPMNBT0), which also required cycle-accurate console emulation and would otherwise degrade into inharmonic chaos (like the "FM emulation errors" video above). Unlike regular FM on Yamaha sound chips, the FDS allows you to use complex carrier wavetables. Combined with how the modulator is naturally slightly detuned from the carrier (due to hardware rounding errors), this results in growling evolving sounds as the waveform stretches and squeezes in the time domain, and harmonics and sidebands beat in and out of phase in the frequency domain.

    Strangely, the FDS's modulator doesn't draw from an array of samples like the carrier waveform, but instead an array of 3-bit delta values (https://github.com/NovaSquirrel/Mesen-X/blob/master/Core/Mod...) representing adding [+0, +1, +2, +4, reset=0, -4, -2, -1] (modulo [-64..64)) to the current modulator amplitude. This means you have to design modulator tables carefully, or else the carrier frequency will have a net offset (as above) or even drift endlessly until it wraps around. Interestingly, FamiTracker shows the mod table as only having 32 elements (compared to the wavetable's 64 elements), and the nesdev wiki (https://wiki.nesdev.org/w/index.php/FDS_audio#Mod_table_writ...) describes the mod table as having 32 elements. This conflicts with how Mesen (https://github.com/NovaSquirrel/Mesen-X/blob/master/Core/Mod...), cxNES (https://github.com/perilsensitive/cxnes/blob/master/boards/a...), and nsfplay (https://github.com/bbbradsmith/nsfplay/blob/master/xgm/devic...) implement the mod table as a 64-element array where you can only write to 2 adjacent elements at a time. I'm not sure which is accurate, as I don't have hardware on hand to test.

    Then on each sample (https://github.com/NovaSquirrel/Mesen-X/blob/master/Core/Mod...), the modulator amplitude is multiplied by the modulation strength (dropping a few lower bits and rounding oddly), clamped between [-64..192) (asymmetrical for some reason), and then used to change the carrier's instantaneous frequency by 0x through 4x (https://github.com/NovaSquirrel/Mesen-X/blob/master/Core/Fds...).

  • GitHub repo Arduino-FastLED-Music-Visualizer

    An Arduino based music visualizer using the FastLED library and a strip of individually addressable LEDs

    Project mention: Spectrum Shield Coding Help | reddit.com/r/FastLED | 2021-03-19


  • GitHub repo snestracker

    Super Nintendo Entertainment System Music Software. Super Famicom Music Software

    Project mention: Here's a mockup for Super Famitracker (a SNES tracker) | reddit.com/r/famitracker | 2021-01-17
  • GitHub repo arduino-eurorack-projects

    Eurorack modular synthesizer DIY projects with Arduino and common C++ libraries.

    Project mention: Looking for a clock schematic/ stripboard | reddit.com/r/synthdiy | 2021-11-04

    The Circuit Abbey TICK is a simple 555-based clock with three ranges. After that there are any number of divider options, including the 4ms Rotating Clock Divider.

  • GitHub repo DFPlayerMini_Fast

    Fast and easy to understand Arduino library to use the DFPlayer Mini MP3 module from DFRobot.com. This is a huge improvement (both in terms of execution speed and simplicity) to the standard library provided by DFRobot.com.

    Project mention: Mp3 Shuffle Function | reddit.com/r/arduino | 2021-06-11

    Using DfPlayer mini and this library I've managed to make a basic MP3 player with an arduino communicating with it using serial.

  • GitHub repo Guayadeque

    Guayadeque is a music management program designed for all music enthusiasts. It is Full Featured Linux media player that can easily manage large collections and uses the Gstreamer media framework.

    Project mention: Webamp · Winamp 2 in the Browser | news.ycombinator.com | 2021-04-14

    guayadeque https://github.com/anonbeat/Guayadeque

    It looks different but I always found it to be very similar.

    Haven't used it for long though.

  • GitHub repo fmod-gdnative

    FMOD Studio integration and bindings for the Godot game engine

  • GitHub repo musique

    C'est très élégant

    Project mention: What should I use for unzipping zip files and the like ? | reddit.com/r/archlinux | 2021-08-25

    Try with other .zip file. Try this (It's the source code of musique from github, nothing special, just for testing the extract feature). Download the sample file, try to decompress it. If it's works then your .zip file is corrupted or is compressed by algorithm unrecignised by Ark.

  • GitHub repo yummyDSP

    An Arduino audio DSP library for the Espressif ESP32 and probably other 32 bit machines

    Project mention: Making annoying baby toys into interactive bluetooth speakers | reddit.com/r/esp32 | 2021-01-15

    Maybe this would inspire you as far as having buttons do creative modifications to the music: https://github.com/garygru/yummyDSP

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2021-12-02.

C++ Music related posts


What are some of the best open-source Music projects in C++? This list will help you:

Project Stars
1 Sonic Pi 8,679
2 lmms 5,406
3 supercollider 4,008
4 Snapcast 3,992
5 Clementine 3,074
6 mixxx 2,487
7 OTTO 2,381
8 mpd 1,483
9 strawberry 1,278
10 sonobus 778
11 zynaddsubfx 652
12 q 635
13 LMS 493
14 DaisySP 400
15 nsfplay 177
16 Arduino-FastLED-Music-Visualizer 153
17 snestracker 138
18 arduino-eurorack-projects 128
19 DFPlayerMini_Fast 125
20 Guayadeque 103
21 fmod-gdnative 88
22 musique 88
23 yummyDSP 52
Find remote jobs at our new job board 99remotejobs.com. There are 32 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives