Appearance
Poly Modules
A Poly Module is a polyphonic version of a Module. You build a single voice once: oscillator, filter, envelope, whatever you want. MNodes then runs many copies of that voice in parallel so several notes can play at the same time.

Why a Poly Module?
A normal Module plays one note at a time. If you press a chord, only one note sounds. To play chords you need polyphony: several copies of the voice, each handling one note.
Poly Module solves that without you having to clone anything. You design one voice. MNodes does the rest.
Polyphony in plain words
Picture a synth with eight little machines lined up inside it. Each machine can play a single note. When you press C, the first free machine grabs C and plays. Press E on top, the next machine grabs E. Both notes sound together. Release C, that machine goes quiet. Release E, the second machine goes quiet too.
A Poly Module is exactly that. Each "machine" is a copy of the voice graph you built. You decide how many machines (voices) to keep ready.
Creating a Poly Module
- Open the Node Browser and find Poly Module under the Subgraph category.
- Drag it onto the graph (or double-click).
- The new Poly Module already has the basics wired up inside: a Sub In (MIDI) on the left and two Sub Out (Audio) on the right (one for L, one for R).
- Double-click the Poly Module to enter it and start building your voice.

TIP
Don't want to build the voice yourself? The Lab can generate a complete playable instrument for you: set Patch Type to Instrument and Generate creates a Poly Module with a full voice inside, wired to MIDI In, an on-screen keyboard and effects. See The Lab.
Building the voice
Inside a Poly Module you build one voice. Treat it like any other patch: drop an oscillator, a filter, an envelope, wire them up, route to the audio outputs.
The most common starting point:
- Sub In (MIDI) → Midi to CV to convert incoming MIDI notes to pitch and gate signals.
- Midi to CV → oscillator frequency, plus envelope gate, plus a VCA.
- VCA out → Sub Out (Audio) L and R.

When you play a chord, every voice runs this same patch. The Midi to CV inside each voice receives only the note that voice is responsible for, so each voice plays a different pitch.
What goes inside, what goes outside
Think of a Poly Module as one voice, and remember that everything inside it gets copied for every note you play. So for any node the question is simple: is this per note, or for the whole sound?
Inside the poly go the parts that belong to a single note: the oscillators, the voice's filter, the envelopes, the distortion that shapes the tone. Whatever happens per key.
Outside the poly go the parts that belong to the whole patch: reverb, delay, chorus, EQ, master volume and feedback. Whatever is shared by every note, not owned by one.
Why it matters:
- CPU. Anything inside runs once per voice, so a reverb inside an 8-voice poly is eight reverbs doing the same job for nothing. Place it once, after the poly.
- Control. A knob inside the poly gets cloned with every voice, so what it actually controls is fuzzy. One knob outside hits all the voices at once.
- Troubleshooting. When something sounds off, keeping the voice, the effects and the mix in separate boxes lets you find it in seconds.
- Virtual wires. This one catches people out, because it looks like it works. Audio Send and Audio Receive are project-wide: a name is the same wire everywhere in the patch. Put a Send inside the voice and every voice pours into that one wire, so whatever receives it hears all of them added together instead of one, and the level climbs with the number of voices you are holding. When you want a wire that belongs to a single voice, use Audio Sub Send and Audio Sub Receive instead: they keep the name local to the patch they live in, so each voice gets its own. CV and Data have the same pair.
Rule of thumb: if it is per note, put it inside. If it is for the whole patch, put it outside.
Voices: how many copies to run
The Voices parameter in the inspector sets how many copies of your voice run in parallel. Range: 1 to 16.
- More voices = bigger chords without note stealing, but more CPU.
- Fewer voices = lighter on CPU; if you press more notes than voices, the oldest voice gets stolen for the new note.
- 1 voice = monophonic. Useful for bass, leads, and classic mono synths.

Changing the Voices count rebuilds the audio engine for the Poly Module, so you'll hear a brief moment of silence when the new voice graph takes over.
Note Priority (1-voice mode only)
When Voices = 1, a second parameter appears in the inspector: Note Priority. It controls how the single voice behaves when you hold more than one note at the same time. With more than one voice this parameter is hidden because it has no effect.

