Skip to content

Changelog

Release history for MNodes installers, auto-generated from the releases admin panel.

v0.9.93 (2026-06-12) · macOS + Windows

0.9.93 (Early Access)

New

  • ASIO support on Windows. The standalone app now ships with Steinberg's ASIO® driver support built in: pick your interface's ASIO driver in Settings > Audio / MIDI for the lowest latency path to your hardware. The native Windows drivers (WASAPI, DirectSound) are still there and stay selected by default, so nothing changes unless you switch. ASIO is a registered trademark of Steinberg Media Technologies GmbH.
  • Bundles: package and share collections. A new File > Create Bundle... window builds a .mnbundle collection out of your presets and projects: give it a name, an artist, a description and a cover image, then add the content straight from your library with a searchable picker (Add from Library...) or from files on disk, and Export it as a single bundle file to share. When packing, every preset is collected and exported with everything it needs: its thumbnail and every external asset it references (samples, images, tuning files...) travel inside the bundle, so nothing is ever left behind. There is also an Add to Library button that simply tags the items already in your library with the bundle name, with no copies made, so the collection shows up grouped in the Bundles section right away, organised and ready. File > Install Bundle... (or just dropping a .mnbundle onto the window) installs it, putting everything in its place; installing replaces, so presets you already had from that pack are overwritten and a bundle can never end up duplicated in your library. The preset browser's rail gains a Bundles section with one entry per installed bundle, so finding, say, "MNodes Tutorial - The Basics" and all of its projects takes one click. Submitting bundles to the Hub happens on the website (the window links straight to it), and bundles published on the Hub show a BUNDLE badge in the embedded Hub and install straight from their GET button.
  • New Parametric EQ. A six-band stereo parametric equaliser. Each band can be set to any shape: bell, low shelf, high shelf, high-pass, low-pass or notch, with its own Frequency, Gain and Q. The body draws the combined response curve over a live spectrum analyser, with one handle per band: drag left and right for frequency, up and down for gain, and use the mouse wheel over a handle to change its Q. Double-click a handle to switch its band on or off. Every band parameter also has its own input and output pin, and Frequency, Gain and Q are stream-capable, so you can modulate any band at sample rate with an LFO, an envelope or any CV source. Like the Filter, it can also be dropped into the front panel as a widget.
  • New Frame node. An Unreal-style background box for grouping a region of the patch, found under Utility. A Frame always sits behind every node AND behind the wires, so nothing ever hides under it: by default it has a very transparent fill and an opaque border, both following the theme and overridable from the inspector. Drop nodes inside and dragging the frame moves everything in its box along with it (Move Contents, on by default). It has a title bar on top: double-click the bar to rename it in place, and set the title's size and colour from the inspector. The Comment node stays as it was, for plain text notes.
  • The Sampler shares its selected zone with the front panel. The Sample Map gains one output pin per zone setting: transpose, fine tune, sample start and end, loop points, crossfade, loop on, the ADSR, volume, pan, reverse and both fades. They emit the selected zone's values every time the selection changes, so wiring them into the Set pins of knobs and toggles builds a panel that always mirrors the zone you click. Each zone row in the node shows its input pin on the left and its snapshot output on the right. Edits made from those widgets still flow back through the zone's input pins, and the two directions never loop.
  • New Pitch Shift Stereo node. A true-stereo version of the Pitch Shift: both channels run through the same shifter with shared Semitones, Fine and Grain, so the stereo image stays coherent. Found under Effects.
  • New AM / Ring Mod Stereo node. A true-stereo version of AM / Ring Mod: a stereo carrier pair and a stereo modulator pair through one set of controls, so Mod L multiplies Audio L and Mod R multiplies Audio R while the image stays coherent. A missing R input falls back to its L side, so mono sources work as expected, and with no modulator wired both channels share the same internal oscillator. Same interactive preview body as the mono node. Found under Effects.
  • New Swap L/R node. A stereo utility that swaps the channels: the left input goes to the right output and the right input to the left. A Swap toggle turns it on or off, and its hybrid input accepts a 0/1 value or a CV stream, so the swap can be gated per sample (an audio-rate gate gives a ping-pong effect). The In/Out pins sit on the same L and R rows. Found under Effects / Stereo.
  • New Phase Invert node. Flips the polarity (phase) of the left and/or right channel, with an independent toggle per side. Each toggle has a hybrid input that takes a 0/1 value or a CV stream, so the inversion can be modulated per sample. Invert both to flip the whole signal's polarity, or one side to fix an out-of-polarity channel. Found under Effects / Stereo.
  • Pitch Shift: grain control. A new Grain parameter (5 to 250 ms, with its own modulation pin) sets the shifter's window size by hand: short grains keep drums and transients tight, long grains smooth pads and voices. The Auto Grain toggle (on by default, with its own 0/1 pin) keeps the classic behaviour, where the window follows the transposition, and greys the Grain slider out while active. Sweeping through zero semitones no longer glitches.
  • Per-node CPU meters. A new View > Show Node CPU toggle draws a small load meter (a coloured bar and a percentage) in the header of each node, so you can see at a glance which ones are heavy. A Subgraph, Module or Poly Module shows its total, and stepping inside it shows the meter on each inner node too. It costs nothing while the toggle is off.
  • MIDI Panic on the Poly Module. A Poly Module now has a MIDI Panic action, both as a button in its Inspector and as an entry in the node's right-click header menu. It instantly silences every voice and clears any stuck or hung note. A safety net for a runaway patch or a host that drops a note-off.

