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.

Most tools cover the DSP layer; Maru aims to cover the whole stack
LayerMaruJUCECmajorRNBOFaustElementary
DSP authoringCoveredCoveredCoveredCoveredCoveredCovered
Plugin formats (VST3, AU, CLAP)CoveredCoveredPartial or experimentalCoveredCoveredPartial or experimental
Plugin UI kitCoveredCoveredPartial or experimentalPartial or experimentalPartial or experimentalCovered
Browser runtimeCoveredPartial or experimentalCoveredCoveredCoveredCovered
Hardware exportPartial or experimental. Builds and emulation for Pi 5, Pico 2, Daisy Seed and ESP32-S3; device qualification in progress.Partial or experimentalPartial or experimentalCoveredCoveredNot covered
Sampler / instrument frameworkCoveredPartial or experimentalNot coveredPartial or experimentalNot coveredNot covered
Composition and patternsCoveredNot coveredNot coveredPartial or experimentalNot coveredNot covered
Agent tooling (MCP, skills)CoveredNot coveredNot coveredNot coveredNot coveredNot covered
Examples and templatesCoveredCoveredPartial or experimentalCoveredCoveredPartial or experimental
Community and marketplacePartial or experimental. Publishable bank format and sharing; marketplace planned.Partial or experimentalNot coveredPartial or experimentalPartial or experimentalNot 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.

Feature comparison of Maru, raw C++, JUCE, Cmajor, RNBO, and Max/MSP
CapabilityMaruAgent-first TypeScript product workflowRaw C++Maximum control, maximum responsibilityJUCEMature cross-platform C++ frameworkCmajorDedicated DSP language and code generationRNBOMax patching with export targetsMax/MSPOpen-ended visual patching environment
Coding-agent workflowFirst-classOne typed project, agent guide, validation, and live workbenchHigh supervisionA broad low-level surface with few product guardrailsPossible, not structuredLarge C++ API and build matrix remain in the loopDSP-friendlyThe product shell and interface still need another layerPatch-firstVisual patch editing is less natural for code agentsPatch-firstAgents work indirectly through patch files and Max conventions
Audio and interfaceOne TypeScript projectGraph, parameters, UI, tests, and product behavior togetherYou choose every layerUsually C++ plus a UI toolkit and host integrationC++ firstNative UI is built in; web UI adds a WebView and bridgeSplit stackCmajor for DSP, scripts or generated host project for UISplit stackRNBO device plus a separate interface for web productsInside MaxRich patcher UI, Jitter, and scripting within its ecosystem
Web UI freedomNative to the workflowReact, Vue, WebGL, 3D, animation, and ordinary packagesManualSelect, embed, and maintain the entire web or native UI stackAvailable with integrationWebViews are supported, but the bridge is product workPossible, separateGUI scripts do not remove the product integration handoffInterface is your jobThe web export is integrated through @rnbo/jsPowerful but ecosystem-boundMax UI and Jitter are not a normal web product repo
Live browser iterationBuilt inHear the graph and use the real interface while the agent editsBuild it yourselfAudio runtime, reload loop, diagnostics, and UI hostingNot the default loopNative builds and hosts remain the center of gravityStrong DSP reloadHTML and WASM export exists; product UI remains separateExport then integrateCreate the device, then build the browser experienceLive inside MaxImmediate patching, but not a browser delivery workflow
Native product plumbingGeneratedParameters, saved state, UI packaging, builds, and verificationEntirely manualFormats, hosts, state, automation, installers, and validationFramework suppliedYou still own builds, signing, installers, and host testingGenerated project handoffExport C++ or JUCE projects, then compile and finish themExport systemRequires the Max and RNBO toolchain and target workflowAdditional route requiredUse Max for Live, RNBO, Gen export, or custom native code
Specialist knowledgeLowestDirect the product, listen, and let the agent operate the technical loopHighestRealtime C++, memory safety, hosts, build systems, and platformsHighC++, realtime audio, JUCE architecture, formats, and toolchainsModerateLearn a DSP language plus the surrounding host and UI layersModerateLearn Max and RNBO patching, exports, and target constraintsModerateLearn Max patching and the conventions of its broad ecosystem
Main tradeoffPrivate betaFaster integrated workflow with narrower verified coverage todayEverything is yoursMaximum flexibility also means maximum engineering loadMature but heavyBroad production coverage at the cost of C++ complexityDSP is not the whole productA second language and generated-project handoff remainExport is not the whole productWeb UI and product integration remain separateGreat 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.