Last Only Retrigger (default)
Each new note silences the previous one. When you release the latest note, the voice goes silent even if older notes are still physically held.
Example:
- Press C, you hear C.
- Press E (still holding C), you hear E (envelope retriggers).
- Release E (still holding C), silence.
This is the simplest mono synth feel.
Stack Retrigger
Held notes are kept on a stack. The latest press is always on top and is what you hear. Release the top note and the voice falls back to the previous note in the stack and retriggers.
Example:
- Press C, you hear C.
- Press E (still holding C), you hear E (retriggers).
- Press G (still holding C and E), you hear G (retriggers).
- Release G, you hear E again (retriggers).
- Release E, you hear C again (retriggers).
- Release C, silence.
This is the classic "play-all-the-keys-at-once" mono synth behaviour you find on vintage hardware. Great for fluid bass lines and lead phrasing where you want the previous note to come back when the new one is lifted.
Pseudo nodes for per-voice signals
Inside a Poly Module you'll find four special nodes under the PolyVoice category in the Node Browser. They give you access to per-voice signals without going through Sub In (MIDI) and Midi to CV.

| Node | What it outputs |
|---|---|
| Voice Pitch | The MIDI note number assigned to this voice (e.g. 60 for middle C) |
| Voice Gate | 1 while the voice is active, 0 once released |
| Voice Velocity | The note-on velocity, normalised 0 to 1 |
| Voice Index | The position of this voice in the pool (0, 1, 2…). Useful for detuning or subtle per-voice variations |
These nodes are convenient when you want a quick voice without needing a full MIDI to CV chain. They reflect the same data the bridge uses internally to route notes.
CPU: voices that aren't playing don't cost anything
A voice that hasn't been triggered, or whose envelope has fully released, automatically goes to sleep. Sleeping voices consume zero CPU. As soon as a new note comes in, the voice wakes up and plays.
This means you can leave Voices set to 8 or even 16 without paying the cost when only two notes are sounding. Pay for what you play.
Glide / portamento
Poly Module has no glide parameter on purpose. If you want pitch glide between notes, drop a Smooth node inside the voice between your pitch source (Midi to CV's Note Hz, or Voice Pitch) and the oscillator's frequency input. You then control the slide time on the Smooth node directly, and you can even modulate it.
This approach is more flexible than a fixed Glide knob: you can pick the curve, sync it to tempo, automate it, or feed multiple smoothed pitches into different oscillators with different glide times.
What happens with more notes than voices
If you press more notes than the Voices parameter allows, the oldest currently-playing voice is stolen and reused for the new note. There is no warning, no glitch, just the oldest note giving way.
If you regularly run out of voices, raise the Voices count.
Saving your voice as a reusable Poly Module
Just like a regular Module, you can save the whole Poly Module to disk:
- Right-click the Poly Module on the graph.
- Select Save As Module….
- Fill in name, category, author, description, save.
The saved file (.mnmod) carries the inner voice graph, the Voices count and the Note Priority value. Drop it back onto another patch from the Node Browser to reuse the whole instrument.
Module Presets work the same as Modules
You can also save Module Presets (.mnmprst) for a placed Poly Module. The preset captures every parameter inside the voice (and the Poly-level Voices and Note Priority) without changing the graph topology. This lets you snapshot sounds and step through them. See the Modules guide for the full preset workflow.
Use cases
- Polyphonic synths: build your own poly synth with custom oscillators, filters, envelopes, and effects per voice.
- Mono synths and basses: set Voices to 1 and pick the Note Priority that fits the playing style.
- Polyphonic effects: feed audio in, process it per voice with an envelope follower or pitch-tracker, useful for sample-based or granular treatments.
- Layered sounds: combine multiple Poly Modules in parallel to layer timbres.
- Performance instruments: expose a few key knobs on the Module front panel and play live.
Tips
- The Poly Module's panel works exactly like a regular Module's. Add widgets to the Module Front Panel to expose only the controls you want for performance.
- Voice Index is gold for detune and width: feed it through a tiny offset into oscillator pitch and you get instant unison-like spread for free.
- Combine Voice Velocity with envelope amount or filter cutoff for natural keyboard dynamics.
- Use Voices = 1 + Stack Retrigger for vintage mono lead feel; Voices = 1 + Last Only for percussive mono basses.
- Long releases plus low Voices means voice stealing while tails are still ringing. Bump Voices if you hear cut-offs.
