How Maru compares
Parts of Maru overlap with tools you may already use. Each table shows where the two differ, including where the other tool is the better choice today.
| Layer | Maru | JUCE | Cmajor | RNBO | Faust | Elementary |
|---|---|---|---|---|---|---|
| DSP authoring | Covered | Covered | Covered | Covered | Covered | Covered |
| Plugin formats (VST3, AU, CLAP) | Covered | Covered | Partial or experimental | Covered | Covered | Partial or experimental |
| Plugin UI kit | Covered | Covered | Partial or experimental | Partial or experimental | Partial or experimental | Covered |
| Browser runtime | Covered | Partial or experimental | Covered | Covered | Covered | Covered |
| Hardware export | Partial or experimental. Builds and emulation for Pi 5, Pico 2, Daisy Seed and ESP32-S3; device qualification in progress. | Partial or experimental | Partial or experimental | Covered | Covered | Not covered |
| Sampler / instrument framework | Covered | Partial or experimental | Not covered | Partial or experimental | Not covered | Not covered |
| Composition and patterns | Covered | Not covered | Not covered | Partial or experimental | Not covered | Not covered |
| Agent tooling (MCP, skills) | Covered | Not covered | Not covered | Not covered | Not covered | Not covered |
| Examples and templates | Covered | Covered | Partial or experimental | Covered | Covered | Partial or experimental |
| Community and marketplace | Partial or experimental. Publishable bank format and sharing; marketplace planned. | Partial or experimental | Not covered | Partial or experimental | Partial or experimental | Not covered |
- Covered
- Partial or experimental
- Not covered
As of October 2026
Plugin frameworks
Maru removes the handoffs.
Most alternatives solve one part of the product: DSP, patching, interface, or native hosting. Maru carries a musical brief through a typed graph, normal web interface, live workbench, verification, and supported bundle in one TypeScript project.
| Capability | MaruAgent-first TypeScript product workflow | Raw C++Maximum control, maximum responsibility | JUCEMature cross-platform C++ framework | CmajorDedicated DSP language and code generation | RNBOMax patching with export targets | Max/MSPOpen-ended visual patching environment |
|---|---|---|---|---|---|---|
| Coding-agent workflow | First-classOne typed project, agent guide, validation, and live workbench | High supervisionA broad low-level surface with few product guardrails | Possible, not structuredLarge C++ API and build matrix remain in the loop | DSP-friendlyThe product shell and interface still need another layer | Patch-firstVisual patch editing is less natural for code agents | Patch-firstAgents work indirectly through patch files and Max conventions |
| Audio and interface | One TypeScript projectGraph, parameters, UI, tests, and product behavior together | You choose every layerUsually C++ plus a UI toolkit and host integration | C++ firstNative UI is built in; web UI adds a WebView and bridge | Split stackCmajor for DSP, scripts or generated host project for UI | Split stackRNBO device plus a separate interface for web products | Inside MaxRich patcher UI, Jitter, and scripting within its ecosystem |
| Web UI freedom | Native to the workflowReact, Vue, WebGL, 3D, animation, and ordinary packages | ManualSelect, embed, and maintain the entire web or native UI stack | Available with integrationWebViews are supported, but the bridge is product work | Possible, separateGUI scripts do not remove the product integration handoff | Interface is your jobThe web export is integrated through @rnbo/js | Powerful but ecosystem-boundMax UI and Jitter are not a normal web product repo |
| Live browser iteration | Built inHear the graph and use the real interface while the agent edits | Build it yourselfAudio runtime, reload loop, diagnostics, and UI hosting | Not the default loopNative builds and hosts remain the center of gravity | Strong DSP reloadHTML and WASM export exists; product UI remains separate | Export then integrateCreate the device, then build the browser experience | Live inside MaxImmediate patching, but not a browser delivery workflow |
| Native product plumbing | GeneratedParameters, saved state, UI packaging, builds, and verification | Entirely manualFormats, hosts, state, automation, installers, and validation | Framework suppliedYou still own builds, signing, installers, and host testing | Generated project handoffExport C++ or JUCE projects, then compile and finish them | Export systemRequires the Max and RNBO toolchain and target workflow | Additional route requiredUse Max for Live, RNBO, Gen export, or custom native code |
| Specialist knowledge | LowestDirect the product, listen, and let the agent operate the technical loop | HighestRealtime C++, memory safety, hosts, build systems, and platforms | HighC++, realtime audio, JUCE architecture, formats, and toolchains | ModerateLearn a DSP language plus the surrounding host and UI layers | ModerateLearn Max and RNBO patching, exports, and target constraints | ModerateLearn Max patching and the conventions of its broad ecosystem |
| Main tradeoff | Private betaFaster integrated workflow with narrower verified coverage today | Everything is yoursMaximum flexibility also means maximum engineering load | Mature but heavyBroad production coverage at the cost of C++ complexity | DSP is not the whole productA second language and generated-project handoff remain | Export is not the whole productWeb UI and product integration remain separate | Great laboratory, indirect product pathShipping beyond Max needs another route |
JUCE and raw C++ offer broader mature control today. Max/MSP and RNBO remain capable patching environments. Those strengths do not make them shorter routes to an agent-built, web-native audio product.
Pattern languages
Symbolic Cycle adds harmony to Strudel's patterns.
Symbolic Cycle is built on Strudel's pattern engine, and Strudel is a JavaScript port of TidalCycles. The three share mini-notation and pattern functions. Symbolic Cycle adds chords, keys and numerals as values and sends the result to an instrument as MIDI.
| Capability | Symbolic CycleMusical structure as code, played as MIDI | StrudelTidal's patterns in JavaScript, in the browser | TidalCyclesThe original live-coding pattern language |
|---|---|---|---|
| What you write | Chords, keys and numeralsStrudel's mini-notation, plus Roman numerals, chord symbols, scale steps and pitch-class sets as values | Patterns of notes and soundsMini-notation and pattern functions in JavaScript | Patterns of notes and soundsMini-notation and pattern functions embedded in Haskell |
| Harmony and key | Values that wait for contextA chord can stay abstract until it gets a key, a root or a voicing, so a progression can be moved later | Helper functionsScale, chord and voicing functions resolve to notes inside the pattern | Helper functionsScale and chord functions resolve to note numbers inside the pattern |
| What comes out | MIDI onlyOne MIDI track per named layer, with MIDI file export. The sound belongs to the instrument that receives the notes | Sound, MIDI or OSCBuilt-in synths and samples through Web Audio, with MIDI and OSC outputs | OSC messagesUsually sent to SuperDirt in SuperCollider for samples and synths |
| Choosing the sound | Any instrument you chooseBuild a rack and route each layer to any of the dozens of instruments on the platform, or drag the MIDI into your DAW and use your own | Built-in sound engineIts own synths and sample playback, or MIDI out to another instrument | SuperDirtSamples and synths in SuperCollider, or MIDI out to another instrument |
| Where it runs | In the Code SequencerA browser module today, with a built-in audition voice for previewing | In the browserThe Strudel REPL, or embedded in another page | A desktop setupA Haskell install and a code editor, usually driving SuperCollider |
| Generating material | Seeded generatorsDraft progressions, melodies and basslines. The same seed always gives the same notes | Randomness and probabilityRandom choice and probability functions vary a written pattern | Randomness and probabilityRandom choice and probability functions vary a written pattern |
| Reusing songs | Songs are modulesLayers are named exports, so one song can take its drums or chords from another | Labelled partsParts are named inside one document and shared as a link or copied code | Your own filesCode lives in your editor and is organized however you prefer |
| Playing live | Edit while it playsA valid edit takes over at the next cycle. A song has a small source limit and at most 256 cycles per pass | Built for itA live-coding REPL with highlighting and visual feedback | Built for itA long-standing live-coding community and performance practice |
| Main tradeoff | Work in progressChanging quickly, MIDI only, and browser only today | Sound firstA complete instrument in a tab; harmony resolves to notes rather than staying a value | Most mature, most setupA deep pattern library, with more to install before the first sound |
Play it through a rack
Create a rack and assemble a modular setup around the Code Sequencer. Route each layer to any of the dozens of instruments on the platform, then add effects after them. Browse the racks.
Play it in your DAW
Drag the MIDI from the Code Sequencer into your DAW. Each layer arrives as its own track, ready for any instrument you already use.
For sound design and live performance, Strudel and TidalCycles are the more complete tools. Symbolic Cycle is for writing harmony and arrangement as code. The Code Sequencer also runs plain Strudel when you want that instead.
Sample players
An open sampler you can play from a link.
Kontakt is the established home for commercial sample libraries. Maru Sampler is newer and smaller. A bank plays in the browser, and Studio builds one from your recordings with an agent.
| Capability | Maru SamplerFree, open sampler with banks you can play in the browser | Kontakt PlayerFree player for licensed Kontakt libraries | KontaktFull sampler and instrument-building environment |
|---|---|---|---|
| Playing an instrument | In the browser firstOpen a bank from a link and play it with on-demand audio, on-screen keys or a MIDI keyboard | Desktop app or pluginInstall the library, then load it standalone or in a DAW | Desktop app or pluginAlso opens libraries that are not licensed for the Player |
| Making an instrument | Studio, with an agentDrop in recordings, map them from their filenames, then refine with the agent or the mapping controls. Studio is in private beta | Not in the PlayerBuilding or editing an instrument needs the full version | Deep manual editorMapping, groups, modulation, effects and scripting for custom behavior |
| Releasing a library | Publish or export a bankA saved bank can be published for others to play, or exported as a ZIP with its audio and settings | Licensed through Native InstrumentsA library is licensed and encoded with NI before it runs in the free Player | Sell the files yourselfBuyers of an unlicensed library need the full version to use it |
| Bank format | A bank you can openSamples, mappings, presets and artwork that can be copied into Studio and edited | Kontakt formatsInstrument files open only in Kontakt, and Player libraries are encoded | Kontakt formatsInstrument files open only in Kontakt |
| In a DAW | Being completedThe sampler plugin will host banks in the DAW. Native bank delivery is still being tested for each host | EstablishedA widely supported plugin with years of host coverage | EstablishedThe same plugin as the Player, with editing unlocked |
| Playback engine | Core sampling featuresVelocity layers, round robin, choke groups, tuning, trim, filtering and envelopes. Aftertouch and MPE are in development | Whatever the library shipsThe full Kontakt engine, with the controls its author chose to expose | Very deepSeveral sampling modes, time-stretching, a large effects set and scripting |
| Custom interface | Bank interface or own pluginA bank can carry its own interface, or sampler components can become a separate instrument plugin. Both paths are still being completed | Inside KontaktA library brings a scripted interface that is shown in the Kontakt window | Inside KontaktAuthors script the interface; the result still runs in Kontakt |
| Main tradeoff | Early and openBrowser audition and agent-assisted authoring today, with a small catalog and DAW delivery in progress | Largest catalog, licensed entryThe standard for commercial libraries, with NI licensing between an author and the free Player | Powerful and paidThe deepest toolset, with a paid license and more to learn |
Kontakt has the larger catalog, a deeper engine and long host coverage. Maru Sampler's DAW delivery is still being completed, so check a release's listed formats before planning around it.