Appearance
Utilities
The Utilities category gathers the small, everyday building blocks you use in almost every patch. Here you will find the audio in and out points that connect MNodes to your sound card or your music software (your DAW), plus simple math helpers for sound (add, multiply, volume and value clamping), tools for muting, smoothing and delaying a signal, and the Recorder, the VST3 Plugin Host, the project Transport, and canvas helpers like Comment and Colour. On their own none of these makes a sound effect; think of them as the glue you keep reaching for to route, balance, mix and tidy up everything else.
Audio In
Brings sound from your sound card or your music software into the patch, for example a microphone, a guitar input, or a track in your DAW. You choose how many channels to bring in (1 to 8) with the Channels slider in the inspector, and output pin N picks up input channel N from the host.

| Parameter | Range | Default | Description |
|---|---|---|---|
| Channels | 1 - 8 | 2 | Number of output pins. Each pin maps to the matching host input channel (inspector only). |
Inputs: none (this is a source node). Outputs: In 1, In 2, ... (one audio pin per channel). Channels the host or device does not provide stay silent.
Audio Out
Sends the finished sound out to your sound card or your music software, so you can actually hear it or record it. You choose how many channels to send (1 to 8) with the Channels slider in the inspector, and input pin N feeds output channel N of the host.

| Parameter | Range | Default | Description |
|---|---|---|---|
| Channels | 1 - 8 | 2 | Number of input pins. Each pin maps to the matching host output channel (inspector only). |
Inputs: Out 1, Out 2, ... (one audio pin per channel). Multiple connections to a pin are summed. Outputs: none (this is a sink node). If no Audio Out is connected, the patch is silent.
Delay Line Mono
A bare-bones mono echo: it repeats the incoming sound a moment later. It has no feedback (it will not repeat over and over by itself) and no dry/wet mix, so you only hear the delayed copy. It is meant as a clean building block for echo and feedback setups where you wire the repeats back in yourself.

| Parameter | Range | Default | Description |
|---|---|---|---|
| Mode | Free / Hz / Sync | Free | Picks how the delay length is set. |
| Time | 0.01 - 5000 ms | 500 ms | Delay length in milliseconds (used in Free mode). |
| Frequency | 0.2 - 20000 Hz | 2 Hz | Delay length = 1 / Frequency (used in Hz mode). Useful for Karplus-Strong style pitched feedback. |
| Subdiv | musical subdivisions (1/64 to 4/1) | 1/4 | Note value for the delay length (used in Sync mode). |
| BPM | 1 - 999 | 120 | Tempo that drives the Sync subdivision. |
| Clear | button | - | Empties the line, so nothing that went in before is still on its way out. A short fade comes first, so clearing a line that is sounding does not click. |
Inputs: In (audio), Mode (Data), Time (Data, CV-capable), Freq (Data, CV-capable), Subdiv (Data), BPM (Data, CV-capable), Clear (Data, CV-capable: any message fires it, and a CV stream fires it on every rising edge). Outputs: Out (delayed audio, full wet).
Sig Pass
Lets a mono signal go straight through without changing it. Handy for keeping your cables neat and your patch organised.

Inputs: In (audio). Outputs: Out (audio, identical to the input).
Sig Invert
Turns a mono signal upside down, so the output is the mirror image of the input (in audio terms, a 180 degree phase flip).

Inputs: In (audio). Outputs: Out (audio, polarity inverted).
Sig DC Offset
Adds a fixed amount to a mono signal, nudging it up or down. Useful for re-centring a signal or for building control values that drive other nodes.

| Parameter | Range | Default | Description |
|---|---|---|---|
| Offset | -1.0 - 1.0 | 0.0 | Constant value added to every sample. |
Inputs: In (audio), Offset (Data, sets the offset value). Outputs: Out (audio).
Volume
Turns a mono signal up or down by a set amount, with a short smoothing time so the change does not click. The amount here is a simple multiplier, not decibels: 1.0 leaves the level unchanged, below 1.0 is quieter, above 1.0 is louder.
(Called Gain before 1.0.1. Searching the Add Node panel for "gain" still finds it.)

