System M//09 · Local signal network

m-suite: Free sound machines for your browser

Sixteen independent modules for beats, loops, harmony, drones, MIDI, grains, spectral sound, and signal analysis. Patch only what you need. Your audio stays on your machine.

m-suite instruments are free and open source. There are no accounts, subscriptions, ads, or central creative profiles.

Patch matrix

Find your instrument

Select a musical role to locate its module.

minstruments · module rack

Sixteen instruments. Separate circuits.

No bundle, login, or shared project database. Every module runs on its own.

m/04

A compact browser MIDI sound module that turns notes from a sequencer, DAW, or controller into sound.

midi insynthsound module
m/05

midip

A terminal MIDI sequencer and live groovebox for patterns, scenes, song chains, and hardware performance.

terminalmidi outhardware
m/08

mgrains

A granular instrument that blooms generated, imported, or live sound into clouds—or shatters it into rhythm.

granularlive inputtransform
m/09
BETA

MSPECTR

A spectral resynthesis instrument for capturing what sounds are made of, then morphing and playing that identity.

spectralcaptureresynthesis
m/10
BETA

mvox

A browser voice instrument for synthesizing, harmonizing, and reshaping the human voice.

voicevocoderharmony
m/12
ALPHA

mtape

A browser multitrack tape recorder and arranger for recording any tab, mic, or file, editing clips, and bouncing finished songs.

multitrackrecordarrange
m/13
ALPHA

mfx

A browser effects lab you play — a reorderable 25-pedal rack for loops, files, tab audio, mbus sources, wet sends, and reamping, performed through an XY pad.

effectspedalboardperform
m/14
BETA

mbus

A local-first audio patchbay that discovers each instrument's live output and patches it into a monitored master mix, tab-to-tab over WebRTC.

patchbayroutemonitor
m/15
ALPHA

mmaster

A corrective loudness and finishing stage for setting a loudness target, gluing the mix, true-peak limiting, and exporting the final master.

masterloudnessfinishing

Signal routes

Patch them together

Eight practical routes through the collection, with no suite account or proprietary project format.

01 Sequence browser sound from the terminalmidip → virtual MIDI → mpumpit
midipnotes + clockvirtual MIDIlocal portmpumpitbrowser audio
  1. Create a local MIDI path. On macOS enable the IAC Driver; on Windows create a loopMIDI port; on Linux create or connect an ALSA MIDI port.
  2. Route midip. Open the route editor with w, choose the virtual port for each lane, and keep the defaults: synth 1, bass 2, drums 10.
  3. Open mpumpit. Press Start Audio, select that virtual port under MIDI IN, then confirm channels 1 / 2 / 10.
  4. Press play in midip. midip owns the sequence; mpumpit supplies the synth, bass, drums, and effects.
02 Play voiced chords through another instrumentmchord → virtual MIDI → mpumpit or hardware
mchordvoiced chordsMIDI outvirtual or USBmpumpit / gearsound
  1. Build the progression. Pick a key and mode in mchord, fill the chord slots, then choose Smooth, Wide, or Bass voice leading.
  2. Choose a MIDI destination. Enable MIDI out and select either your USB instrument or a local virtual MIDI port.
  3. For mpumpit, open it in Chromium, start audio, select the same virtual port, and route mchord’s channel to the synth or bass part.
  4. Perform from mchord. Its rhythm styles and voice-leading determine the actual notes; the destination only supplies the sound.
03 Run a synchronized browser ensembleLink Bridge → mpump + mchord + mdrone + mgrains + mspectr + mkeys + mfx
Link Bridgeshared tempompumpmchordmdronemgrainsmspectrmkeysmfx
  1. Install and run mpump Link Bridge from the mpump releases page. Leave it running locally.
  2. Open the instruments in separate tabs. Use mpump for the beat, mchord for harmony, mdrone for a bed, mgrains for tempo-locked fragments, mspectr for spectral morphs, mkeys for leads, and mfx for tempo-synced effects.
  3. Enable Link in each instrument. Wait until each one reports the bridge or Link session as connected.
  4. Set the tempo once. Start mpump, then bring the other parts in. Link carries tempo and phase—not audio—so mix the tabs or route them through your system audio setup.