Feature comparison of Symbolic Cycle, Strudel, and TidalCycles
CapabilitySymbolic CycleMusical structure as code, played as MIDIStrudelTidal's patterns in JavaScript, in the browserTidalCyclesThe original live-coding pattern language
What you writeChords, keys and numeralsStrudel's mini-notation, plus Roman numerals, chord symbols, scale steps and pitch-class sets as valuesPatterns of notes and soundsMini-notation and pattern functions in JavaScriptPatterns of notes and soundsMini-notation and pattern functions embedded in Haskell
Harmony and keyValues that wait for contextA chord can stay abstract until it gets a key, a root or a voicing, so a progression can be moved laterHelper functionsScale, chord and voicing functions resolve to notes inside the patternHelper functionsScale and chord functions resolve to note numbers inside the pattern
What comes outMIDI onlyOne MIDI track per named layer, with MIDI file export. The sound belongs to the instrument that receives the notesSound, MIDI or OSCBuilt-in synths and samples through Web Audio, with MIDI and OSC outputsOSC messagesUsually sent to SuperDirt in SuperCollider for samples and synths
Choosing the soundAny 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 ownBuilt-in sound engineIts own synths and sample playback, or MIDI out to another instrumentSuperDirtSamples and synths in SuperCollider, or MIDI out to another instrument
Where it runsIn the Code SequencerA browser module today, with a built-in audition voice for previewingIn the browserThe Strudel REPL, or embedded in another pageA desktop setupA Haskell install and a code editor, usually driving SuperCollider
Generating materialSeeded generatorsDraft progressions, melodies and basslines. The same seed always gives the same notesRandomness and probabilityRandom choice and probability functions vary a written patternRandomness and probabilityRandom choice and probability functions vary a written pattern
Reusing songsSongs are modulesLayers are named exports, so one song can take its drums or chords from anotherLabelled partsParts are named inside one document and shared as a link or copied codeYour own filesCode lives in your editor and is organized however you prefer
Playing liveEdit while it playsA valid edit takes over at the next cycle. A song has a small source limit and at most 256 cycles per passBuilt for itA live-coding REPL with highlighting and visual feedbackBuilt for itA long-standing live-coding community and performance practice
Main tradeoffWork in progressChanging quickly, MIDI only, and browser only todaySound firstA complete instrument in a tab; harmony resolves to notes rather than staying a valueMost 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.

Feature comparison of Maru Sampler, Kontakt Player, and Kontakt
CapabilityMaru SamplerFree, open sampler with banks you can play in the browserKontakt PlayerFree player for licensed Kontakt librariesKontaktFull sampler and instrument-building environment
Playing an instrumentIn the browser firstOpen a bank from a link and play it with on-demand audio, on-screen keys or a MIDI keyboardDesktop app or pluginInstall the library, then load it standalone or in a DAWDesktop app or pluginAlso opens libraries that are not licensed for the Player
Making an instrumentStudio, with an agentDrop in recordings, map them from their filenames, then refine with the agent or the mapping controls. Studio is in private betaNot in the PlayerBuilding or editing an instrument needs the full versionDeep manual editorMapping, groups, modulation, effects and scripting for custom behavior
Releasing a libraryPublish or export a bankA saved bank can be published for others to play, or exported as a ZIP with its audio and settingsLicensed through Native InstrumentsA library is licensed and encoded with NI before it runs in the free PlayerSell the files yourselfBuyers of an unlicensed library need the full version to use it
Bank formatA bank you can openSamples, mappings, presets and artwork that can be copied into Studio and editedKontakt formatsInstrument files open only in Kontakt, and Player libraries are encodedKontakt formatsInstrument files open only in Kontakt
In a DAWBeing completedThe sampler plugin will host banks in the DAW. Native bank delivery is still being tested for each hostEstablishedA widely supported plugin with years of host coverageEstablishedThe same plugin as the Player, with editing unlocked
Playback engineCore sampling featuresVelocity layers, round robin, choke groups, tuning, trim, filtering and envelopes. Aftertouch and MPE are in developmentWhatever the library shipsThe full Kontakt engine, with the controls its author chose to exposeVery deepSeveral sampling modes, time-stretching, a large effects set and scripting
Custom interfaceBank interface or own pluginA bank can carry its own interface, or sampler components can become a separate instrument plugin. Both paths are still being completedInside KontaktA library brings a scripted interface that is shown in the Kontakt windowInside KontaktAuthors script the interface; the result still runs in Kontakt
Main tradeoffEarly and openBrowser audition and agent-assisted authoring today, with a small catalog and DAW delivery in progressLargest catalog, licensed entryThe standard for commercial libraries, with NI licensing between an author and the free PlayerPowerful 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.