| Parameter | Range | Default | Description |
|---|---|---|---|
| Gain | 0.0 - 4.0 | 1.0 | Linear gain factor (1.0 = unity). |
| Smooth | 0 - 2000 ms | 15 ms | Time over which gain changes ramp, to avoid zipper noise. |
Inputs: In (audio), Gain (Data, CV-capable), Smooth (Data, CV-capable). Outputs: Out (audio).
Volume Stereo
The same control as Volume, but for a stereo (left and right) signal. It turns both channels up or down by the same multiplier, with a short smoothing time so the change does not click.

| Parameter | Range | Default | Description |
|---|---|---|---|
| Gain | 0.0 - 4.0 | 1.0 | Linear gain factor applied to both channels (1.0 = unity). |
| Smooth | 0 - 2000 ms | 15 ms | Time over which gain changes ramp, to avoid zipper noise. |
Inputs: In L (audio), In R (audio), Gain (Data, CV-capable), Smooth (Data, CV-capable). Outputs: Out L (audio), Out R (audio).
Sig Gate
Acts like a switch for sound: it lets audio through while the gate is open and fades it down to silence while the gate is closed. The fade is smoothed so opening and closing does not click.

| Parameter | Range | Default | Description |
|---|---|---|---|
| Gate | on / off | on | When on, audio passes; when off, it fades to silence. |
| Smooth | 0 - 2000 ms | 5 ms | Fade time for opening and closing the gate. |
Inputs: In (audio), Gate (Data, values above 0 open the gate), Smooth (Data). Outputs: Out (audio).
Sig Add
Combines two mono signals into one by adding them together. The output is simply A plus B.

Inputs: A (audio), B (audio). Outputs: Out (audio, A + B).
Sig Subtract
Takes one mono signal away from another, so the output is A minus B. It completes the basic maths set alongside Sig Add and Sig Multiply. Feed it two levels that have been through Sig To dB and the output is their difference in decibels directly, ready to drive a gain for level matching, a ducker, or a dynamic EQ style patch.

Inputs: A (audio), B (audio, subtracted from A). Outputs: Out (audio, A - B).
Sig Multiply
Multiplies two mono signals together, so the output is A times B. This is handy for shaping one sound with another, for example making a tremolo effect or using one signal to switch another on and off.

Inputs: A (audio), B (audio). Outputs: Out (audio, A x B).
Sig Clamp
Keeps a mono signal inside set limits, so its values can never drop below Min or rise above Max.

| Parameter | Range | Default | Description |
|---|---|---|---|
| Min | -2.0 - 2.0 | -1.0 | Lower bound for each sample. |
| Max | -2.0 - 2.0 | 1.0 | Upper bound for each sample. |
Inputs: In (audio), Min (Data, CV-capable), Max (Data, CV-capable). Outputs: Out (audio).
Sig Abs
Makes every part of a mono signal positive, flipping any negative values to their positive equivalent. In audio terms this is a full-wave rectifier.

Inputs: In (audio). Outputs: Out (audio, absolute value of the input).
Sig To dB
Converts a signal's linear level into decibels: a level of 1.0 reads as 0 dB, 0.5 as about -6 dB, and silence bottoms out at -120 dB. Feed it a level signal, such as the output of an Envelope Follower or Sig To RMS, to read it in decibels; run two readings through Sig Subtract and you get the level difference between two signals, ready for gain matching, ducking, or dynamic EQ style patches. Sig From dB converts the other way.

Inputs: In (audio, a linear level). Outputs: Out (audio, the level in decibels).
Sig From dB
Converts decibels back into a plain linear level: 0 dB becomes 1.0, -6 dB about 0.5, and anything at or below -120 dB becomes 0. It is the opposite of Sig To dB: do your level maths in decibels (subtract, offset, scale), then convert back to a gain value you can feed straight into a Gain node's Gain input.

Inputs: In (audio, a level in decibels). Outputs: Out (audio, the linear level).
Sig To RMS
Measures how loud a mono signal is and outputs that loudness as a signal of its own. RMS follows the signal's energy, which matches how loud it actually sounds, rather than jumping with every short peak the way an envelope follower does. Pair it with Sig To dB to read the level in decibels, or send two RMS levels through Sig To dB and Sig Subtract to get a dB difference that can drive an auto-gain. A longer Window gives a smoother but slower reading.

