Borg ER-0 ~ Audio Synthesizer & Tone Generator

A portable (SDL) audio synthesizer / tone generator that allows users to draw oscillators and envelopes.

github.com/mrbid/Borg-ER-0

Borg ER-3 ~ Audio Synthesizer & Tone Generator

A portable (SDL) audio synthesizer / tone generator inspired by the Korg ER-1

github.com/mrbid/Borg-ER-3

HARP ~ Hardware Audio Runtime Protocol

Make hardware instruments behave like plugins. A Raspberry Pi 4B plays as an instrument track in Ableton Live today — Git-style total recall through the project’s own save/reopen, knobs as sample-accurate automation lanes, and offline bounce through the physical box.

Hardware synths, drum machines, and effects have connected to computers for forty years, and the connection is still fragile in one specific way: recall. Audio mostly works, MIDI mostly works — but reopen last month’s project and the hardware is not in the state you saved, and nothing will tell you. The deep integrations that fix this (multichannel USB audio, plugin-shell control, total recall) have existed only inside closed single-vendor ecosystems, because every vendor has to rebuild drivers, state sync, and DAW compatibility from scratch.

HARP is a complete, working implementation of that integration — with an open spec underneath, if you want to build a device on it. The reference device is a Raspberry Pi running a 16-part multitimbral, 8-voice-polyphonic synth (13 params per part); anything that speaks the protocol gets the same treatment from any conforming host:

  • Total recall, Git-style — device state is content-addressed and hash-verified; a saved project reopens with the hardware provably in the saved state, every overwrite preceded by a free snapshot, every mismatch resolved through explicit safe actions — never silently. The archive doubles as patch time-travel: every state the box has ever been pushed over is one click away.
  • Audio as a plugin — a dedicated stream into the plugin shell that bypasses the OS audio stack (no aggregate-device hacks), including a host-paced mode where the hardware renders deterministically, byte- identical, faster than real time: offline bounce through a physical box at ~25× real time, with 16 ms of reported latency at DAW buffers ≤ 256 — in the neighborhood of a good audio interface.
  • Multitimbral, addressed like plugins — one physical device is one session, and several shell instances can share it: drop the plugin on a handful of DAW tracks and each instance drives its own part — its own channel, params, recall state, and stereo output (16 parts, with a summed main mix alongside the per-part outputs). A recall-safe Part knob persists each track’s part in the project, and that per-part state moves intact between the VST3 and AU formats (the CLAP shell writes the same recall bundle).
  • Polyphonic, with per-voice modulation — each part is an 8-voice pool with deterministic voice allocation, so overlapping notes ring out on their own voices instead of stealing one. Modulation is non-destructive and per voice: a VST3 Note Expression or a CLAP per-note parameter modulation bends a single sounding note’s filter cutoff without touching the stored patch — and the two formats render byte-identically (the device applies the §9.5 mod the same regardless of which shell sent it).
  • Sample-accurate everything — DAW automation becomes device-interpolated ramps applied within ±1 sample; notes travel as UMP; an event fence makes “applied late” structurally impossible rather than statistically rare. Turn a knob on the hardware and the DAW records the automation (echo).
  • Musical time — devices follow the DAW’s transport: tempo, position, loops. The reference device’s arpeggiator locks to Live’s grid sample-exactly, survives loop wraps, and renders a byte-identical groove — determinism extended to musical time.
  • Identity, timing, diagnostics — engine versioning and parameter-map hashing protect old songs from new firmware, latency is measured (never guessed), and error counters at every layer end “it glitched” support threads with evidence.
  • Roadie-proof sessions — unplug the cable mid-song and plug it back: the shell reconnects, re-asserts the project’s state, and audio resumes. Hostile or corrupt wire input ends in a clean session reset, never a crash (every parser is fuzzed; a live abuse test is part of CI).

github.com/kschzt/harp

cosmo-pd ~ Phase Distortion Synthesizer

A monorepo for Casio CZ-101 phase distortion synthesis — including a preset manager web/desktop app, an in-browser phase distortion synthesizer, and a VST3/CLAP/AUv2 plugin.

github.com/fpbrault/cosmo-pd

QMidiArp ~ MIDI Arpeggiator & Phrase Generator

QMidiArp is a MIDI arpeggiator, phrase generator and controller LFO for ALSA and JACK. It can run multiple synchronized arpeggiators, LFOs and step sequencers. The modules are also available as LV2 plugins with Qt user interface. QMidiArp has been growing since June 2009 on top of Matthias Nagorni’s original arp idea.

Features:

  • Programmable arpeggio patterns, LFO waveforms and sequences
  • Modular setup of arpeggiators, MIDI LFOs and step sequencers
  • MIDI-controllable (MIDI-Learn)
  • Synchronization with MIDI Clock or JACK Transport possible
  • Optional triggering by keyboard or continuous play mode for all modules
  • Patterns can be stored and switched by MIDI control while running
  • JACK MIDI or ALSA MIDI backends
  • Modules available as LV2 Plugins