04 Turn one drone into two new instrumentsmdrone WAV → mgrains + mspectr
mdrone24-bit WAVmgrainscloud / shattermspectrcapture / morph
  1. Make a source in mdrone. Shape a stable scene, then use BOUNCE LOOP for a short seamless WAV or TIMED REC for a longer take.
  2. Granulate it. Drop the WAV into mgrains. Use Bloom for a continuous cloud or Shatter for tempo-synced fragments.
  3. Capture its identity. Drop the same WAV into mspectr, play it, and capture Snapshot A.
  4. Create contrast. Export a second mdrone variation, capture it as Snapshot B, then perform the spectral morph between them.
05 Record any instrument into mtapeany m-suite tab → mtape tab capture → arrange / mixdown / stems
any m-suite tabthe sourcemtapetab capturearrangemixdown + stems
  1. Play the source. Open any m-suite instrument in its own tab and get a sound going—a beat in mpump, a drone in mdrone, chords in mchord, whatever you want to keep.
  2. Capture the tab in mtape. Open mtape in a separate tab, add a Tab input, and pick the source tab (share its audio). Chromium desktop only—mtape detects unsupported browsers and disables the Tab input.
  3. Record the take. Arm the track and record; the captured audio lands as an editable, non-destructive clip.
  4. Arrange and bounce. Trim and arrange clips, then mix down to WAV or export stems.
06 Inspect any instrument with mscopeany m-suite tab → mscope tab capture → waveform / spectrum / LUFS / diagnostics
any m-suite tabthe signalmscopetab capturereadwaveform / spectrum / LUFS
  1. Open the source. Run any m-suite instrument in its own tab.
  2. Capture it in mscope. Open mscope, choose Capture tab audio, and pick the source tab with Share tab audio ticked. No changes to the source app are needed. Chromium desktop only.
  3. Read the signal. Watch waveform, spectrum, loudness (LUFS), stereo image, and signal-health diagnostics update live.
  4. Mind the caveat. Browsers may resample captured audio, so readings are measured at capture rather than lab-calibrated.
07 Chain instruments through effectsmchord → mfx (tab-captures mchord) → mtape (tab-captures mfx)
mchordsourcemfxtab-captures mchordmtapetab-captures mfx
  1. Play the source. Open mchord in its own tab and build a progression.
  2. Process it in mfx. Open mfx, add a Tab input, and capture the mchord tab. Reorder the 12-pedal chain and perform with the XY pad; mfx now outputs the wet signal.
  3. Record the result in mtape. Open mtape, add a Tab input, and capture the mfx tab. Because each stage captures the previous tab, the effected chords record straight into mtape.
  4. Arrange and bounce. Edit the clip, then mix down or export stems. Chromium desktop only—chained tab capture needs getDisplayMedia at each stage.
08 Mix the whole ensemble in one patchbayany m-suite tabs → mbus (WebRTC) → monitored master mix
m-suite tabseach publishes a sourcembusWebRTC, peer-to-peermaster mixfaders + meters
  1. Run the mpump Link Bridge. mbus discovers sources through the same local bridge as Link—install and run it from the mpump releases page, then leave it running. Audio flows tab-to-tab over WebRTC and never touches the bridge; the bridge only relays the handshake.
  2. Open your instruments in separate tabs. Each instrument that supports it publishes its output as a named source—for example a beat in mpump, a bed in mdrone, chords in mchord, a voice in mvox, leads in mkeys, or loops in mloop.
  3. Open mbus. Every published source shows up as its own channel the instant it goes live, with a per-channel dB fader and level meter. Enable the ones you want in the mix.
  4. Mix to the master. All enabled channels sum into a monitored master bus with its own fader, mute, and meter; solo a channel to isolate it. mbus remembers the patch by source name, so reloading an instrument re-wires itself with no re-patching.