| Parameter | Range | Default | Description |
|---|---|---|---|
| Window | 1 - 2000 ms | 100 ms | Averaging time for the loudness reading. Longer is smoother and slower. |
Inputs: In (audio), Window (Data, CV-capable). Outputs: Out (audio, the RMS level as a linear value).
Sig Mix 2
Blends a Dry input and a Wet input, fading smoothly between the two. At Mix 0 you hear only Dry, at Mix 1 only Wet, and values in between give you a mix of both.

| Parameter | Range | Default | Description |
|---|---|---|---|
| Mix | 0.0 - 1.0 | 0.5 | Crossfade amount. 0 = Dry only, 1 = Wet only. |
Inputs: Dry (audio), Wet (audio), Mix (Data, CV-capable). Outputs: Out (audio, the blend of Dry and Wet).
Crossfade
Blends two mono inputs like a DJ crossfader. Position runs from 0 (only In A) to 1 (only In B), and the node body draws both gain curves with a live position marker; you can drag right on the body to move the fader. Law picks the gain curve: Equal Power and Constant Power keep the overall power steady (each side sits at -3 dB in the middle), the right choice for two unrelated sources, while Linear keeps the summed gain steady (-6 dB in the middle), which suits two takes of the same part. Contour reshapes the fader travel: above 0.5 each side holds longer and swaps quickly through the centre, below 0.5 a small nudge already swings the mix, like the fast cut of a scratch fader.

| Parameter | Range | Default | Description |
|---|---|---|---|
| Position | 0.0 - 1.0 | 0.5 | Fader position. 0 = full A, 1 = full B. |
| Law | Equal Power / Constant Power / Linear | Equal Power | Gain curve used for the blend. |
| Contour | 0.0 - 1.0 | 0.5 | Reshapes the travel. 0.5 is neutral; higher sharpens the centre swap, lower widens the edges. |
Inputs: In A (audio), In B (audio), Position (Data, CV-capable), Law (Data, CV-capable), Contour (Data, CV-capable), Appearance (Data, accepts styling text to restyle the display). Outputs: Out (audio, the crossfaded mix of A and B), Position Out (Data, reports the current position whenever it changes, for example while dragging the body).
Crossfade Stereo
The same crossfader for two stereo pairs: In A L / In A R and In B L / In B R blend into Out L and Out R, with one shared Position, Law and Contour for both channels.
Morph
A crossfader with more than two inputs. Set Inputs to anywhere from 2 to 16, and Position scans across them: 0 plays the first input, 1 plays the last, and in between the node blends the two neighbouring inputs using the selected Law, so only two are ever audible at once and the level stays even across the whole sweep. Law and Contour work exactly as in Crossfade and shape each handoff. Drive Position from a fader, an LFO or a ramp to sweep or morph through your sound sources, and drag the body itself to move the scan by hand: it draws every input's gain curve and the live position.

| Parameter | Range | Default | Description |
|---|---|---|---|
| Position | 0.0 - 1.0 | 0.0 | Scan position. 0 = first input, 1 = last input. |
| Law | Equal Power / Constant Power / Linear | Equal Power | Gain curve used for each transition. |
| Contour | 0.0 - 1.0 | 0.5 | Reshapes each handoff. 0.5 is neutral; higher holds each sound longer then swaps quickly, lower makes a small move swing the mix. |
| Inputs | 2 - 16 | 4 | Number of audio input pins. |
Inputs: In 0, In 1, ... (one audio pin per input), Position (Data, CV-capable), Law (Data, CV-capable), Contour (Data, CV-capable), Inputs (Data), Appearance (Data, accepts styling text to restyle the display). Outputs: Out (audio, the blend of the two inputs nearest the current position), Position Out (Data, reports the current position whenever it changes).
Morph Stereo
The same morphing crossfader for stereo sources: each input becomes a left/right pair (In 0 L / In 0 R and so on) and the result comes out on Out L and Out R, with one shared Position, Law and Contour.
Smooth
Eases a value gradually toward a new setting instead of letting it jump. Use it on pitch to get a sliding glide between notes (portamento), on knob moves to stop clicks, or on triggers to fade gates in and out.