Changed

  • The Home window welcomes you with two paths. Home now opens with the MNodes logo, a Welcome header and two big cards: Perform (play and tweak devices on the front panel) and Create (patch your own devices in the node graph). Picking one takes you straight there and is remembered; together with the reworded "Don't show this on startup" toggle, a fresh MNodes opens directly into your chosen path. Recent projects stay on the panel. And a brand-new instance no longer starts on a bare wire: it opens a small Welcome device, audio in to out through a stereo volume stage, with a Volume knob and a typographic MNodes header on a tidy front panel, so choosing Perform shows a finished little device instead of an empty page.
  • The starting patch now fits the plugin format. The audio FX plugin starts with just the Welcome volume device, with no stray MIDI In/Out nodes. The instrument plugin starts with an actual little polyphonic synth: MIDI In feeds a 6-voice Poly Module whose voice is the classic saw into low-pass into VCA, with an ADSR opening the VCA, so it makes a pleasant sound the moment the host sends notes, and doubles as a working Poly Module example you can open and learn from. The standalone keeps the volume device plus its MIDI In to Out row.
  • Preset browser reorganised. The preset window is wider now and split into two panes: a navigation rail on the left and the preset list on the right. The rail groups your presets by Type (Instruments, Effects, Percussion, Other), by Category and by Author, plus All Presets and Favorites, each with a count. Click an entry to filter the list, and the search box narrows whatever you have selected. It replaces the old single long list with its row of category chips.
  • Browse the Hub inside the preset browser. The preset window's rail now has a MNodes Hub section: select Explore and the right pane becomes the Hub catalog, each project with its thumbnail, author, star rating, download count and description. A bar at the top sorts the catalog (Recent, A-Z, Rating, Downloads) and filters it by category, the search box searches it, and the Size slider resizes the rows just like the local list (taller rows show the description, and featured projects get a badge). Click a free project to download and install it without leaving the popup (it shows up in your library straight away); click an installed one to load it; a paid one opens its product page. Your sort, category and view choice are remembered.
  • One Hub, inside the preset browser. The separate Hub window is gone: the catalog lives entirely in the preset browser's MNodes Hub view. The Hub icon already left the header, so the header stays clean.
  • New Updates window. Version checking, the latest version's release notes and the download link moved out of the old Hub window into a compact Updates window: open it from the MNodes logo menu ("Check for Updates...", next to Settings), or click the update chip that appears in the header when a new version is out and it takes you straight there.
  • Settings moved to the MNodes logo menu. The Settings entry now lives in the dropdown under the MNodes icon in the header (just above About, between separators), instead of the View menu. It opens the same panel and is now reachable the same way in both Edit and Perform mode.
  • Settings opens in its own window. Settings is now a separate, movable and resizable window instead of a full-editor overlay. Put it beside the graph and your colour, theme and appearance changes show as you make them, without it taking over the editor. It stays on top so it never hides behind the editor. Open it from the MNodes logo menu; close it from its title bar or with Escape.
  • New Tutorial category. The preset categories now include Tutorial, so tutorial patches (and tutorial bundles) are easy to tag when saving and easy to find from the browser's rail.
  • Show only the front panel. A new View > Show Only Front Panel toggle (Ctrl+Alt+W, or Ctrl+double-click the divider) gives the front panel the whole workspace and hides the graph entirely, so you can lay out a panel comfortably at full size in Edit mode. Toggle it off and the classic split (graph on top, panel dock below) comes back exactly as it was. The choice is remembered between sessions.
  • The graph scrollbars can be hidden. A new View > Show Graph Scrollbars toggle (on by default, next to Show Mini Map) hides the canvas scrollbars for a cleaner view. Panning, zooming and the minimap work exactly the same without them, and the choice is remembered between sessions.
  • Pitch Shift tunes tighter. When the material has a clear pitch (a voice, a bass, a sustained note), the shifter now lines up its internal grain splices by correlation, so transpositions land cleaner on the target note, with audibly less warble on held tones; an octave up now sits properly on the octave. The detection is confidence-gated, so chords, noise and transients keep exactly the same sound path as before, and it adds no latency and next to no CPU. The Pitch Shift Stereo node gets the same improvement.
  • The preset arrows follow the browser's list. The header's previous/next arrows (and Random) now step through exactly what the preset browser shows. The selected rail entry (Favorites, a Type, a Category or an Author), the search text and the sort order all apply: with the list on Newest first, next always jumps to the next newest preset, and with something typed in the search box the arrows move only through the matches.
  • Presets get an automatic thumbnail. Saving a preset now captures the patch and uses it as the thumbnail by default, following the preset's Open Mode: set to Perform it captures the complete front panel (the whole page, not just what is scrolled into view, rendered clean like Perform shows it: no grid, no edit borders or selection), set to Edit it captures the graph, and switching the Open Mode combo updates the preview live. Next to the preview there is a new Use Custom Image tick: leave it off and the capture is saved with the preset; tick it and the classic flow comes back, with the Choose Image button and drag-and-drop onto the preview. The Categories section also gains a small disclosure arrow (collapsed by default, with a count of the selected ones), so the save panel fits comfortably on smaller screens.
  • Widget Text becomes a text entry field. A new User Editable toggle lets the user type into a Widget Text from the front panel even while the panel is locked (in Perform, double-click it and type). Whatever they enter is published on the widget's new Text Out pin, so typed text can drive anything that takes Data: another label, a Print, or the ComboBox. The ComboBox gains an Add Item input for exactly that: send it a text and it appends it as a new entry (no duplicates) and selects it, so a text field on the panel can grow a dropdown live. With User Editable off everything behaves exactly as before.
  • Audio Player: Start and End have output pins. They mirror the current range, including edits made by dragging the markers on the waveform, so you can wire them into a widget's Set input and keep external controls in sync both ways. Since the two values keep each other in order (Start can push End and vice versa), both outputs update together.
  • Every OTT parameter now has an output pin. Input Gain, Threshold, Upward, Downward, Time, Output Gain and Mix join the crossovers, depths and trims, so any OTT setting can be read back, displayed, or wired into a widget's Set input to keep a front-panel control in sync with edits made on the node's body. Also fixed along the way: the outputs the OTT already had sent their CV streams on the wrong channels, so modulating, say, Low X and tapping its output as CV could carry another parameter's value or silence.
  • Widgets can now read a parameter back through their Set pin. A widget's Set input applies a value without re-emitting it, so wiring a parameter's output back into Set can never create a loop, and the editor now allows that connection. This is how you keep a control in sync both ways: wire Knob Out to, say, an envelope's Attack input, and the Attack output back to the knob's Set. Turn the knob and the envelope follows; drag the envelope's handles and the knob follows. Every control widget has a Set input for this: Knob, the Sliders, Film Strip, XY Pad (separate Set X and Set Y), ComboBox, Radio Group and Toggle. Set pins draw a small ring in the centre instead of a dot, so the feedback-capable inputs stand out at a glance.

