Let a Large Language Model (like Claude, Gemini, or custom IDEs) become your personal co-producer right inside your browser in under 5 minutes. Bridging human creativity with neural technology to synthesize sound in the moment—real-time sound design and instant sonic modulation.
Fetches the complete active JSON state of the Monolith Engine, containing all sequencer step gates, synthesizer waveforms, mixer levels, envelope rates, and LFO mappings.
Sends a full JSON preset structure directly to the browser window, updating all audio nodes and UI buttons in real-time.
Modulates individual knobs or properties dynamically using simple dotted keypaths (e.g. synthParams.lead.cutoff or mixer.bassline.mute).
Loads a Base64-encoded audio file (WAV, MP3, etc.) directly into one of the 8 sampler pads (0 to 7) of the Monolith Engine.
Generates a short synthesizer hit (808 kick, white noise hi-hat sweep, or metallic sine click) programmatically, packages it as a valid WAV, and broadcasts it to the browser.
Returns only the 16-step sequence for one voice — kick, snare, hat, bass, lead, or pad0–pad7 — without loading the full 27 KB preset.
Writes 16 steps to one sampler pad. Each step carries active, pitch (semitones), reverse, and vol — giving the AI full rhythmic and melodic control over that pad.
Writes 16 integer steps to kick, snare, or hat. Values: 0 = off, 1 = normal hit, 2 = accent, 3 = ghost (snare only).
Writes 16 note-steps to bass or lead. Each step holds active, note (e.g. "D2", "A3"), tie, and accent.
Changes playback parameters for any voice: loopLength (1–16 steps), speed (1/4x–4x), dir (forward / reverse / pingpong), and transpose (semitones). All fields optional.
Silences all 16 steps of any voice in a single call — no need to manually send 16 zeros. Works with all voices: drums, synths, and pad sequences.
Returns a list of all valid parameters that can be tweaked using salban_tweak_parameter (dotted keypaths), plus all allowed targets for LFO modulations.
Loads a Base64-encoded audio file (WAV, MP3, etc.) directly into the central Phrase Sampler of the Monolith Engine.
Writes a 16-step sequence for the Phrase Sampler. Each step carries active, pitch (semitones), reverse, tie (sustain), and vol.
Fetches the current state of the Song Preset Sequencer, returning information about active pads, names of captured presets, repeat counts, active pad index, and auto-chain settings.
Assigns or captures a preset snapshot onto a specific pad (0–7). Allows setting custom names, repeat counts (1-99), or uploading full preset states directly.
Clears the preset snapshot and resets name/repeat counts of a specific pad (0–7) in the Song Preset Sequencer.
Updates global parameters of the Song Preset Sequencer, such as toggling Auto-Chain mode and setting the play direction (forward, reverse, ping-pong, random).
Starts playback of a specific pad immediately, or queues it to trigger at the next loop boundary if the sequencer is already running.
Returns the full state of all 15 Piano Roll clips across 3 tracks × 5 scenes. ClipIndex encoding: Morph32 = 0–4, Bassline = 5–9, Lead = 10–14. Each clip reports its notes, bar length, isEmpty flag, and scene assignment.
Writes or replaces all piano-roll notes in a clip. Each note accepts a pitch (MIDI number 0–127 or note name like C4, F#3, Bb2), a startBeat, a durationBeats, and a velocity. Can also set the clip length in bars and a display name.
Deletes notes from a clip using precise filters: remove by exact pitch, or by a beat range (startBeatMin / startBeatMax). Omit all filters to clear the entire clip.
Snaps note start times in a clip to the nearest musical grid — from 64th notes to quarter notes. An optional strength parameter (0.0–1.0) allows soft quantization: blend between free-time and fully snapped timing for a human feel.
Enables intelligent pitch-tracking on a drum voice (kick, snare, or hat) so it follows the note sequence of another track in real-time. Target options: off | bass | lead | poly. Each voice uses its own frequency folding formula:
Snare → 10th overtone folded into 2000–5000 Hz; Kick → 30–75 Hz; Hat → 6000–11000 Hz.
Returns the complete state of the Morph32 polyphonic synthesizer: both oscillators, the main resonant filter, the stereo dual-filter matrix, amplitude and filter ADSR envelopes, voice configuration, the polyphonic step sequencer, and all LFO assignments targeting the poly voice.
Configures any combination of Morph32 parameters in a single call. Full control over:
oscType1 / oscType2 (sawtooth, square, triangle, sine, noise, wavetable), oscMix, footage (8/16/32 ft), ringMod,
main filter (cutoff, resonance, envMod), stereo filter (stereoMode, stereoCutoff, stereoSpacing),
amp & filter ADSR, detune, portamento, maxVoices, distributionMode (chord / unison), and mixer sends.
Sets the polyphonic step-sequencer pattern for the Morph32. Each of the 16 steps can hold an entire chord — an array of note names (e.g. ["C3", "Eb3", "G3"]) or MIDI numbers — plus optional tie and accent flags per step.
Starts or stops the main sequencer transport. Pass playing: true to begin playback or playing: false to stop — synchronising all sequencers, the Clip Launcher, and the Song Mode to the same clock.
Queries the browser for the current MIDI setup. Returns lists of all active, connected MIDI inputs and outputs, individual channel routings (channels 1-16), global Omni routing targets, and default CC layout mappings.
Configures global MIDI Omni routing or maps individual MIDI channels (1-16) to specific Monolith voices (off, lead, bass, sampler, poly) in real-time.
Lects the text contents of the website HTML or markdown files (e.g. index.html, mcp-jam.html, midi-jam.html) to answer user questions about the project, look up parameters, or explain setup instructions.
You don't need to be a developer to jam with an AI on the Monolith Engine. You just need an AI assistant that can use tools (like **Claude Desktop**) and 5 minutes. Enjoy an interactive, AI-guided installation process that automates the command execution for you.
Download the MCP Server package from this page (button above): salban-mcp-server.zip.
Unzip it into any folder you'll remember — e.g. your Desktop or Downloads folder.
Copy the ready-made setup prompt block above and paste it directly into your tool-enabled AI assistant (like Claude Desktop).
From here, your assistant becomes your setup technician. It will check your system, install missing software, build/start the Docker container, and edit the Claude configuration file for you.
Once your AI confirms the server is running, open the Synth Console, click Jam with SALBAN MCP, click Allow on the browser permission popup, and enter the token (only if you have enabled the optional Token Pro Mode).
localhost) — nothing is sent to salban.de or anywhere else on the internet.Docker is the safest and cleanest way to run the bridge on your computer. It encapsulates the Node.js server dependencies so your host system remains completely clean.
salban-mcp-server.zip package to a local folder.💡 App Integration: To register this Docker container in Claude Desktop or OpenAI Codex, switch to the 3. Claude & Cursor or 4. OpenAI Codex tabs above.
If you don't use Docker, you can run the server directly on Node.js. It requires Node v18+ and TypeScript.
salban-mcp-server.zip package.💡 App Integration: To register this Node.js instance in Claude Desktop or OpenAI Codex, switch to the 3. Claude & Cursor or 4. OpenAI Codex tabs above.
To register SALBAN MCP, open the configuration file for Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAdd this block to run the MCP server via a local Docker container:
{
"mcpServers": {
"salban-monolith": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-p",
"8080:8080",
"salban-mcp-server:latest"
]
}
}
}
If you want to activate the optional Token Pro Mode, add the environment variable argument (-e):
{
"mcpServers": {
"salban-monolith": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-p",
"8080:8080",
"-e",
"SALBAN_MCP_TOKEN=your-secret-token",
"salban-mcp-server:latest"
]
}
}
}
Add this block to run the MCP server directly on your host machine via Node.js:
{
"mcpServers": {
"salban-monolith": {
"command": "node",
"args": [
"/absolute/path/to/salban-mcp-server/build/index.js"
]
}
}
}
With Token Pro Mode:
{
"mcpServers": {
"salban-monolith": {
"command": "node",
"args": [
"/absolute/path/to/salban-mcp-server/build/index.js"
],
"env": {
"SALBAN_MCP_TOKEN": "your-secret-token"
}
}
}
}
"C:\\Users\\Name\\salban-mcp-server\\build\\index.js").mcpServers section already contains other servers (e.g., blender, desktop-commander, unityMCP), append this new block as an additional entry separated by a comma. Do not overwrite the entire file.Cmd+Q on macOS or select 'Quit' from the system tray/taskbar on Windows) and restart it. Simply closing the window will not reload the configuration.npm run build must have been executed in the salban-mcp-server directory first, so that the build/index.js file exists (if the repository only ships with src/index.ts).OpenAI Codex Desktop App supports local Model Context Protocol (MCP) servers using standard input/output (stdio) communication. You do not need to install it from a library or marketplace; simply enter the configuration details directly into the Codex integration form.
Fill out the configuration form in Codex as follows:
salban-monolithSTDIO (selected by default)dockerArguments: (Add each argument on a separate line by clicking "Add Argument"):
run -i --rm -p 8080:8080 salban-mcp-server:latest
SALBAN_MCP_TOKEN
your-secret-token
If running Node.js directly on your machine, configure the Codex form as follows:
salban-monolithSTDIOnode/absolute/path/to/salban-mcp-server/build/index.js
SALBAN_MCP_TOKEN
your-secret-token
salban-mcp-server directory. This is useful if the server needs to read/write files (like logs) relative to its runtime folder, but it can also be left empty.💾 Save and Launch: After clicking "Save", Codex will start the local MCP server as a background subprocess and automatically make its tools available in your conversations.
Private Network Access (PNA): Because the Groovebox is loaded securely over HTTPS on salban.de and the WebSocket Server is hosted on localhost, your browser will trigger a security prompt:
"Access other apps and services on this device".
This popup is completely standard for local developmental connections. Select "Allow" (Zulassen) to grant permission for the web player to talk to the local MCP server.
Because the SAL BAN Monolith Engine runs entirely inside your browser, connecting local AI tools requires maximum security. We built our MCP bridge with a strictly local, hardened architecture so you can jam with absolute peace of mind.
All communication between your AI (Claude/Cursor) and salban.de occurs strictly on your local computer (localhost:8080). No data is sent over the internet or public networks.
The local Docker container only accepts connections initiated from https://salban.de. Any malicious background tabs or unauthorized sites are blocked instantly with a 403 Forbidden response.
By default, the bridge connects automatically via strict Origin Validation.
For maximum security (e.g. against unauthorized local processes on your machine), you can activate the Token Pro Mode
by setting the environment variable SALBAN_MCP_TOKEN in your Docker or IDE configuration.
Only when this variable is set will the website prompt you once to enter the token.
The server runs in an unprivileged sandbox (USER node) with read-only compiled assets. It cannot access your host computer's files or system directories.
Yes, absolutely. Docker containers run in a highly isolated, lightweight sandbox environment. Our server runs as an unprivileged user (node) rather than root. It has zero access to your files, folders, or system-level configurations.
This is a security feature called Private Network Access (PNA). Browsers protect you by confirming if a public website (https://salban.de) is allowed to connect to a local port (localhost:8080). Since you are connecting to your own, secure local container, clicking "Allow" is completely safe and required to enable the bridge.
Never. All synthesis computations, parameter changes, and custom WAV injections happen strictly within your local machine's RAM and Web Audio thread. The public SaaS layer merely acts as a visual interface. Your privacy is fully guaranteed under DSGVO (GDPR) and EU AI Act regulations.
The token acts as an exclusive digital key for maximum security. While the server defaults to a zero-friction mode secured by strict Origin Validation, you can activate the Token Pro Mode by setting the SALBAN_MCP_TOKEN environment variable. This prevents other unprivileged software running on your computer from attempting to connect to your local synthesizer engine.
The "Add Custom Connector" dialog (accessible via Connectors → Add) is built for remote MCP servers — services reachable over the public internet via a URL, authenticated with OAuth. Connectors added this way show up with a "Web" label.
SALBAN MCP is a local MCP server: it runs entirely on your own machine via Docker or Node.js, communicating with Claude Desktop over stdio — no internet connection involved, which is exactly what keeps your session private.
Local servers like this aren't added through the Connector dialog. Instead, they're registered by editing Claude Desktop's claude_desktop_config.json configuration file directly (see Step 4 of the setup guide above). Once added and Claude Desktop is restarted, SALBAN MCP will appear in your Connectors list automatically, tagged "Desktop" / "Local Dev" — ready to enable per conversation, just like any other connector.
"Create a driving acid techno beat in G minor at 135 BPM. Set loops, program kicks on 1/5/9/13, hats on offbeats, and write a rhythmic acid baseline using the bass sequencer."
"Slowly sweep the lead synthesizer cutoff frequency from 100 up to 220 over the course of 30 seconds. Gradually increase fuzz distortion drive and pan the lead channel across the stereo field."
"Assign LFO 1 to modulate the filter cutoff with a Sine waveform at a 4-bar rate, set LFO 2 to modulate lead decay with a Triangle waveform, and activate both."
"Synthesize a punchy 808 kick and inject it into Pad 0, a white noise hi-hat into Pad 1, and a metallic sine click into Pad 2. Then program Pad 0 on steps 1 and 9, Pad 1 on every even step, and Pad 2 on step 5 and 13."
"Clear the kick and snare sequences completely, then reduce the bass loop length to 4 steps and flip it into reverse playback. Hold this tension for a 4-bar breakdown. Then restore everything at once."
"Read the current bass sequence, then rewrite it as a hypnotic 16-step acid pattern in D minor. Use slides (tie=true), accents on off-beats, and include pitch jumps to A2 and G2. Send it live."
"Over 8 steps: first double the hi-hat density (every step active), then set kick speed to 2x and transpose the lead up 7 semitones. After 8 more steps, restore all voices to original settings for a full drop impact."
"Inject a sine click sample into Pad 3. Then program a 16-step melodic sequence on it using pitch offsets — write a recognisable minor pentatonic phrase using semitone values 0, 3, 5, 7, and 10. Set loop length to 8."
"Read the current snare sequence. Now rewrite it as a funky ghost-note groove: accents on steps 5 and 13, ghost hits (value 3) on steps 3, 7, 11, and 15, everything else silent. Set snare loop length to 16."
"Write a 16-step lead melody in A minor that complements the current bass sequence — inspect the bass first, then compose the lead so the two voices trade notes rhythmically. Enable reverb on the lead and set its loop to 8 steps."
"Set Pad 0 loop length to 3 steps, Pad 1 to 5 steps, and Pad 2 to 7 steps. Program each with a simple repeating hit pattern. Let them run simultaneously to create an evolving polyrhythmic texture."
"Load a 6-second vocal sample into the phrase sampler. Set chop to 16, program a sequence triggering pitch offsets and reverse playback on steps 1, 5, 9, and 13, and automate LFO 5 to modulate the stutter intensity."
"Load a long synth pad loop into the phrase sampler, turn on the Ambient Gate with a 1/8 rate, and set the Gate Width to 50%. Tweak the ambient mix to 50% and decay to 70% to create a spatial, pulsing groove."
"Capture my current groove onto Pad 1 and name it 'Intro'. Make some changes to the synth cutoff and drum pattern, capture that on Pad 2 and name it 'Main Theme'. Repeat the Main Theme for 4 loops, enable Auto-Chain in Forward direction, and start playing Pad 1."
"Inspect the Song Sequencer. Capture our current live state on Pad 3 and name it 'Build-up'. Adjust Pad 3 to repeat 2 times, then configure Pad 4 to capture a variation with higher lead transpose and fuzz drive. Enable Auto-Chain in Ping-Pong direction."
"Read the current Clip Launcher state. Then write a 2-bar chord progression in C minor onto Clip 0 (Morph32, Scene 1): Cm – Ab – Eb – Bb. Use full 4-note voicings, quarter-note duration per chord, starting at beat 0, 2, 4, 6. Quantize the clip to a 1/4 grid at 100% strength afterwards."
"Write a 1-bar rolling 16th-note techno bassline in F minor onto the Bassline track, Scene 1 (clipIndex 5). Use notes F2, F2, Ab2, F2, Eb2, F2, Db2, F2 — repeating twice. Set the clip length to 1 bar and apply a 1/16 grid quantize at 80% strength for a slight groove feel."
"Read Clip 10 (Lead Synth, Scene 1). Delete all notes between beat 4 and beat 8. Then write a new 4-note descending fill — A4, G4, F4, E4 — at beats 4, 5, 6, 7 with eighth-note durations. That's the B-phrase of the melody."
"Enable Drum Auto-Tune on the snare and set it to track the bassline sequence. Then program a bass sequence in G minor: G2, Bb2, D3, F3, Eb3, D3, C3, Bb2 — 8 active steps with accents on 1 and 5. The snare should now ring at the 10th harmonic of each bass note in the 2000–5000 Hz range."
"Enable Drum Auto-Tune on the kick drum, tracking the lead synth sequence. Program the lead to play the notes E2, G2, A2, B2 across 4 active steps. The kick should now hit at the fundamental tonal frequency of each lead note, folded into the 30–75 Hz sub range — creating a tonal, musical kick drum."
"Read the current Morph32 state. Then redesign it as a lush ambient pad: set OSC 1 to sawtooth, OSC 2 to triangle with 0.3 mix, enable stereo filter in Spread mode with 400 Hz stereoCutoff and 0.6 stereoSpacing. Set amp attack to 1.2s, release to 3s, filter cutoff to 900 Hz, resonance 0.2. Max 8 voices in chord mode."
"Configure the Morph32 as an aggressive unison lead: OSC 1 = sawtooth, OSC 2 = square, oscMix 0.4. Enable ring modulation. Set distribution mode to unison, 4 unison voices, detune 18 cents. Filter cutoff 2200 Hz, resonance 0.65, envMod 0.8, filter attack 0.01s, decay 0.4s, sustain 0.5. Add fuzz send 0.4 in the mixer."
"Program a 4-step chord sequence on the Morph32 step sequencer: Step 1 = Am chord [A3, C4, E4], Step 2 = F chord [F3, A3, C4], Step 3 = C chord [C4, E4, G4], Step 4 = G chord [G3, B3, D4]. All steps active, no ties. Play it at the current tempo."
"Build a complete atmospheric techno scene: 1) Write a 2-bar Morph32 Piano Roll melody in D minor (clipIndex 0). 2) Write a driving bassline on the Bassline track Scene 1 (clipIndex 5). 3) Set the Morph32 to a wide stereo pad (OSC sawtooth + spread stereo filter). 4) Enable snare Auto-Tune tracking the bassline. 5) Configure a 4-step Morph32 chord sequence. 6) Start transport."
"Get the current MIDI configuration. Check if there are active MIDI input and output devices connected, and tell me the current channel mappings and default Control Change (CC) mapping layout."
"Route MIDI channel 1 to the lead synth, MIDI channel 2 to the bassline synth, and configure Omni routing to redirect all other incoming channels to the Morph32 polyphonic synth voice."
"Read the text content of 'mcp-jam.html' or 'index.html' to analyze the connection flow of the local WebSocket bridge, and explain how security token verification is implemented."