| Parameter | Range | Default | Description |
|---|---|---|---|
| Time | 0 - 10000 ms | 50 ms | Smoothing time. 0 is instant; larger values ramp more slowly. |
Inputs: Target (Data, the destination value to head toward), Set Now (Data, jumps straight to the received value), Time (Data, CV-capable).
Outputs:
| Output | Type | Description |
|---|---|---|
| Out | Audio | The smoothed value at audio rate. |
| Value | Data | The current value, sent roughly 30 times a second while it is still moving. |
| Is Smoothing | Data | 1.0 while ramping, 0.0 once it has settled at the target. |
Recorder
Records any point in your patch straight to a WAV file, with no fixed time limit, so you can save individual parts (stems), capture a jam, or sample your own sounds. The audio keeps flowing through unchanged whether the Recorder is sitting idle or recording, and you can play your last take back out through the same outputs.

| Parameter | Range | Default | Description |
|---|---|---|---|
| Folder | folder path | (your Music folder) | Where recordings are written. Use Choose Folder to pick it. |
| Bit Depth | 16 bit / 24 bit / 32 bit float | 24 bit | Resolution of the WAV file (inspector only). |
| Channels | Stereo / Mono | Stereo | Stereo writes a 2-channel file; Mono sums L+R (inspector only). |
| Position | 0.0 - 1.0 | 0.0 | Playhead position for playback and seeking. |
Each take reuses one temporary file per node, so a new recording replaces the previous one; use Export to save your last take somewhere permanent.
Inputs: In L (audio), In R (audio), plus trigger pins Record, Stop, Play, Rewind, Export (Data, any event or non-zero value triggers them) and Position (Data, a 0..1 value seeks the playhead). Outputs: Out L (audio), Out R (audio). Pass-through while idle or recording; the recorded file while playing.
Plugin Host
Loads and runs a third-party VST3 plugin of any kind: an instrument, an effect, or a MIDI effect. The plugin runs on its own, separate from MNodes, so if it crashes or its graphics get heavy it will not bring MNodes down with it. If the plugin adds latency (a linear-phase EQ, a lookahead limiter), MNodes measures it and reports it to your DAW so everything stays in time. You can check the patch's total latency in the Graph Stats overlay.

The pins change to match whatever plugin you load. An effect shows audio in and out, an instrument shows MIDI in and audio out, and a MIDI effect shows only MIDI pins. From the inspector you can bring individual plugin controls out as pins: each one you expose adds an input pin (which accepts either a single Data value or a moving CV signal) and a matching output pin that reports that control's current value, so the rest of your patch and any widgets stay in step with it.
Inputs: In / In L / In R (audio) and MIDI, depending on the plugin, plus one input pin per exposed parameter. Outputs: Out / Out L / Out R (audio) and MIDI, depending on the plugin, plus one output pin per exposed parameter.
Comment
A plain text note you stick on the canvas. It has no pins and does not touch your sound or your data; use it to label sections, explain how a patch works, or leave yourself reminders.

| Parameter | Range | Default | Description |
|---|---|---|---|
| Text | text | Label | The text shown in the comment (inspector only). |
| Font Size | 8 - 72 px | 16 px | Text size (inspector only). |
| Font Weight | Light / Regular / Medium / SemiBold / Bold | SemiBold | Weight of the text (inspector only). |
| Alignment | 9 positions | Centre | Where the text sits in the box (inspector only). |
| Text Colour | colour | white | Colour of the text (inspector only). |
| Bg Colour | colour | dark grey | Background colour of the box (inspector only). |
| Border | on / off | off | Draws a border around the box (inspector only). |
| Border Stroke | 0.5 - 8 px | 1 px | Border thickness (inspector only). |
| Border Colour | colour | white | Colour of the border (inspector only). |
Inputs: none. Outputs: none.
Frame
A resizable background box for grouping and labelling a region of the graph. It always sits behind the nodes and behind the cables, has no pins, and never touches your sound or your data; it is purely visual organisation. The bar at the top shows its name: double-click the bar to rename it. With Move Contents on, dragging the frame by its bar also moves every node sitting fully inside it, so whole sections travel together. The body itself is click-through, so inside the frame you can still right-click to add nodes and drag to select as usual.