Fixed

  • The envelopes' Done pin works now, and it fires CV. The Done output on the Envelope, AHD Envelope and Trig Envelope never fired: the AHD and Trig sent their done signal out the wrong pin (the audio output), and any envelope inside a Module, Poly Module or Subgraph had its done events silently dropped before reaching the wires. All fixed. Done is also a CV trigger now: wire it to anything CV (another envelope's Trigger, a sequencer step, a gate) and it sends a short, sample-accurate pulse the moment the envelope finishes, like the Multi Envelope's Trigger on Done. Data-only inputs like Print still get their Event, but only one of the two fires per wire, so chained envelopes don't double-trigger.
  • Multi Envelope's Trigger on Done fires data consumers too. The Multi Envelope's done trigger only ever sent its CV pulse: data inputs (Print, counters, a sequencer's Generate and the like) never heard it, anywhere. It now also sends the data-side trigger like the other envelopes, correctly routed from inside Subgraphs, Modules and Poly Modules.
  • Sequencer action pins respond to CV inside containers. Wiring a CV trigger into the Slider or Toggle Sequencer's Generate pin (and other action pins like Clear or Dump) did nothing when the sequencer lived inside a Subgraph, Module or Poly Module: the inner graph silently dropped the trigger's data event because the pin was marked as stream fed, a filter the root graph never applied. Inner graphs now follow the same policy as the root, so those pins respond everywhere.
  • Subgraph port nodes are inert at the project root. A Sub In (Audio) placed directly in the root graph (instead of inside a Subgraph, Module or Poly Module) silently picked up the live audio input as if it were an Audio In, a Sub In (MIDI) received the host MIDI, and a Sub Out (Audio) wrote straight to the device output, bypassing Audio Out. Port nodes only mean something inside a container, so at the root they now stay silent. Inside Subgraphs, Modules and Poly Modules everything works exactly as before. Thanks to the user who caught it.
  • FLAC and OGG files work everywhere audio loads. The decoders were already on board, but several file filters only listed WAV, AIFF and MP3: the Sampler's file dialog, the Files explorer (FLAC and OGG files didn't even show up in it, so there was nothing to drag onto a Sampler, Audio Player or Granular) and the Wavetable's custom-file picker. All the audio filters now accept WAV, AIFF, FLAC, OGG and MP3, matching what dropping a file on the graph already accepted.
  • CV sent from inside a Module or Poly Module reads correctly from the parent. A module sending CV from inside through a hybrid pin (for example a Voice Pitch chain feeding a Sub Out in a Poly Module, with nothing wired into the module from outside) could be misread as plain Data by the parent graph, and the parent cable rendered as a dashed, suspended wire even though the inner chain was genuinely CV. The module boundary now refreshes the inner CV state before judging its output pins, so the parent pin always matches what the module actually sends.
  • Tweaking node parameters now lights the unsaved-changes star. Changing a node's settings (a knob, a toggle, anything in the inspector) now marks the preset as having unsaved changes, so the little star next to the preset name shows up. Before, only structural edits like adding nodes or connecting wires triggered it, so parameter tweaks could be lost without warning. Playing does not light it: modulation (an LFO wired to a parameter) and moving widgets in Perform mode are a performance, not an edit.
  • Applying a widget style no longer resets the widget's settings. Applying a node preset (for example one of the factory styles on a Widget Knob, Slider or Button) wiped out everything the preset didn't store: Min, Max, Value, Increment, the Interaction settings, Expose to DAW and more all snapped back to their defaults. A preset now only changes the settings it actually contains, so a style restyles the widget and leaves its range, value and wiring untouched. The same rule now protects every node in the library, not just widgets: applying a partial preset to an LFO, a delay, an envelope or any other node keeps whatever the preset doesn't mention.
  • Dragging a group of zones moves the whole group. In the Sample Map, clicking one of several selected zones used to collapse the selection before the drag could start, so only that zone moved. The group now survives the click: dragging moves every selected zone's key range together, and dragging vertically shifts all their velocity ranges at once, each zone keeping its own span (a small dead zone keeps purely horizontal moves from nudging velocities). The velocity edges follow the same idea: dragging the top or bottom edge adjusts every selected zone relative to its own range. A plain click without dragging still collapses to just that zone, and simple clicks no longer push empty undo steps.
  • Hidden widgets stay hidden. The Visible toggle of panel widgets (knobs, sliders, buttons, toggles, text, XY pads, the Sample Map and the Sample View) was not saved with the project, so a widget hidden from the front panel came back visible after a reload. It is persisted now, and applying a partial node preset leaves it alone.
  • Factory node presets retuned to their real ranges. A pass over every factory node preset found values written in the wrong scale for the node's actual parameter ranges (detunes as 0..1 instead of cents, decays in the wrong unit, drives and gains out of range). They were silently clamped, leaving several presets sounding wrong or even silent. All categories are corrected: Audio FX, Instruments, Envelopes, Sequencers and Widgets.
  • Poly Module no longer gains a voice on every save and load. The voice count was stored twice with different meanings, and each save/load cycle could bump it by one. It is stored once now, and applying a node preset to a Poly Module also rebuilds its voices right away.
  • Editing inside a Poly Module now takes effect right away. Adding, duplicating or removing a node inside a Poly Module (an envelope, an LFO, a duplicated oscillator) could do nothing, cut the sound, or make notes stop playing, because the module kept running the voices it had built before the edit. It now rebuilds the voices on every inner change, so what you patch is what you hear. The same fix covers plain Subgraphs and Modules.
  • Node displays show the right shape inside a Poly Module. An on-body display (an oscillator's waveform, a scope) could come out looking like the wrong shape, for example a sine drawn as a square, because all of the module's voices were drawing into the same display at once. Only the visualization voice feeds the on-node display now, so it shows one clean signal.
  • A Transport saved while playing starts playing on load. A preset stored with its Transport running used to come back stopped: the play state was restored before the node was attached to the engine, so it silently went nowhere. The state is now re-pushed once the node is fully wired, so the patch starts running the moment it loads.
  • Transport follows its Sync mode without toggling it first. A Transport set to Host (DAW), or one freshly added in a plugin (where Host is the default), could ignore the DAW clock until you switched Sync off and back on. The node now pushes its sync mode to the shared clock the moment it is added and when a project loads, so Internal runs on its own Play and Host (DAW) follows the DAW's play and tempo straight away.
  • No more crash when closing a plugin window with several instances open. With more than one MNodes loaded in the host, closing their windows in a different order than they were opened could crash on exit. Each window restored the previously active default styling when it closed, but that reference could point at another instance that had already gone away. It now holds that reference safely, so it clears itself when the other instance closes and nothing dangling is ever restored.
  • Plugin window resizes again in Logic Pro (AU). 0.9.92 stopped drawing MNodes' own resize corner in Audio Unit hosts, expecting the host to supply one. Logic Pro does not, so the window could no longer be resized there. The corner is back in every format; the monitor-clamped size limits added in 0.9.92 still keep it from being dragged off-screen.

Hub

A few improvements landed on the Hub itself. These are on the web side and already live, so there is nothing to update in the app to get them.

  • Download counts match the app and the website. A project's download number now adds up the same whether someone downloads it from the app or from the Hub website, instead of each one keeping its own count.
  • Change a project's cover image after publishing. Editing one of your projects now lets you swap its image, and the new one shows up straight away on the cards and the project page.
  • Give your projects a version. When you submit or edit a project you can set an optional version number, shown next to it on the Hub website and in the app.

v0.9.92 (2026-06-08) · macOS + Windows

MNodes 0.9.92 (Early Access)

NEW

  • Show or hide a Module / Poly Module on the front panel (Visible toggle, plus an Appearance input to switch it from the graph).
  • Curve node: In/Out Min and Max are now input pins, so the ranges can be wired or modulated.
  • Name labels built into the Knob, Slider and ComboBox widgets (position, colour and size, no extra text widget needed).
  • Separate opacity for each image on the Button and Toggle widgets.
  • Rotation pivot for repeated images: spin each tile, or the whole pattern as one block.
  • Share colour palettes: export and import your custom swatches as a .mnpalette file.
  • Exact delay in samples on Delay Line Mono and Delay Mono (new Samples mode).
  • Vocoder: up to 100 bands (was 16), plus a Gate that mutes the quietest bands.
  • Vocoder Stereo: a new true-stereo vocoder, independent per channel.
  • Vocoder: an editable band-mapping curve to shift formants or flip the spectrum.
  • MIDI Single Note Remap: re-route one note's pitch, channel and velocity; chain a few to send notes to different channels.
  • Node transparency: an alpha slider on the Node Body colour to make nodes more see-through.

CHANGED

  • Smooth node now has continuous CV outputs (Value, Is Smoothing, Done).
  • Sliders default to a 0.001 step like the knob (set 0 for fully continuous).
  • Image widget settings are grouped into sections, easier to scan.
  • Poly Module shows a warning when it has no MIDI to assign voices.
  • Inside a Module, the Inspector offers both Module Panel and Front Panel, matching the right-click menu.

FIXED

  • Modules and Poly Modules no longer open cropped.
  • Vocoder keeps an even level as you change the band count.
  • Vocoder's on-node bars follow the band count even with no audio.
  • The Vocoder (and Vocoder Stereo) can now go on the front panel.
  • Cleaner Increment field on knobs and sliders (no trailing zeros).
  • Scopes, meters and readouts read correctly inside a Poly Module.
  • The minimap follows you into Modules, Poly Modules and Subgraphs.
  • Button / Toggle hover shows the Hover Colour cleanly.
  • MIDI CC value is now 0..1 everywhere, like the rest of the CV.
  • Group / Ungroup act on the whole selection in one step.
  • Duplicating a group keeps it as a group.
  • Curve node now works with data sources, not just CV.
  • Pos X / Pos Y show for every node you can place on the front panel.
  • No more loud burst when loading a project or patch.
  • West Coast wavefolder shows live CV on its body.
  • Standalone remembers your enabled MIDI inputs.
  • CV / Data To MIDI sends pitch bend, CC and aftertouch from data too.
  • Audio and CV Wire stay clean in hosts with variable block sizes (e.g. FL Studio).
  • Knob widget value text updates inside subgraphs.
  • Standalone asks to save before closing.
  • macOS: graph keyboard shortcuts fire reliably.
  • Plugin scan logs which plugin failed.
  • macOS / Logic (AU): the plugin editor resizes smoothly.
  • Plugin editor's resize limit follows it across monitors.
  • Filter and AllPass take fast modulation cleanly (smooth audio-rate sweeps).

v0.9.91 (2026-06-04) · macOS + Windows

MNODES 0.9.91 (EARLY ACCESS)

This release builds on the first Early Access (0.9.9). Here is what changed since then. Thank you for testing and helping shape the road to 1.0.

NEW

  • New MIDI editing nodes. A set of small nodes that take MIDI in, change one thing, and pass everything else through, so you can chain them freely with sample accurate timing: MIDI Velocity (scale and / or offset velocity), MIDI Set Channel (force a channel 1 to 16), MIDI Note Remap (up to 8 note to note maps, by letter), MIDI Note Filter (pass or block a key range), MIDI CC Transform (renumber a CC and scale / offset it), and MIDI Merge (up to four streams into one). Untouched messages flow straight through, and a NoteOff always follows its NoteOn, so nothing ever gets stuck.

  • CV / Data To MIDI node. Closes the loop with MIDI To CV / MIDI To Data: pull MIDI out to CV or data, shape it, and turn it back into MIDI. A Gate fires notes (rising edge = NoteOn, falling = NoteOff) at the current Note and Velocity, and Pitch Bend, CC and Aftertouch rebuild when their values change. The inputs are Data pins that also accept CV.

  • Data To CV node. Converts a data value into a smoothed CV stream (the inverse of CV To Data), so any data float can drive a CV input without clicks.

  • CV output on envelopes. Envelope, Trig Envelope, AHD Envelope and Multi Envelope now have a CV output next to Out, carrying the envelope shape as a pure CV signal. Wire it straight into any modulation input (filter cutoff, a widget's position, an LFO's Min / Max...) with no conversion.

  • Position front panel widgets from the Inspector. Widgets now have Pos X and Pos Y fields (in pixels). They also accept the Appearance input and an Appearance Changer, so a widget's position can be modulated or animated like any other look value. Dragging or nudging a widget updates the fields live. They are excluded from the look randomiser by default.

  • Eyedropper for colour pickers. Every colour picker has an eyedropper to grab a colour from anywhere on screen: click to enter pick mode, move to preview the colour live, and click to apply it (Escape cancels). On macOS it uses the system colour sampler.

  • Type a note name into any number slider. Double click a numeric slider and type a note name (C3, C#5, Eb2, A-1) to set that note's frequency in Hz. Integer sliders round it, and plain numbers still work as before.

  • Drag a look onto the graph. Drop a .mnLook (or .hbLook) file onto the editor to apply it straight away, as a single undo step.

  • Cancel a Hub download. The download progress popup (preset or project) now has a Cancel button that stops cleanly and deletes the half written file, so no leftovers remain.

CHANGED

  • Node browser organised by purpose. The add node browser and palette now group nodes by what they do (Oscillators, Instruments, Samplers, Filters, Effects, Envelopes, Modulation, Sequencers, Pitch, MIDI, Math and Logic, Values, Routing, Convert, Widgets, Utilities, Analysis) instead of by signal type. Nothing was renamed and search is unchanged.

  • MIDI To Data now outputs the same set as MIDI To CV. Added Pitch (V/oct), Note Hz and Trigger Note On / Off, and Channel now reports 1 to 16 (was 0 to 15). The original outputs keep their pins, so existing patches are not rewired.

  • LFO output range now defaults to 0 to 1 (was -1 to 1), since most modulation targets expect unipolar. Set Min / Max to -1 to 1 for a bipolar LFO, and so on. Existing projects keep their saved range.

  • Removed the MIDI Split node. The in place MIDI nodes plus MIDI To CV / MIDI To Data already cover it. Note: projects that used MIDI Split will not reload that node.

  • Removed the CV Multiply node. The hybrid Multiply already handles CV and data. Note: projects that used CV Multiply will not reload that node; replace it with Multiply (same A * B).

FIXED

  • DAW automation of exposed widgets now works in both directions in hosts like Bitwig. The plugin was echoing the host's own automation back onto the same parameter and freezing the lane; now it only reports the changes you make, so lanes drive the widget and moving the widget updates the DAW.

  • macOS: the editor window of a hosted plugin (the Plugin Host node) now floats above the DAW instead of hiding behind it.

  • Plugin scanning is safer and faster. Plugins are probed out of process, so a crashing third party plugin can no longer take down the host, and several plugins scan in parallel.

  • CV now propagates through math nodes. A chain like CV to Multiply to Map (or Add, Subtract, Clamp...) carries CV all the way through.

  • LFO Min and Max can now be driven from outside the node (a knob, a CV / data connection, or automation), exactly like Freq and Phase Offset, and the LFO body scope no longer overflows or squashes when you change them.

  • Arpeggiator: the Down direction (and DownUp, Reverse Played) now play in the right order.

  • Installing or reinstalling factory content now refreshes the Modules, Subgraphs and Node Presets browser right away, and factory subgraphs and modules show up under their own Factory groups.

  • A project started from zero now opens with the master at 0 dB and the limiter on, instead of inheriting the last used value.

  • Standalone: changing the MIDI Output device in Settings takes effect immediately, and the window can be dragged to fill whatever monitor it sits on.

  • macOS standalone: fixed a crash when opening Settings (the MIDI / Bluetooth scan) and restored audio output; the build now ships the required microphone and Bluetooth usage descriptions.

  • macOS: the Files explorer now lists external and network drives, not just the internal disk, and file menu actions read Show in Finder.

  • Loading a preset now opens it in the mode it was saved with (Edit or Perform), instead of staying in Perform once Perform had been used.

  • Holding Ctrl / Cmd to zoom no longer also moves a slider under the pointer; Ctrl / Cmd + wheel is always a zoom.

  • Switching to Perform mode now closes any open Settings, Info or Save panel.

  • The ComboBox widget no longer follows the global theme; its colours come entirely from the node's Appearance. More UI (colour picker value boxes, breadcrumbs, drop downs, popup dialogs) now follows the theme / Main colour too.

  • Appearance undo / redo behaves predictably: randomising the palette is a single undo step, and a colour picker drag is grouped start to end.

  • Editing a comment node is readable again: the inline editor uses the comment's own colours instead of washing the text out.

  • Clicking outside a confirm dialog now dismisses it with the safe option (Cancel / No), never Save.

  • Hub: presets and projects uploaded by other users now download correctly (a Hub backend fix, already live, no app update needed).

v0.9.9 (2026-06-02) · macOS + Windows

MNODES 0.9.9 (EARLY ACCESS)

This is the first Early Access release. Thank you for testing MNodes and helping shape the road to 1.0.

NEW

  • Factory Content. MNodes can install a curated factory library (node presets, subgraphs, modules and projects) from the Hub into read only Factory folders, kept separate from your own content and your Hub downloads. Get it three ways: the "Install / Reinstall Factory Content" button in Settings > General, a one time prompt on first run, or by dropping a .mnpack file onto the graph. Reinstalling only ever touches the Factory folders, so it can never delete your own work. Requires an activated licence.

  • Multichannel Audio In / Out. Audio In and Audio Out have a new Channels slider (1 to 8, default stereo) that adds or removes pins live, numbered from the hardware's point of view (In 1, In 2 ... and Out 1, Out 2 ...). In the standalone you can enable more than two channels in Settings > Audio / MIDI to use a multichannel interface.

  • Appearance settings are back. Colour pickers for Background, Main and the four wire colours, plus new Graph Background, Grid, Node Body and Panel Grid colours, the built in skin presets, look file import / export, and a new Text Contrast slider that lifts the opacity of dim text and icons for readability.

  • Refreshed theme presets: Default plus 8 varied skins (Carbon, Aurora, Synthwave, Terminal, Cobalt, Crimson, Frost, Parchment), each setting the full 11 colour palette so the graph, nodes and front panel shift together.

  • Virtual Wires (Audio and CV). Route a signal through a named bus instead of a cable, and build feedback loops with a guaranteed one block delay. The family is Audio Wire In / Out and Sub Audio Wire In / Out (audio), plus the new CV Wire In / Out and Sub CV Wire In / Out (CV). "Wire In" feeds the bus, "Wire Out" reads it back.

  • Delay Line Mono. A pure mono delay line (no feedback, no mix) with three time modes: Free (ms), Hz (1 / frequency) and Sync (musical subdivision).

  • Feedback Loop Mono factory subgraph. Drop one node, open it, insert your effect chain, and the feedback loop closes for you. An Amount input drives the feedback from any LFO, envelope or knob.

  • LFO output range. New Min and Max params set the LFO range directly (default -1 to +1), both CV modulatable. Min greater than Max inverts it.

  • Toggle Perform Mode shortcut (Ctrl / Cmd + P).

  • Front Panel: pan the canvas (middle mouse drag, or Space and left drag) and nudge selected widgets with the arrow keys (1 pixel, or 10 with Shift). A new Layers button was added to the floating toolbar.

  • Double click a node header to toggle the Inspector, rename a node from the Inspector header, and set any dropdown parameter by its label text (not just its index).

CHANGED

  • Explorer sidebar dropped the Presets tab (presets live in the preset controller now). Order is Files, Nodes, Modules / Subgraphs, Lab.

  • Preset browser remembers your scroll position, search, tag filters, sort order, row size and favourites toggle for the session.

  • Hub Library cards now have a right click menu (Load, Show Info, Favourite, Show in Explorer, Delete) and a favourite heart, Show Info opens inside the Hub window, and the What's New notes are larger and easier to read.

  • CV Delay is now CV Delay Line. Note: projects that used the old CV Delay node will not reload that node, rebuild it with CV Delay Line.

  • MIDI CC Inject / Extract now work only in the 0 to 127 range.

  • "MIDI" is spelled in all caps across the whole interface.

  • LFO params reordered. Phase is now Phase Offset and the Phase input is Phase CV. Random waveforms use a fresh seed per instance, so each new or duplicated LFO sounds different.

  • Unified musical subdivisions across all Sync capable nodes. Double check synced delays saved before 0.9.9, the subdivision index may have shifted.

FIXED

  • Right clicking a preset and choosing an action no longer crashes.

  • Stereo samples in the Sampler now play in stereo.

  • Audio Player, Granular and Plugin Host play correctly inside a subgraph, and a playing sample no longer stops when you edit the subgraph.

  • A raw Audio Out or MIDI In inside a subgraph now reaches the host.

  • MIDI To CV and hosted plugins (notes and audio) work again.

  • Plugin Host strips DC offset, so an idle synth no longer pins the master meter while you hear nothing.

  • Standalone window: Aero Snap, edge resize and double click maximise work on Windows, and a stale saved audio setup falls back to the system default.

  • Window and panel minimums lowered so a wide, short layout fits cleanly.

  • Front Panel: widgets keep their proportions at every zoom, alignment no longer drifts away from 100%, the grid no longer tears under a dragged widget, and a locked widget hides its border and stays playable.

  • The Lab generating a chain no longer stops a playing Audio Player.

  • Sequencer fixes: lowering Steps no longer breaks the loop, the playhead is clearly visible, and a panel sequencer mirrors graph side edits.

  • Global single key shortcuts no longer steal keystrokes while you type.

  • Reset Zoom (Cmd / Ctrl + 0) is reliable on macOS.

  • Add node palette opens cleanly and auto selects the best match as you type.

  • The update notice no longer lingers after installing, and many smaller fixes (minimap refresh, tooltips, lasso, node thumbnails, Map node CV).

KNOWN NOTES FOR THIS EARLY ACCESS

v0.9.8 (2026-05-28) · macOS + Windows

New nodes

  • Curve (CV/Value): reshape any value through 5 curves (Linear, Exponential, Logarithmic, S-Curve, Inverse S) with an Amount knob and Range mapping.
  • MIDI CC Extract: pick a CC number and stream its value as CV.
  • MIDI CC Inject: send any CV out as a MIDI CC message.

New features

  • Per-node Bypass: B key or right-click. Click-free with crossfade, undoable, saved with the preset.
  • Subgraph Oversample: Off / 2x / 4x / 8x, anti-aliased.
  • Always-visible Preset Controller in the top bar: prev / next arrows plus one click on the name opens the full preset browser. Same in Edit and Perform mode.
  • Front Panel Layer Groups: group widgets into folders, nestable, Cmd/Ctrl+G to group, Cmd/Ctrl+Shift+G to ungroup.
  • Export Preset button in the Save Preset panel: saves to library AND prompts for a portable copy.
  • Zoom shortcuts: Cmd/Ctrl + +, Cmd/Ctrl + −, Cmd/Ctrl + 0.
  • MIDI pin flash: MIDI pins blink on activity, same as Data pins did already.

UI polish

  • Resonator chart redesigned: cleaner curve, per-band frequency tags that never overlap.
  • Plugin Host inspector: clear highlight on last-touched param + header search (handy on Diva / Serum / Pigments).
  • AudioPlayer: hover affordances on draggable zones, drag-bar to move the loop, max zoom 256, thinner markers, proper cursor shapes.
  • MIDI Scale: piano keyboard can be dropped into the Front Panel with full Appearance section.
  • Master fader: pulled all the way down is now true silence (-inf), with a log curve so the useful range gets most of the slider.
  • Grid slider in the Front Panel goes down to 1 px.
  • Mini CV scope over knobs now shows the target parameter name, so you can tell which scope belongs to which knob at a glance.
  • Filter node: Gain and Drive sliders grey out when the active Mode doesn't use them.

DAW integration

  • DAW automation actually changes the sound now (was a real bug: slider moved visually but the patch didn't react).
  • Standalone on macOS asks for microphone permission on first launch (otherwise audio gets silently muted on macOS 14+).
  • First-run plugin scan is now opt-in with a prompt, no more frozen DAW.

Bug fixes

  • Backspace / Delete in any text field no longer deletes the selected node.
  • Clicking a node now properly releases focus from any open text field.
  • Crash on Delete preset from the preset selector is fixed.
  • AudioPlayer no longer degrades to a bitcrush-sound after playing for a while.
  • macOS Bluetooth MIDI no longer crashes the standalone.
  • Hub downloads now show a progress popup with a real percentage.
  • Lab generator: AllPass knob and Stereo Delay L/R are wired correctly now.

Breaking change

  • If node now has two output pins (Then Out and Else Out) instead of the single Out pin. Patches from 0.9.7 that wired the old Out need to be redrawn to Then Out.

v0.9.7 (2026-05-23) · macOS + Windows

MNodes v0.9.7

Beta feedback round. Bug fixes, polish, and a master output safety stage.

Added

  • Master output safety - a brick-wall output limiter (on by default), a master output gain (-24 to +6 dB) and a stereo clip meter, shown as a compact strip in the menu bar. Drag the volume, double-click to reset to 0 dB, click the LED to toggle the limiter. Saved with the project and with each preset.
  • Widget Text - Orientation option - choose between Horizontal, Vertical (up), Vertical (down), or Stacked (one character per row without rotation). Justification stays visually consistent across orientations.
  • Explorer Nodes tab - tooltips - hovering a node shows its name and full description.
  • Preset Browser - tooltips - hovering a preset shows its name, author and description.
  • Copy / Paste Appearance - right-click a widget node's header to copy its look, then paste it onto other nodes of the same type. Works on multi-selection too.

Changed

  • Perform mode menu bar simplified - only the Preset menu remains, plus a new MNodes logo button on the left with About and Open in Edit Mode. The About panel now also opens in Perform mode.
  • Menu bar now adapts to narrow window widths - the preset name, the update notice and the master strip shrink or collapse in turn (the update notice becomes a small dot) instead of overlapping each other.
  • Right-click Add Node menu - nodes sorted alphabetically by name within each category.
  • License activation screen - higher contrast for text, inputs and buttons.
  • CV Scope - the node body now shows the current incoming CV value as a clear numeric readout, so you can read the exact value at a glance.
  • MIDI Channel Filter - In and Out share a single row, and the node only forwards raw MIDI from the selected channel (clock, transport and SysEx are dropped). The redundant MIDI Channel Router node was removed.
  • Removed the older "MIDI Keyboard" widget node in favor of the richer "Midi Keyboard" node, which covers the same use case plus more.
  • Removed the Reset option from the menu bar. Use New Project, or select all and Delete, instead.

Fixed

  • Delete / Backspace shortcuts no longer stop working when a text field has keyboard focus somewhere in the editor. Several focus traps in the Debug Print body cleaned up at the same time.
  • MIDI Arpeggiator - changing Octaves or Out Channel mid-play no longer breaks the arp. Turning Latch off now also clears the latched chord.
  • MIDI Riff Generator - hybrid parameters now respond to CV / audio-rate streams in addition to Data. Trigger buttons fire on rising edges. The body's loop bracket follows the modulated values too.
  • MIDI Keyboard - Hold latch now also applies to incoming MIDI notes, not only to keys clicked on the UI. Latched MIDI notes are shown as active on the keyboard body.
  • Sampler Engine - Voices, Glide, Glide Time and Bend Range now persist across project saves (they were resetting to defaults on every reopen).
  • Sample View and Sample Map - Wave Colour and other paint specs now persist across project reloads (they were saved double-encoded and the loader silently fell back to defaults).
  • Sample View and Sample Map - the body no longer eats mouse-wheel events in the graph editor, so Ctrl+wheel canvas zoom over the body works as expected.
  • Appearance Changer now populates its property dropdown for every node with an Appearance input pin (Oscilloscope, Audio Delay mono/stereo, Filter, Wavetable, all envelopes, all dynamics processors, Vocoder, OTT, Karplus-Strong, Granular, and more).
  • Analyzer - trace colours with alpha 0 are now actually invisible.
  • LAB - generating or regenerating a front panel is now a single atomic Undo step.
  • Hub - re-downloading a preset or bundle no longer creates duplicates; asks to overwrite via a popup.
  • Graph - middle-click drag always pans the canvas, doesn't jump position, and doesn't change a parameter the cursor is hovering over.
  • Widgets - a colour set to alpha 0 stays fully transparent instead of snapping back to the theme colour.
  • Front panel - tooltips set on a widget's appearance now show on hover, both when editing and when using the panel.
  • Tooltips appear beside the cursor instead of floating above it, so they line up with the element being pointed at.
  • Explorer Nodes tab - descriptions truncate cleanly instead of shrinking; the category label no longer overlaps long node names.
  • Deleting a node that was driving another node's input now re-enables the affected controls.
  • Drag a .mnprt onto the editor now imports it into the library and refreshes the preset list immediately, as well as loading it.
  • Fixed a crash when loading some presets from the browser (a use-after-free of the file path during project rebuild).
  • Fixed a heap-corruption crash that could fire when a meter or other node updated a parameter from the data pump thread.

v0.9.6 (2026-05-21) · macOS + Windows

MNodes 0.9.6: First Public Beta

This is the first build of MNodes I am sharing outside of my own machine. It is a beta: expect rough edges and the occasional bug.

What I need from you:

  • Use it like you would use any other tool.
  • If something breaks or feels wrong, tell me. OS, DAW and what you were doing is enough.
  • If something works well, tell me that too.

Write to me at mario@marionietoworld.com.

Thanks for testing.

Mario


ASIO Compatible

ASIO is a registered trademark of Steinberg Media Technologies GmbH.

MNodes Documentation