Skip to content

About

πŸŽ›οΈ A curated list of awesome Cmajor resources, libraries, tools, examples, tutorials, and projects for audio and DSP development.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Latest commit

Β 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Awesome Cmajor Awesome

A curated list of awesome resources, tools, patches and projects for Cmajor β€” a C-family programming language for writing fast, portable audio DSP.

Cmajor is built by Cmajor Software Ltd (formerly Sound Stacks), founded by Julian Storer, the original author of JUCE. It compiles DSP graphs to native code via LLVM or to WebAssembly, runs the same source on CPUs, in DAWs and in browsers, and packages everything as a self-contained patch with an optional web-tech GUI.

Contents

Official Resources

  • cmajor.dev β€” Official home page and documentation hub.
  • cmajor-lang/cmajor β€” The main public repository: compiler, command-line tools, C++ API, JavaScript API and examples.
  • Releases β€” Prebuilt binaries for macOS, Windows and Linux.
  • Issue tracker β€” Bug reports, feature requests, and a searchable archive of past answers.
  • cmajor-lang on GitHub β€” The organisation, including the docs site and dependency forks.
  • Licence terms β€” Read these before shipping a commercial product; the language, tools and runtime are not all covered by the same terms.

Documentation

  • Getting Started β€” Install paths, first patch, and the cmaj command-line tool.
  • Language Reference β€” The full language: processors, graphs, streams, events, value types, generics and namespaces.
  • Standard Library β€” std::oscillators, std::filters, std::envelopes, std::notes, std::mixers and friends.
  • Patch Format β€” The .cmajorpatch manifest, resources, GUI folder, and the export routes to CLAP/VST/AU/Web Audio.
  • Test File Format β€” Writing .cmajtest unit tests for DSP code, run with cmaj test.
  • Script File Format β€” JavaScript-driven build and render scripts.
  • C++ API β€” Loading, JIT-compiling and rendering patches from a C++ host.
  • Quick Start (repo copy) β€” The same guide, versioned alongside the source.

Tools & Editor Support

  • Cmajor for VS Code β€” The official extension: syntax highlighting, one-click toolchain install, Cmajor: Create a new patch, and patch playback from the command palette. The fastest way in.
  • cmaj command-line tool β€” Ships with the release bundle. The workhorse commands:
    • cmaj play <patch> β€” Render a patch live to your audio device.
    • cmaj test <file.cmajtest> β€” Run a DSP test suite.
    • cmaj generate --target=cpp β€” Emit dependency-free C++ that needs no JIT at runtime.
    • cmaj generate --target=webaudio-html β€” Emit a standalone HTML/JS/WASM bundle.
    • cmaj generate --target=juce β€” Emit a JUCE project for a native VST3/AU/AAX build.
    • cmaj generate --target=clap β€” Emit a native CLAP plugin project.
  • Cmajor VST/AU plugin β€” A host plugin that loads and hot-reloads .cmajorpatch files inside any DAW, so you can iterate on DSP without restarting the session.

Official Example Patches

All of these live in examples/patches and are catalogued at cmajor.dev/docs/Examples.

  • HelloWorld β€” The smallest possible patch. Start here.
  • Tremolo β€” Minimal modulation effect, and the basis of the ADC workshop below.
  • RingMod β€” Ring modulator paired with a hand-written GUI.
  • FilterEQ and PirkleFilters β€” Filter design, including ports from Will Pirkle's books.
  • ZitaReverb β€” A port of the well-known Zita reverb algorithm.
  • 808 β€” Classic drum machine voice synthesis.
  • Piano and ElectricPiano β€” Physically-inspired and sample-driven instruments.
  • TunedBar β€” Modal synthesis of a struck bar.
  • Pro54 β€” A full polyphonic analogue-style synth, and the flagship demonstration of what the language can do at scale.
  • GuitarLSTM β€” Neural amp modelling running inside a patch.
  • Replicant β€” Port of the Maximilian example of the same name.
  • CompuFart β€” Yes, really. See the community repo below.

Community Patches & Plugins

Embedding & Integration

  • C++ API β€” Embed the JIT engine in a host app, or use cmaj::JUCEPluginFormat, a juce::AudioPluginFormat that scans for and loads patches as though they were plugins.
  • Ahead-of-time C++ generation β€” cmaj generate --target=cpp translates Cmajor into plain C++ with no runtime dependency on the compiler. This is the route to embedded targets and locked-down plugin formats.
  • Web Audio / WebAssembly export β€” Emit a dependency-free HTML/JS bundle, or take just the JS classes and wire them into an existing site.
  • cmaj_api JavaScript helpers β€” patchConnection and friends: the bridge between a patch's parameters and events and a web GUI.
  • free-audio/clap-wrapper β€” Wraps a CLAP into VST3/AU. Used by Cmajor's CLAP export path.
  • cmajor-lang/clap-example β€” A worked example of building the Pro54 synth as a CLAP plugin.

Machine Learning

  • Machine Learning docs β€” Running inference inside a patch, with the supported operator lists for each backend.
  • ONNX support β€” Import models exported from PyTorch or TensorFlow via ONNX.
  • RTNeural β€” Real-time-safe neural inference library, supported as a Cmajor backend.
  • cmajor-lang/GuitarLSTM β€” LSTM amp and pedal emulation models, the source of the GuitarLSTM example patch.

Talks & Videos

Community

Related Projects

  • SOUL β€” The earlier language from the same team, which Cmajor supersedes. Useful background reading; not a basis for new work.
  • JUCE β€” The C++ framework Cmajor exports plugin projects to.
  • CHOC β€” Julian Storer's header-only C++ utility collection, used throughout the Cmajor codebase.
  • Faust β€” The other major DSP language targeting many backends, and the closest point of comparison.
  • CLAP β€” The open plugin format Cmajor exports to natively.
  • Awesome Audio DSP β€” Broader list of DSP learning resources and libraries.
  • Awesome Music DSP β€” Long-standing catalogue of audio DSP libraries and tools.

Contributing

Contributions are welcome. Please read the contribution guidelines first β€” in short: one item per pull request, a one-line description of why the resource is worth someone's time, and no self-promotion of empty repositories.

About

πŸŽ›οΈ A curated list of awesome Cmajor resources, libraries, tools, examples, tutorials, and projects for audio and DSP development.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Contributors