| Parameter | Range | Default | Description |
|---|---|---|---|
| Title Font | font list | default font | Typeface for the title (inspector only). |
| Import Font | .ttf / .otf file | - | Browse or drag and drop a font file to use for titles (inspector only). |
| Title Size | 10 - 48 px | 16 px | Size of the title text (inspector only). |
| Title Colour | colour | theme accent | Colour of the title text (inspector only). |
| Bg Colour | colour | theme accent, very transparent | Fill colour of the box (inspector only). |
| Border Colour | colour | theme accent | Colour of the border (inspector only). |
| Border | on / off | on | Draws a border around the box (inspector only). |
| Border Stroke | 0.5 - 8 px | 2 px | Border thickness (inspector only). |
| Move Contents | on / off | on | When on, dragging the frame also moves every node fully inside it (inspector only). |
Inputs: none. Outputs: none.
Colour
A colour picker and source in one. It gives you a Hex box and R, G, B, A sliders that always stay in agreement, so editing one updates the others. Any value sent in updates the stored colour and resends every output, which lets you wire it into widgets and appearance controls. A bare trigger (a Bang) into any one input re-fires just that channel's current value on its matching output, so the node can hand out its colour, or a single component, on demand.

| Parameter | Range | Default | Description |
|---|---|---|---|
| Hex | #RRGGBB or #AARRGGBB | white | The colour as a hex string. |
| R | 0 - 255 | 255 | Red channel. |
| G | 0 - 255 | 255 | Green channel. |
| B | 0 - 255 | 255 | Blue channel. |
| A | 0 - 255 | 255 | Alpha channel. |
Inputs: Hex (Data), R, G, B, A (Data). Each control has its own input pin. Outputs: Hex (Data), R, G, B, A (Data). Each control has its own output pin reporting the current value.
Open URL
Stores a web link and opens it in your computer's default browser. Type the address into the URL field, then press the Open button (or send a trigger to the Open pin) to launch it, just like clicking a link. The URL input lets another node set or change the link while the patch runs, and if you leave off the http:// or https:// the address is opened as a web page. Handy for linking a patch to its manual, a help page, or a website.

| Parameter | Range | Default | Description |
|---|---|---|---|
| URL | text | https:// | The link to open. Editable on the node. |
Inputs: URL (Data, text sets or replaces the link), Open (Data, opens the link: the button, a Bang, or a value rising past 0.5 all trigger it, so a held value does not open extra tabs). Outputs: none (this node performs an action).
Transport
The project's clock and timekeeper: tempo, position in the music, beats, bars, and sync. When MNodes runs as a plugin it can follow your music software (your DAW); when it runs on its own it uses its own built-in clock instead. If you use several Transport nodes they all stay locked together, so changing one updates the rest.

| Parameter | Range | Default | Description |
|---|---|---|---|
| Sync | Internal / Host (DAW) | Host in plugin mode, Internal standalone | Clock source. Host (DAW) is unavailable in standalone. |
| Play | on / off | off | Start or stop the internal clock (Internal mode). |
| BPM | 1 - 999 | 120 | Tempo in beats per minute (Internal mode). |
| Time Sig Numerator | 1 - 32 | 4 | Top number of the time signature (Internal mode). |
| Time Sig Denominator | 1 - 32 | 4 | Bottom number of the time signature (Internal mode). |
Inputs: Sync (Data, 0 = Internal, 1 = Host), BPM (Data), Play (Data), Time Sig Numerator (Data), Time Sig Denominator (Data). The inputs let you modulate the transport from elsewhere in the patch.
Outputs:
| Output | Type | Description |
|---|---|---|
| BPM | CV | Current tempo in BPM. |
| Playing | CV | 1.0 while playing, 0.0 while stopped. |
| Position | CV | Absolute musical position in quarter notes. |
| Bar | CV | Current bar number (0-based). |
| Beat | CV | Beat within the current bar. |
| Beat Trigger | CV | A short pulse on each beat. |
| Bar Trigger | CV | A short pulse at the start of each bar. |
| Bar Phase | CV | A 0-to-1 ramp across each bar. |
| Time Sig Num | CV | Time signature numerator, the 3 in 3/4. |
| Time Sig Den | CV | Time signature denominator, the 4 in 3/4. |