qmidiarp.sourceforge.net
sourceforge.net/projects/qmidiarp
github.com/emuse/qmidiarp
man.archlinux.org/man/qmidiarp.1.en
www.freshports.org/audio/qmidiarp

qmidiarp

Video:

Packages:

packages.debian.org/trixie/qmidiarp
packages.fedoraproject.org/pkgs/qmidiarp

References:

en.wikipedia.org/wiki/Synthesizer#Arpeggiators
www.linuxjournal.com/content/linux-arpeggiators-part-1
en.wikipedia.org/wiki/Advanced_Linux_Sound_Architecture
en.wikipedia.org/wiki/Low-frequency_oscillation
en.wikipedia.org/wiki/JACK_Audio_Connection_Kit

k-synth ~ Pocket Calculator Synthesizer

/synth is a minimalist, array-oriented synthesis environment. Heavily inspired by the K/Simple lineage and the work of Arthur Whitney, it treats sound not as a stream, but as a holistic mathematical vector.

📐 The Philosophy

This isn’t a DAW; it’s a vector-processing engine designed for “Base Camp” signal processing.

It uses:

  • One-Letter Variables: A-Z globals only.
  • Right-Associativity: Expressions evaluate from right to left.
  • Vectorized Verbs: Math applied to entire buffers at once.

Sound is a vector. A kick drum is a vector. A two-second bell tone is a vector. You do math on vectors and the result is audio. There are no tracks, no timelines, no patch cables — only expressions.

octetta.github.io/k-synth
github.com/octetta/k-synth

AJED ~ Roland JUNO ALPHA & MKS50 Editor

An Editor for Roland JUNO ALPHA 1 / 2 HS-10 / HS-80 and Roland MKS50

sourceforge.net/projects/ajed

Sampletoy ~ Sampler & Synthesiser

Sampletoy is a radical new musical instrument / plaything;
part sampler, part granular synthesiser.

Use it to capture sounds through the microphone,
then playlooppitch and distort them live on the screen.

www.elf-audio.com/sampletoy
www.facebook.com/elfaudioapps

SY-FloorBoard ~ BOSS & Roland Editors

A collection of graphical midi based editors, each made specifically for the BOSS SY-1000 , Roland VG-99 guitar, or VB-99 bass synth units, which provide an alternative to the Boss or Roland version of midi editors, with full features and control of the SY-1000, VG-99, or VB-99 from a Windows, Mac, or Linux computer.

Features:

  • Midi editing of parameters on-line or off-line, text list generation of settings, file load/save/backup/restore, ease of use with graphical interface.
  • A different version specific for each device.
  • SY-1000FloorBoard version also has features to convert patches from VG-99,VB-99, GP-10, GT-1000 units.
SY-1000 Floorboard interface

sourceforge.net/projects/sy1000floorboard

JD990 Super Editor ~ Roland JD-990 Editor

CtrlrX based editor for Roland SUPER JD SYNTHESIZER MODULE JD-990

Features:

  • Menu access to SR-JV80/SL-JD80 external card patches and waveforms if installed.
  • Rename any remote patch name for Internal Patches I-11 – I-88 (64 x patches).
  • Save Temporary Patch data on Ctrlr panel to any Internal Patch location I-11 – I-88 (64 x patches).
  • Palette mode. Quick adjustment of each Tone ABCD using mouse wheel or click & drag.
  • Patch data on panel can be saved as a sysex file to computer.
  • Bulk Sysex dumps of patches I-11 – I-88
  • Emulation of most graphic elements on the JD-990 display.
  • Separate ”mixer’ area allowing simultaneous adjustment of each Tone Level & Pan.
  • Sync button~ synchronising panel with JD-990.
  • PATCH mode, PERFORMANCE and RHYTHM editing
  • Map Keyboard Control CC messages to panel.
  • MIDI learn feature
  • Support for SO-PCM1 cards not yet fully implemented
JD990 Super Editor

sourceforge.net/projects/jd990-super-editor
github.com/RomanKubiak/ctrlr

anklang ~ MIDI & Audio Synthesizer & Composer

Anklang is a digital audio synthesis application for live creation and composition of music and other audio material.

anklang.testbit.eu
tim-janik.github.io/anklang
github.com/tim-janik/anklang

SF2Lib ~ SoundFont (SF2) Synthesizer In C++

This library can read SF2 SoundFont files and render audio samples from them in real-time. It properly reads in a compliant SF2 file and can be used to obtain meta data such as preset names. It also has an audio rendering engine that can generate audio samples for key events that come from (say) a MIDI keyboard. This library is currently being used by my SoundFonts and SoundFontsPlus applications for SF2 file parsing and, in the latter app, as the sample generating engine.

Although most of the library code is generic C++17/23, there are a few bits that expect an Apple platform that has the AudioToolbox and Accelerate frameworks available. The goal is to be a simple library for reading SF2 files as well as a competent SF2 audio renderer whose output can be fed to any sort of audio processing chain, but it would probably take some effort to remove it from the Apple ecosystem.

github.com/bradhowes/SF2Lib
swiftpackageindex.com/bradhowes/SF2Lib