Skip to content

Widgets

Widgets are the parts your finished instrument is made of: the knobs, sliders, buttons, labels, shapes and drop zones that you and your users actually click and turn. They are what sits on the front panel, the polished face of your creation, and they carry values into and out of your patch (the network of connected nodes) through their pins (the little dots where you plug cables in). Most widgets have an Appearance input that takes a small block of style settings written as JSON (a simple text format for describing settings), so you can change how a widget looks from inside the patch itself, usually by feeding it from an Appearance Changer node, without opening the inspector panel. This page describes every node in the Widgets category.

Appearance Changer

This node lets you restyle a connected widget on the fly from inside your patch. You pick one look-and-feel property (for example a colour or a size), feed in a new value, and it builds the small block of style settings that the widget understands. The Property list fills in by itself when everything it is connected to is the same kind of widget. If you have connected different widget types at once, it shows "Mixed targets" and stays empty.

Appearance Changer

ParameterRangeDefaultDescription
Property(auto from targets)ConnectSelected appearance property. Auto-populates from connected widget Appearance targets when they are all the same type, otherwise shows "Mixed targets". Also accepts a zero-based property index or a property id/label text.
Valueany0Incoming property value. Text, bool, and numeric values are converted to the selected property's JSON type.

Inputs: Property (selects the target property by index or by id/label text), Value (the value assigned to the selected property). Outputs: Out (a JSON text patch holding one property, ready to connect to a widget's Appearance input).


Widget Slider Vertical

An up-and-down slider for your front panel. As you drag it, it sends out a smoothly changing number somewhere between your chosen lowest and highest values (Min and Max). You can fully style its look: the track, the coloured fill, the border, how rounded the corners are, the value text and where the label sits.

Widget Slider Vertical

ParameterRangeDefaultDescription
Value0 to 10Current slider value.
Minunbounded0Lower bound for the slider value range.
Maxunbounded1Upper bound for the slider value range.
Defaultunbounded0Default value used for reset behaviour.
Incrementunbounded0Optional snap step. 0 means continuous. The mouse wheel always moves at least 1% of the range per notch, so a very fine increment still snaps the value without making the wheel feel dead. Anything below 0.000001 is treated as 0. The readout shows as many decimals as the increment needs, so a step of 0.001 reads three places and a step of 0.0001 reads four.
Drag Sensitivity0.1 to 201Scales how quickly the slider responds to dragging.
Spring BackOff / Centre / Minimum / Maximum / DefaultOffWhere it goes when you let go, like a pitch or mod wheel. Off leaves it where you put it. Centre is the middle of the range, whatever the range is, so a control set to -1 to 1 comes back to zero.
Spring Time0 to 2,000 ms0 msHow long the return takes. 0 snaps back the instant you let go.
Hover OutputOn / OffOffAdds a Hover output to the node: true while the pointer, or a finger on a touch screen, is over the widget, and false when it leaves. Use it to light something placed under the widget, or to switch an effect on while the control is touched.
Track Colour, Fill Colour, Border Colour, Text ColourcolourthemeColours of the track, active fill, border and value text.
Corner Radius0 to 1003Corner radius of the slider body.
Border Width0 to 1001Width of the slider border.
Show Valueon / offonShows or hides the formatted value text.
Text Size8 to 4811Font size of the value text.
Text Position(choice)Inside TopPlaces the value text inside or outside the slider.
Display ModeFloat / Integer / NoteFloatFormats the displayed value.
Suffixtext(empty)Text appended after the displayed value.
PositionsOff / 2 to 16OffTurns the fader into a slide switch with that many stops between Min and Max: the value can only rest on one of them, the ticks mark them, and a Position output says which, counted from 0. For a waveform or a filter type picked by sliding
Show Tickson / offoffDraws marks along the travel. A switch turns them on by itself, one per position
Tick ShapeLines / DotsLinesMarks as lines across the travel or as dots
Tick Count2 to 20011How many marks, the two ends included. With Positions on there is one per position instead
Tick Length / Tick Width0.5 to 100 / 0.5 to 104 / 1Size of the marks, the length in pixels or as a percentage of the fader's short side. A dot is as wide as its line would be long
Tick ColourcolourthemeColour of the marks
Ticks Insideon / offonOn draws the marks across the bar, off draws them beside it on both sides, which needs room around it

Inputs: In (sets the value), Appearance (JSON object to restyle the widget). Outputs: Out (the current value as a float), Position (only with Positions on: which stop the fader sits on, counted from 0), Hover (only with Hover Output on: true while the pointer is over the fader).


Widget Slider Horizontal

A left-to-right slider for your front panel. It works just like the up-and-down slider, sending out a smoothly changing number between your lowest and highest values (Min and Max) with the same full styling options, but it is laid out sideways.

Widget Slider Horizontal

ParameterRangeDefaultDescription
Value0 to 10Current slider value.
Minunbounded0Lower bound for the slider value range.
Maxunbounded1Upper bound for the slider value range.
Defaultunbounded0Default value used for reset behaviour.
Incrementunbounded0Optional snap step. 0 means continuous. The mouse wheel always moves at least 1% of the range per notch, so a very fine increment still snaps the value without making the wheel feel dead. Anything below 0.000001 is treated as 0. The readout shows as many decimals as the increment needs, so a step of 0.001 reads three places and a step of 0.0001 reads four.
Drag Sensitivity0.1 to 201Scales how quickly the slider responds to dragging.
Spring BackOff / Centre / Minimum / Maximum / DefaultOffWhere it goes when you let go, like a pitch or mod wheel. Off leaves it where you put it. Centre is the middle of the range, whatever the range is, so a control set to -1 to 1 comes back to zero.
Spring Time0 to 2,000 ms0 msHow long the return takes. 0 snaps back the instant you let go.
Hover OutputOn / OffOffAdds a Hover output to the node: true while the pointer, or a finger on a touch screen, is over the widget, and false when it leaves. Use it to light something placed under the widget, or to switch an effect on while the control is touched.
Track Colour, Fill Colour, Border Colour, Text ColourcolourthemeColours of the track, active fill, border and value text.
Corner Radius0 to 1003Corner radius of the slider body.
Border Width0 to 1001Width of the slider border.
Show Valueon / offonShows or hides the formatted value text.
Text Size8 to 4811Font size of the value text.
Text Position(choice)Inside LeftPlaces the value text inside or outside the slider.
Display ModeFloat / Integer / NoteFloatFormats the displayed value.
Suffixtext(empty)Text appended after the displayed value.
PositionsOff / 2 to 16OffTurns the fader into a slide switch with that many stops between Min and Max: the value can only rest on one of them, the ticks mark them, and a Position output says which, counted from 0. For a waveform or a filter type picked by sliding
Show Tickson / offoffDraws marks along the travel. A switch turns them on by itself, one per position
Tick ShapeLines / DotsLinesMarks as lines across the travel or as dots
Tick Count2 to 20011How many marks, the two ends included. With Positions on there is one per position instead
Tick Length / Tick Width0.5 to 100 / 0.5 to 104 / 1Size of the marks, the length in pixels or as a percentage of the fader's short side. A dot is as wide as its line would be long
Tick ColourcolourthemeColour of the marks
Ticks Insideon / offonOn draws the marks across the bar, off draws them beside it on both sides, which needs room around it

Inputs: In (sets the value), Appearance (JSON object to restyle the widget). Outputs: Out (the current value as a float), Position (only with Positions on: which stop the fader sits on, counted from 0), Hover (only with Hover Output on: true while the pointer is over the fader).


Widget Range Slider

A slider with two handles that picks a range instead of a single value. Drag either handle to choose the low and high ends: the fill is drawn between them, and each end is sent out of its own output, Min and Max. A handle stops when it reaches the other one, always keeping at least the Min Gap between them, and both snap to the Increment. Reach for it whenever one control should give you a low and high pair: the bottom and top of a filter sweep, the bounds for a random value, any setting that needs a "from here to there".

Widget Range Slider

ParameterRangeDefaultDescription
Minwithin the range4The selected low value (the left handle).
Maxwithin the range12The selected high value (the right handle).
Range Min / Range Maxunbounded0 / 16The bounds the two handles move within.
Incrementunbounded1Optional snap step. 0 means continuous. The mouse wheel always moves at least 1% of the range per notch, so a very fine increment still snaps the value without making the wheel feel dead. Anything below 0.000001 is treated as 0. The readout shows as many decimals as the increment needs, so a step of 0.001 reads three places and a step of 0.0001 reads four.
Min Gap0 to 161The smallest distance the two handles keep between them, so they never overlap.
Hover OutputOn / OffOffAdds a Hover output to the node: true while the pointer, or a finger on a touch screen, is over the widget, and false when it leaves. Use it to light something placed under the widget, or to switch an effect on while the control is touched.
Rail Thickness0.05 to 10.45Rail thickness as a fraction of the slider's height.
Track Colour / Fill Colourcolour(preset)Colours of the rail and of the fill between the handles.
Rail Border Colour / Widthcolour / 0 to 40noneOptional outline around the rail.
Rail Imagepng / jpg / svg(empty)A picture drawn along the rail, so the body of the fader can be your own artwork. It goes over the rail colour and under the active fill.
Rail Image Size10 to 400100Rail image size as a percentage of the rail. Above 100 it spills past it.
Rail Image FitFill / Fit / StretchStretchHow the picture meets the rail. Fill covers it and crops what does not fit, Fit shows the whole picture, Stretch ignores the aspect and does as it is told.
Handle ShapeCircle / Square / Rounded Rect / Triangle / Hexagon / LineCircleShape of the two handles.
Handle Colour / Size / Bordercolour / 0.05 to 4 / 0 to 40white / 1.2 / noneColour, size and outline of the two handles.

Inputs: Range Min (sets the lower bound), Range Max (sets the upper bound), Set Min (sets the selected low value), Set Max (sets the selected high value), Appearance (JSON object to restyle the widget). Outputs: Min (the selected low value), Max (the selected high value), Hover (only with Hover Output on: true while the pointer is over the slider).


Widget Slider Vertical Thumb

An up-and-down slider built around its handle: a slim rail with a fully stylable thumb riding on it, and the thumb always stays completely visible, never sliding off the ends. You choose the handle's shape (circle, square, rounded rectangle, triangle, hexagon or a plain line), its size, colour and border, or swap the drawn shape for your own picture (PNG, JPG or SVG). The rail and fill can be restyled too, or made invisible, which makes this the building block for custom fader looks on the front panel where the track is your own artwork, such as a UI kit background or an image.

Widget Slider Vertical Thumb

ParameterRangeDefaultDescription
Value0 to 10Current slider value.
Min / Maxunbounded0 / 1Bounds of the slider value range.
Defaultunbounded0Default value used for reset behaviour.
Incrementunbounded0Optional snap step. 0 means continuous. The mouse wheel always moves at least 1% of the range per notch, so a very fine increment still snaps the value without making the wheel feel dead. Anything below 0.000001 is treated as 0. The readout shows as many decimals as the increment needs, so a step of 0.001 reads three places and a step of 0.0001 reads four.
Drag Sensitivity0.1 to 201Scales how quickly the slider responds to dragging.
Spring BackOff / Centre / Minimum / Maximum / DefaultOffWhere it goes when you let go, like a pitch or mod wheel. Off leaves it where you put it. Centre is the middle of the range, whatever the range is, so a control set to -1 to 1 comes back to zero.
Spring Time0 to 2,000 ms0 msHow long the return takes. 0 snaps back the instant you let go.
Hover OutputOn / OffOffAdds a Hover output to the node: true while the pointer, or a finger on a touch screen, is over the widget, and false when it leaves. Use it to light something placed under the widget, or to switch an effect on while the control is touched.
Rail Thickness0.05 to 10.45Rail thickness as a fraction of the slider's width.
Track Colour / Fill Colourcolour(preset)Colours of the rail and the active fill.
Rail Border Colour / Widthcolour / 0 to 40noneOptional outline around the rail.
Rail Imagepng / jpg / svg(empty)A picture drawn along the rail, so the body of the fader can be your own artwork. It goes over the rail colour and under the active fill.
Rail Image Size10 to 400100Rail image size as a percentage of the rail. Above 100 it spills past it.
Rail Image FitFill / Fit / StretchStretchHow the picture meets the rail. Fill covers it and crops what does not fit, Fit shows the whole picture, Stretch ignores the aspect and does as it is told.
Handle ShapeCircle / Square / Rounded Rect / Triangle / Hexagon / LineCircleShape of the draggable handle.
Handle ColourcolourwhiteFill colour of the handle.
Handle Size0.05 to 41.2Handle size as a fraction of the slider's width. It can be bigger than the rail.
Handle Border Colour / Widthcolour / 0 to 40noneOptional outline around the handle.
Handle Imagepng / jpg / svg(empty)A picture that replaces the drawn handle shape.
Handle Image Size10 to 400100Image size as a percentage of the handle area.
Reduce Width / Reduce Height0 to 2006Insets the slider inside the widget, leaving a margin around it.
PositionsOff / 2 to 16OffTurns the fader into a slide switch with that many stops between Min and Max: the value can only rest on one of them, the ticks mark them, and a Position output says which, counted from 0. For a waveform or a filter type picked by sliding
Show Tickson / offoffDraws marks along the travel. A switch turns them on by itself, one per position
Tick ShapeLines / DotsLinesMarks as lines across the travel or as dots
Tick Count2 to 20011How many marks, the two ends included. With Positions on there is one per position instead
Tick Length / Tick Width0.5 to 100 / 0.5 to 104 / 1Size of the marks, the length in pixels or as a percentage of the fader's short side. A dot is as wide as its line would be long
Tick ColourcolourthemeColour of the marks
Ticks Insideon / offoffOn draws the marks across the rail, off draws them beside it on both sides, which needs room around it

A rail picture and a handle picture together mean the whole fader is drawn by you. Both are collected with the preset when you export a bundle, so the patch still looks right on somebody else's machine.

Inputs: In (sets the value), Set (sets the value without sending it out again, handy for keeping controls in sync), Appearance (JSON object to restyle the widget). Outputs: Out (the current value as a float), Position (only with Positions on: which stop the fader sits on, counted from 0), Hover (only with Hover Output on: true while the pointer is over the fader).


Widget Slider Horizontal Thumb

The same handle-first slider laid out sideways. It offers everything the vertical version does, the same handle shapes, sizes, colours, borders and image options for both the handle and the rail, the same stylable rail and fill, and the same In, Set and Out connections, but it drags left to right. Use the pair to build matched vertical and horizontal faders over your own front panel artwork.

Widget Slider Horizontal Thumb

Inputs: In (sets the value), Set (sets the value without sending it out again), Appearance (JSON object to restyle the widget). Outputs: Out (the current value as a float), Position (only with Positions on: which stop the fader sits on, counted from 0), Hover (only with Hover Output on: true while the pointer is over the fader).


Widget ComboBox

A drop-down menu for your front panel: click it and a list of choices opens. You write the list of items yourself, and you can set how the text lines up and style the border and the little arrow. It sends out both the position of the chosen item in the list and its text. Ready-made item lists are included for common musical choices.

Widget ComboBox

ParameterRangeDefaultDescription
Items PresetCustom / Notes / MIDI Scales / Chord Types / Cycle / Waveforms / Filter Types / EQ Band TypesCustomLoads a predefined item list, or Custom to use your own. Filter Types and EQ Band Types match the Filter node's Mode and the Parametric EQ's band Type exactly, labels and order, so the ComboBox can drive them directly.
ItemstextItem 1, Item 2, Item 3The list of items. Separate entries with commas or line breaks.
Selected Index0 to item count0Index of the currently selected item.
Text Size (%)10 to 9040Text size as a percentage of the combo height.
Text AlignLeft / Centre / RightLeftHorizontal text alignment.
Text FontRegular / Medium / SemiBold / Bold / LightRegularFont weight of the combo text.
Popup Text Size (%)10 to 9040Popup text size as a percentage of the combo height.
Popup Item Height0 to 8035Height of each popup item. Use 0 for auto sizing.
Background / Text / Border / Arrow ColourcolourthemeColours of the body, text, border and drop-down arrow.
Border Width0 to 121Width of the combo border.
Corner Radius0 to 408Corner radius of the combo body.
Arrow Scale20 to 300100Scale of the drop-down arrow.
Tooltiptext(empty)Tooltip shown when hovering the widget.

Inputs: Select (selects an item by index or by item text), Items (replaces the item list), Appearance (JSON object to change appearance and items). Outputs: Index (the selected item index), Text (the selected item text).


Widget Radio Group

A row or column of clickable buttons that act as one group. The Selection Mode decides how clicking behaves: Single (only one can be on at a time, like old car-radio buttons), Multi (turn on any combination, or none at all) or Multi (min 1) (any combination, but at least one always stays on). It sends out the position of the button you clicked most recently and its label.

Widget Radio Group

ParameterRangeDefaultDescription
Selection ModeSingle / Multi / Multi (min 1)SingleHow clicks behave: radio, free multi-select, or multi-select with at least one on.
ItemstextOption 1, Option 2, Option 3The list of segment labels. Separate entries with commas or line breaks.
Selected Index0 to item count0Index of the active (or most-recently-clicked) segment.
OrientationHorizontal / VerticalHorizontalLayout direction of the segments.
Gap0 to 306Gap between segments.
Text Size8 to 4214Segment text size.
Text FontRegular / Medium / SemiBold / Bold / LightSemiBoldFont weight of the segment labels.
Corner Radius0 to 10012Corner radius of each segment.
Face / Active / Hover Colourcolour(preset)Background of unselected segments, the selected segment, and the hover tint.
Text / Active Text / Border Colourcolour(preset)Text colour of unselected and selected segments, and the segment outline.
Tooltiptext(empty)Tooltip shown on hover.

Inputs: Select (selects an item by index or by text), Items (replaces the item list), Appearance (JSON object to change appearance and items). Outputs: Index (the selected segment index; the most-recently-clicked one in Multi modes), Text (the selected segment text).


Widget Knob

A round knob for your front panel that you turn to send out a smoothly changing number between your chosen lowest and highest values (Min and Max). You can style almost everything about it: the shape of the arc it sweeps, the pointer style, a centre dot, the background, the outline, the tick marks and the value readout. It can grow from one end (unipolar) or from the middle outwards (bipolar), which is handy for things that go both ways, like pan or pitch.

Widget Knob

ParameterRangeDefaultDescription
Value0 to 10Current knob value.
Minunbounded0Lower bound for the knob value range.
Maxunbounded1Upper bound for the knob value range.
Defaultunbounded0Default value used for reset and double-click.
Incrementunbounded0Optional snap step. 0 means continuous. The mouse wheel always moves at least 1% of the range per notch, so a very fine increment still snaps the value without making the wheel feel dead. Anything below 0.000001 is treated as 0. The readout shows as many decimals as the increment needs, so a step of 0.001 reads three places and a step of 0.0001 reads four.
Drag DirectionVertical / Horizontal / RotaryVerticalDrag gesture used to turn the knob.
Endlesson / offoffLets the knob run past its ends: keep turning up from the top and it carries on from the bottom, the way the selector on a rack unit does. Set Sweep Angle to 360 as well and there is no seam to see either.
Spring BackOff / Centre / Minimum / Maximum / DefaultOffWhere it goes when you let go, like a pitch or mod wheel. Off leaves it where you put it. Centre is the middle of the range, whatever the range is, so a control set to -1 to 1 comes back to zero.
Spring Time0 to 2,000 ms0 msHow long the return takes. 0 snaps back the instant you let go.
Hover OutputOn / OffOffAdds a Hover output to the node: true while the pointer, or a finger on a touch screen, is over the widget, and false when it leaves. Use it to light something placed under the widget, or to switch an effect on while the control is touched.
Base Imagesvg / png / jpg(empty)A picture drawn as the body of the knob. It stays still.
Base Image Size10 to 200100Base image size as a percentage of the knob body. Above 100 it spills past the arcs.
Cap Imagesvg / png / jpg(empty)A picture drawn on top and turned with the value, like the cap of a real knob.
Cap Image Size10 to 200100Cap image size as a percentage of the knob body.
Cap Image Angle-360 to 360 deg0Turns the cap image before the value turns it, so a picture drawn facing some other way starts where it should.
Start Angle0 to 360 deg225Start angle of the rotary arc.
Sweep Angle10 to 360 deg270Total arc span of the knob.
Bipolaron / offoffDraws the fill from the centre instead of from the start.
Thumb StyleNone / Dot / LineDotSelects no thumb, a dot, or a radial line indicator.
Show Centre Doton / offoffDraws a dot in the middle of the knob.
Show Backgroundon / offonDraws a circular background behind the knob.
Show Outlineon / offoffDraws an outline around the background.
Show Tickson / offoffDraws tick marks along the arc.
Tick ShapeLines / DotsLinesLines, or dots. A dot sits where its line would run and is as wide as the line is long, so Tick Length sizes both.
Tick Count2 to 20011Number of tick marks.
Show Valueon / offonShows or hides the value text.
Text Size8 to 4811Font size of the value text.
Display ModeFloat / Integer / NoteFloatFormats the displayed value.

Endless is for the knob that picks one of a list. Turned on, the value wraps instead of pressing against the end: past the last item and you are back at the first, which is what a rack unit's selector does and what a hardware encoder does. It works on a continuous range too, where it becomes a control with no ends at all, and it is worth pairing with a Sweep Angle of 360 so the arc has no gap for the value to jump across. Off by default, because a level or a mix wants to stop where it stops.

Two pictures rather than one, and the difference between them is the point. The base is the body of the knob and stays where it is; the cap is the part you would grip on a real one, so it turns with the value. Draw the cap pointing up, which is where the arc starts, and the mark on it lands exactly where the dot or the line would. If it was drawn facing some other way, or the arc does not start where the artwork expects, Cap Image Angle turns the picture before the value turns it, so it starts where it should. The base sits over the background fill and under the track, the fill and the ticks, so a transparent PNG is tinted by the background colour and the arc still reads on top of the face. Both are collected with the preset when you export a bundle.

Inputs: In (sets the knob value, clamped to range and snapped to the increment), Appearance (JSON object to restyle the widget). Outputs: Out (the current knob value as a float), Position (only with Positions on: which stop the knob sits on, counted from 0), Hover (only with Hover Output on: true while the pointer is over the knob).


Widget Text

A text label for your front panel. Use it to show fixed words, or to display a live value coming from anywhere in your patch. You can choose the font, the weight, how the text lines up, the colour, the spacing around it, a border, and the direction it reads (including sideways and stacked top-to-bottom).

Widget Text

ParameterRangeDefaultDescription
Text Size8 to 12018Base font size in pixels.
DecimalsAs Is / 0 to 6As IsHow many decimals to show when a NUMBER arrives. As Is prints it in full. Text is never touched.
Font StyleRegular / Medium / SemiBold / Bold / Light (+ italics)SemiBoldFont weight and italic style for the label.
Underlineon / offoffDraws the text underlined.
Justification9-way (Top Left to Bottom Right)CentreText alignment inside the widget.
OrientationHorizontal / Vertical (up) / Vertical (down) / StackedHorizontalText orientation. Stacked draws one letter per row, unrotated.
Scrollableon / offoffKeeps the text at its set size and adds a scrollbar for whatever does not fit. Horizontal orientation only.
Scrollbar Width2 to 248Thickness of the scrollbar.
Scrollbar ColourcolourthemeColour of the scrollbar. The track is the same colour, faded.
Padding0 to 8010Inner padding around the text area.
Text ColourcolourthemeColour of the text.
Background ColourcolourtransparentBackground fill colour.
Border ColourcolourthemeBorder colour.
Border Width0 to 120Stroke width of the optional border.
Tooltiptext(empty)Tooltip shown when hovering the widget.

Showing a rounded value. A number arriving on the Text input is turned into a string, and by default that string carries every decimal it has: a meter reading -2.6834717 shows all of it. Set Decimals to 2 and it reads -2.68. It only touches values that arrive as numbers, so a label showing words stays exactly as you typed it, and Text Out sends the same string you can see. (Asked for on the forum by OctaFuzZ.)

Inputs: Text (updates the displayed text; non-text values are converted to a readable string), Appearance (JSON object to restyle the widget). Outputs: Text Out (fires when the user edits the text, and re-sends the current text when an event arrives on the Text input).

Long text: turn on Scrollable

Normally the label shrinks its text until the whole thing fits the widget. That is what you want for a heading and useless for a paragraph: a page of text ends up unreadably small.

Turn on Scrollable and the widget becomes a reading box instead. The text keeps the size you set, wraps to the width, and anything past the bottom is reached with the scrollbar on the right or the mouse wheel. Drag the bar, or click above and below it to jump a page at a time.

This is what makes the Widget Text usable as the help page of something you built: write your instructions once, size the box to your panel, and let the reader scroll. Pair it with a Widget Button and an Appearance Changer set to Visible, and the help opens and closes like a window.

Scrolling is live whenever the panel is not in edit mode, so it works in Perform and on a locked widget. While you are moving or resizing the widget the panel keeps the mouse, the same as every other widget.


Widget XY Pad

A flat pad you drag around in two directions at once. Moving the handle sets an X value (left to right) and a Y value (up and down) at the same time, each with its own range, so you can control two things with one gesture. The node also tells the patch when the pointer is hovering over the pad and when the mouse is pressed or released.

Widget XY Pad

ParameterRangeDefaultDescription
X(Min X to Max X)0.5Current X value.
Y(Min Y to Max Y)0.5Current Y value.
Min X / Max X-1000 to 10000 / 1Bounds of the X range.
Min Y / Max Y-1000 to 10000 / 1Bounds of the Y range.
Default X / Default Y(within range)0.5Default X and Y values.
Increment X / Increment Y0 to 10000Optional snap step per axis. 0 is continuous.
Spring BackOff / Centre / Minimum / Maximum / DefaultOffWhere the handle goes when you let go, like a joystick. Both axes move together. Centre is the middle of each range, so a pad set to -1 to 1 comes back to zero.
Spring Time0 to 2,000 ms0 msHow long the return takes. 0 snaps back the instant you let go.
Pad / Accent / Handle Colourcolour(preset)Pad surface, accent guides, and draggable handle.
Border / Crosshair / Text Colourcolour(preset)Border, X/Y guide lines, and readout text.
Show Texton / offonShows the current X/Y values.
Text FontRegular / Medium / SemiBold / Bold / LightSemiBoldFont weight of the X/Y readout.
Handle Size ModePixels, % of Pad% of PadWhat Handle Size counts in. Proportional keeps the handle the same size relative to the pad however big you make it; Pixels pins it to a fixed size.
Handle Size4 to 606Size of the draggable handle, in pixels or as a percentage of the pad's shorter side.
Corner Radius0 to 10018Corner radius of the pad body.
Border Width0 to 1001Border width of the pad body.
Pad Imagefile(empty)A PNG, JPG or SVG drawn over the pad surface. Empty leaves the painted surface alone.
Pad Image FitContain, Cover, Stretch, OriginalStretchHow the picture is laid into the pad. Stretch fills it exactly at any size; Cover and Contain keep the aspect.
Pad Image Opacity0 to 100100How solid the pad image is over the surface underneath.
Handle Imagefile(empty)A PNG, JPG or SVG that replaces the drawn handle. Empty draws the handle. Loading one onto a pad whose Handle Size has not been touched sets the mode to % of Pad and the size to 8, because a picture needs more room than the dot it is replacing.
Handle Image Size10 to 400100Size of the handle image as a percentage of the handle box. Over 100 it spills past it.
Handle Image Opacity0 to 100100How solid the handle image is.
Tooltiptext(empty)Tooltip shown when the pad is hovered.

Fit decides how the picture meets the pad, and only one of the four fills it exactly: Stretch, the default, takes the picture to the pad's own width and height, so there is never a gap at the edges and never a piece pushed out of frame, whatever size you drag the widget to. The price is the aspect: a square picture on a wide pad comes out wide. Cover and Contain keep the aspect instead and pay for it at one end, Cover by pushing the overflow past the edge (the corner radius crops it) and Contain by leaving the surface showing around it. Original draws it at its own pixel size, centred.

Both pictures sit in the layers you would expect: the pad image goes over the surface and its gradient but under the guides, the handle and the readout, so nothing you need to read gets buried, and the corner radius crops it. The handle image replaces the whole drawn puck, halo included, and is centred on the exact point the drag reports, so a pointer baked into the artwork lands where the value is. Both are collected with the preset when you export a bundle, so the patch still looks right on somebody else's machine.

Inputs: X In (sets X), Y In (sets Y), Appearance (JSON object to restyle the widget).

Outputs:

PinTypeDescription
X OutFloatThe current X value.
Y OutFloatThe current Y value.
HoverBoolHigh while the pointer is over the pad.
Mouse DownEventFires when the pointer goes down on the pad.
Mouse UpEventFires when the pointer is released.

Widget Image

Shows a picture (PNG, JPG or SVG) both in your patch and on the front panel. You can drop a file straight onto it, choose how the picture fits the space or have it tile to fill, rotate it, make it more or less see-through, and frame it with a background and a border.

Widget Image

ParameterRangeDefaultDescription
Filepng / jpg / jpeg / svg(empty)Path of the image to display. Drop a file or connect a text source.
Intercepts Clickson / offonWhen the panel is locked, the image either captures clicks or lets them pass through.
Fit ModeContain / Cover / Stretch / OriginalContainHow the image is fitted inside the widget.
RepeatNone / Repeat X / Repeat Y / Repeat BothNoneTiles the image across the widget.
Scale %1 to 300100Scales the image inside its area.
Alpha0 to 11Image opacity.
Rotation0 to 3600Rotates the image in degrees.
Render QualityLow / Medium / HighMediumImage resampling quality.
Background ColourcolourtransparentBackground fill behind the image.
Border Colourcolour(preset)Border colour.
Border Width0 to 120Width of the border.
Corner Radius0 to 1000Corner radius of the widget.

Inputs: File (sets the image path), Appearance (JSON object to restyle the widget). Outputs: none.


Widget Film Strip

Shows a single frame picked from one long picture made of many small frames stacked together (a sprite sheet). This is the classic way to build your own custom knob look from a set of ready-made frames: as the incoming value changes, the displayed frame changes, so the knob appears to turn. The frames can be stacked vertically or laid out horizontally, and the widget can behave as a slider, an on/off toggle, or a press-and-hold button.

Widget Film Strip

ParameterRangeDefaultDescription
Value0 to 10Value that selects which frame is shown.
Minunbounded0Lower bound of the value range.
Maxunbounded1Upper bound of the value range.
Filepng / jpg / jpeg(empty)Path of the sprite-sheet image.
OrientationVertical / HorizontalVerticalHow the frames are laid out in the strip.
Frame Count1 to 1024128Number of frames in the strip.
Render QualityLow / Medium / HighMediumImage resampling quality.
ModeSlider / Toggle / Button / DisplaySliderInteraction style of the widget.
Animateon / offoffToggle and Button only. The picture travels the frames between the two ends instead of cutting straight to the other one.
Animation Time10 to 2,000 ms150 msHow long that travel takes.
Wrapon / offoffSlider and Display only. Past the last frame the strip goes round to the first: dragging turns like an endless dial, and a value fed into In that leaves the range wraps round it instead of stopping at an end. For a sheet drawn as a full turn, whose last frame leads back into its first.
Drag DirectionVertical / HorizontalVerticalDrag gesture used in Slider mode.
Spring BackOff / Centre / Minimum / Maximum / DefaultOffSlider mode only. Where it goes when you let go, like a pitch or mod wheel. Button mode already returns on release, which is what being a button means.
Spring Time0 to 2,000 ms0 msHow long the return takes. 0 snaps back the instant you let go.
Hover OutputOn / OffOffAdds a Hover output to the node: true while the pointer, or a finger on a touch screen, is over the widget, and false when it leaves. Use it to light something placed under the widget, or to switch an effect on while the control is touched.

Dropping a picture onto the graph offers Load As Widget Filmstrip, which creates the node with the image already loaded. MNodes reads the strip's layout off the picture: frames are square in almost every strip, so the long side divided by the short one gives the frame count and the long side says whether the strip runs down or across. When the division does not come out to a whole number the frames are not square, so nothing is guessed and Frame Count keeps its default for you to type in (the node arrives selected, with that field in the Inspector).

In Toggle and Button, Animate makes the strip play through the frames between off and on rather than cutting between them, which is what a strip drawn as a movement (a switch throwing, a lamp warming up) is for. Only the picture travels: the value changes the instant you click, so nothing the widget feeds is held back by the animation, and pressing again mid-travel turns it around from wherever it had got to. Both rows grey out in Slider, which is already showing every frame under your finger, and in Display, which has nothing to press.

Inputs: In (sets the value, clamped to the range, or taken round it with Wrap on). Outputs: Out (the current value as a float), Hover (only with Hover Output on: true while the pointer is over the strip).


Polygon Shadow

A soft drop shadow in the shape of a many-sided figure. It stores its blurred shape so it can redraw cheaply without slowing things down. Place it behind other widgets to give them a sense of depth. It has no fill or border of its own, just the shadow.

It takes no picture either, and that is why: the whole widget is an outline blurred into a soft patch, so there is no face for a picture to sit on. To put a shadow under an image, give the image to a Shape and park one of these behind it.

Polygon Shadow

ParameterRangeDefaultDescription
Shadow Colourcolourblack 55%Colour and alpha of the cached shadow.
Blur Radius0 to 6418Blur radius in pixels.
Offset X-120 to 1200Horizontal shadow offset in pixels.
Offset Y-120 to 1200Vertical shadow offset in pixels.
Spread X0 to 10075Shadow width as a percentage of the component.
Spread Y0 to 10075Shadow height as a percentage of the component.
Reduce0 to 1000Shrinks the rendered shape inward.
Corner Radius0 to 10016Rounds the corners of the shadow shape.
Rotation0 to 36045Rotates the shape in degrees.
Corners3 to 124Number of polygon corners.

Inputs: Appearance (JSON object to restyle the widget). Outputs: none.


Square Shape

A simple square you can use to decorate your panel, with its own fill, border and rounded corners. Every part of its look, including a gradient fill or border (a smooth blend between two colours), can also be set from the Appearance style input.

Square Shape

ParameterRangeDefaultDescription
Fill ModeSolid / Linear / RadialSolidFill paint mode.
Fill Colourcolour(preset)Solid fill colour (or gradient endpoints in gradient modes).
Border ModeSolid / Linear / RadialSolidBorder paint mode.
Border Colourcolour(preset)Solid border colour.
Border Width0 to 402Stroke width in pixels.
Corner Radius0 to 10016Rounded corner amount.
Reduce0 to 1000Shrinks the rendered shape inward.
Rotation0 to 3600Rotates the shape in degrees.

Inputs: Appearance (JSON object to restyle the widget). Outputs: none.


Rectangle Shape

A simple rectangle for decorating your panel, with its own fill, border and rounded corners. Like the other shapes, you can completely change how it looks from the Appearance style input.

Rectangle Shape

ParameterRangeDefaultDescription
Fill ModeSolid / Linear / RadialSolidFill paint mode.
Fill Colourcolour(preset)Solid fill colour (or gradient endpoints in gradient modes).
Border ModeSolid / Linear / RadialSolidBorder paint mode.
Border Colourcolour(preset)Solid border colour.
Border Width0 to 402Stroke width in pixels.
Corner Radius0 to 10016Rounded corner amount.
Reduce0 to 1000Shrinks the rendered shape inward.
Rotation0 to 3600Rotates the shape in degrees.

Inputs: Appearance (JSON object to restyle the widget). Outputs: none.


Circle Shape

A simple circle for decorating your panel, with its own fill and border. You can set a solid colour or a gradient (a smooth blend between two colours), either in the inspector panel or by feeding the Appearance style input.

Circle Shape

ParameterRangeDefaultDescription
Fill ModeSolid / Linear / RadialSolidFill paint mode.
Fill Colourcolour(preset)Solid fill colour (or gradient endpoints in gradient modes).
Border ModeSolid / Linear / RadialSolidBorder paint mode.
Border Colourcolour(preset)Solid border colour.
Border Width0 to 402Stroke width in pixels.
Reduce0 to 1000Shrinks the rendered shape inward.
Rotation0 to 3600Rotates the shape in degrees.

Inputs: Appearance (JSON object to restyle the widget). Outputs: none.


Triangle Shape

A simple triangle for decorating your panel, with its own fill, border and rounded corners. You can completely restyle it from the Appearance style input.

Triangle Shape

ParameterRangeDefaultDescription
Fill ModeSolid / Linear / RadialSolidFill paint mode.
Fill Colourcolour(preset)Solid fill colour (or gradient endpoints in gradient modes).
Border ModeSolid / Linear / RadialSolidBorder paint mode.
Border Colourcolour(preset)Solid border colour.
Border Width0 to 402Stroke width in pixels.
Corner Radius0 to 10016Rounded corner amount.
Reduce0 to 1000Shrinks the rendered shape inward.
Rotation0 to 3600Rotates the shape in degrees.

Inputs: Appearance (JSON object to restyle the widget). Outputs: none.


Polygon Shape

A many-sided shape for decorating your panel, where you choose how many corners it has, plus its own fill, border and rounded corners. Set the number of corners to make anything from a triangle up to a twelve-sided figure.

Polygon Shape

ParameterRangeDefaultDescription
Fill ModeSolid / Linear / RadialSolidFill paint mode.
Fill Colourcolour(preset)Solid fill colour (or gradient endpoints in gradient modes).
Border ModeSolid / Linear / RadialSolidBorder paint mode.
Border Colourcolour(preset)Solid border colour.
Border Width0 to 402Stroke width in pixels.
Corner Radius0 to 10016Rounded corner amount.
Corners3 to 126Number of polygon corners.
Reduce0 to 1000Shrinks the rendered shape inward.
Rotation0 to 3600Rotates the shape in degrees.

Inputs: Appearance (JSON object to restyle the widget). Outputs: none.


Line Shape

A straight line for decorating your panel, with its own thickness, rotation and end points. Choose Horizontal, Vertical, or Custom (where you set both ends yourself), and for the Horizontal and Vertical options you can pull both ends in evenly with an inset.

Line Shape

ParameterRangeDefaultDescription
Border ModeSolid / Linear / RadialSolidStroke paint mode.
Border Colourcolour(preset)Stroke colour.
Border Width0 to 402Stroke width in pixels.
OrientationHorizontal / Vertical / CustomHorizontalLine orientation. Custom uses the Start/End points.
Inset0 to 500Symmetric inset for Horizontal and Vertical orientations. 0 is edge to edge.
Start X / Start Y0 to 10015 / 50Line start point as a percentage of width/height (Custom).
End X / End Y0 to 10085 / 50Line end point as a percentage of width/height (Custom).
Reduce0 to 1000Shrinks the rendered shape inward.
Rotation0 to 3600Rotates the shape in degrees.

Inputs: Appearance (JSON object to restyle the widget). Outputs: none.


Arc Shape

A curved line (part of a circle) for decorating your panel, with its own thickness and adjustable start and length. Handy for rings, gauge-style markings and decorative curves.

Arc Shape

ParameterRangeDefaultDescription
Border ModeSolid / Linear / RadialSolidStroke paint mode.
Border Colourcolour(preset)Stroke colour.
Stroke Width0 to 402Stroke width in pixels.
Start Angle-360 to 360-90Arc start angle in degrees.
Sweep Angle-360 to 360270Arc sweep angle in degrees.
Reduce0 to 1000Shrinks the rendered shape inward.
Rotation0 to 3600Rotates the shape in degrees.

Inputs: Appearance (JSON object to restyle the widget). Outputs: none.


Widget Button

A press-and-hold button for your front panel. It stays on only while you hold it down and sends out a click signal, plus separate outputs for when the mouse goes down, when it comes back up, and when the pointer is hovering over it, so you can build richer reactions. You can give it a label, set different pictures for its up and pressed states, and fully restyle it.

Widget Button

ParameterRangeDefaultDescription
Label Off / Label OntextButton / PressedText shown while the button is up and while it is pressed.
Trigger On Mouse Downon / offoffFires the click as soon as the mouse goes down instead of on release.
Show Texton / offonShows the text label over any button image.
Image Up / Image Downsvg / png / jpg(empty)Images used while the button is up and down.
Face / Active / Hover / Disabled Colourcolour(preset)Face colours for the idle, active, hover and disabled states.
Text / Border / Shadow Colourcolour(preset)Label, outline and shadow colours.
Text Size8 to 4214Label font size.
Corner Radius0 to 10014Corner radius of the button body.
Border Width0 to 1001Outline thickness.
Tooltiptext(empty)Tooltip shown on hover.

Inputs: Trigger (fires the button from the graph), Appearance (JSON object to restyle the widget).

Outputs:

PinTypeDescription
HoverBoolHigh while the pointer is over the button.
Mouse DownEventFires when the pointer goes down.
Mouse UpEventFires when the pointer is released.
EventEventFires a click (on press or release, per Trigger On Mouse Down).

Widget Toggle

A button with state for your front panel, and Mode decides what pressing it means. Toggle latches: click once to turn it on and it stays on, click again to turn it off. Momentary is high only while you hold it, like a key. Hybrid is both, which is what saves placing two buttons: a quick tap latches, and a press held past Hold Time behaves as a momentary and lets go when you do. It sends out its current state in every mode, plus dedicated signals every time it flips: one for any change, one when it turns on, and one when it turns off. You can set different labels and pictures for the off and on states. Look decides its shape without touching any of that: Button fills the widget with the face and puts the label inside it, and Checkbox shrinks that same face to a square with a tick and moves the label out beside it, which is the shape a settings panel is made of. Every colour, border, image and pin means the same thing in both.

Widget Toggle

ParameterRangeDefaultDescription
Stateon / offoffCurrent toggle state.
ModeToggle / Momentary / HybridToggleWhat pressing it means. Toggle latches, Momentary is high only while held, Hybrid latches on a tap and acts momentary on a held press.
LookButton / CheckboxButtonIts shape. Button fills the widget with the face; Checkbox makes the face a square with a tick and puts the label beside it.
Hold Time100 to 2,000 ms400 msHybrid only. How long a press has to last before it counts as held rather than tapped.
Label Off / Label OntextOff / OnText shown while the toggle is off and on.
Trigger On Mouse Downon / offoffFlips the toggle on mouse down instead of on release.
Show Texton / offonShows the text label over any image.
Image Off / Image Onsvg / png / jpg(empty)Images used while the toggle is off and on.
Face / Active / Hover / Disabled Colourcolour(preset)Face colours for the idle, active, hover and disabled states.
Text / Border / Shadow Colourcolour(preset)Label, outline and shadow colours.
Text Size8 to 4214Label font size.
Corner Radius0 to 10014Corner radius of the toggle body.
Border Width0 to 1001Outline thickness.
Tooltiptext(empty)Tooltip shown on hover.

Mode travels on the Appearance input, so one Appearance Changer switches a whole rack of these at once rather than one at a time in the Inspector.

Inputs: State In (sets the state from the graph), Appearance (JSON object to restyle the widget).

Outputs:

PinTypeDescription
StateBoolThe current toggle state.
HoverBoolHigh while the pointer is over the toggle.
Mouse DownEventFires when the pointer goes down.
Mouse UpEventFires when the pointer is released.
ChangedEventFires on every state flip.
OnEventFires when the toggle turns on.
OffEventFires when the toggle turns off.

MIDI Drag Exporter

Turns an incoming musical pattern or MIDI file into a real MIDI file you can drag straight onto the timeline in your music software (your DAW). Feed it either a MIDI File Descriptor or a raw pattern, then drag from the body of the widget into your DAW to drop a finished, ready-to-use .mid file. (MIDI is the standard way of describing notes and timing, separate from the actual sound.)

The look is yours to shape: the body fills its whole slot edge to edge, and the Appearance section of the inspector adds background and border colours, corner radius, an editable title, and toggles to hide the title and the status line. You can also drop in a background image (PNG, JPG or SVG) with contain, cover or stretch fitting and its own opacity, which turns the widget into a custom drag button for a finished panel. Everything travels with Copy/Paste Appearance and can be driven live as JSON through the Appearance pin.

MIDI Drag Exporter

Inputs: MIDI File In (a MIDI File Descriptor JSON, for example from Pattern To MIDI File, or a raw Pattern JSON, for example from MIDI Riff Generator; patterns are auto-converted to a temporary .mid file), Appearance (JSON restyle input). Outputs: none. The MIDI file leaves the node by dragging the widget body into your DAW.


Sampler

A complete sampler instrument with a visual editor where you lay your sounds out across a keyboard. Drag and drop audio files (WAV, AIFF, FLAC, MP3 or OGG) onto the on-screen piano keys to create zones. Each zone assigns one sample to a range of keys and has its own pitch, volume, pan, fade, looping, ADSR (how the sound swells and fades over time) and velocity (how hard you play) settings. Connect MIDI In to feed it notes, and connect the Sample View output to a Sample View widget to edit the selected zone's waveform. Right-click the strip to save the map to a file of its own or to load one; how a map is built, and how it travels with its samples, is on the Samplers page.

Sampler

This node offers a large set of settings for each zone, and every one of them has its own input pin so you can change it live while the music plays. The most useful ones are:

ParameterRangeDefaultDescription
Select by MIDIon / offonWhen on, incoming notes auto-select the matching zone.
Voices1 to 16(preset)Maximum number of simultaneous voices.
Glideon / offoffPortamento between notes (mono only).
Glide Time (ms)1 to 5000(preset)Glide time in milliseconds.
Bend Range0 to 48(preset)Pitch-bend range in semitones.
Link (Edit All)on / offoffApplies parameter edits to all zones at once.
Root Note / Low Note / High Note0 to 127(per zone)Original-pitch note and the zone's key range.
Low Vel / High Vel0 to 127(per zone)Velocity range that triggers the zone.
Transpose / Fine Tunesemitones / cents(per zone)Pitch offset of the zone.
Volume / Pan0 to 1 / -1 to 1(per zone)Output level and stereo position.
Gain (dB)-24 to +240A trim on top of Volume. Right-click a zone and Normalize sets it so the loudest point reaches full scale.
Attack / Decay / Sustain / Releaseseconds / level(per zone)ADSR envelope of the zone.
Loop / Loop Start / Loop End / Loop Crossfadeon-off / normalised / ms(per zone)Sample loop settings. Ping-Pong makes the loop go out and back instead of round and round.
One Shoton / offoffPlays the zone through to its end whatever the key does: note-off and the loop are ignored. For drum hits and sound effects.
Sample Start / Sample End0 to 1(per zone)Playback start and end inside the file.

Inputs: MIDI In (notes trigger the keyboard and pass through), Appearance (JSON appearance patch), plus a Data input pin per zone parameter listed above (Root Note, Low Note, High Note, Low Vel, High Vel, Transpose, Fine Tune, Volume, Gain, Pan, Attack, Decay, Sustain, Release, Fade In, Fade Out, Sample Start, Sample End, Loop Start, Loop End, Loop Xfade, Reverse, Fixed Vel, Loop On, Ping-Pong, One Shot, Link, Select MIDI, Voices, Glide, Glide Time, Bend Range).

Outputs:

PinTypeDescription
MIDI OutMIDIExternal MIDI plus keyboard-click events.
Sample ViewData (Text)The node id, for connecting to a Sample View.
Out LAudioLeft audio output.
Out RAudioRight audio output.

Sample View

A window for viewing and editing the shape of a sound (its waveform). Connect it to a Sampler and it draws the waveform of the selected zone, with markers you can drag to set the sample's start and end, its loop region and its fades. It also offers zoom, side-to-side scrolling, and a moving line that shows where playback currently is. The wave stands as tall as the zone's Gain makes it, so a normalized zone looks as loud as it sounds; right-click the wave for Normalize and Reset Gain on that zone.

Sample View

ParameterRangeDefaultDescription
Wave ColourcolourthemeColour of the waveform.
Wave Opacity0 to 10.75Opacity of the waveform fill.
Background Colourcolour(preset)Background fill behind the waveform.
Marker / Loop / Playhead / Fade Colourcolour(preset)Colours of the markers, loop region, playhead and fade curves.
Marker Width0.5 to 41.5Width of the marker lines.
Corner Radius0 to 1000Corner radius of the widget body.
Show Infoon / offonShows the info label.
Show Scrollbaron / offonShows the minimap scrollbar.
Show Fadeson / offonDraws the fade-in/out curves.
Show Playheadon / offonDraws the real-time playhead.

Inputs: Sampler (connect to a Sampler to display its zones), Appearance (JSON object to restyle the widget). Outputs: none.


Envelope View

A display that draws the envelope of another node. Connect its Envelope input to a Sampler's Amp Envelope output, or to an Envelope, Trig Envelope or AHD Envelope node, and it mirrors that envelope's shape live, complete with a moving playhead. It is more than a picture: drag its handles and you edit the connected envelope's settings from here. Drop it on the front panel to give your instrument a big, styled envelope display wherever you want one.

Envelope View

ParameterRangeDefaultDescription
Background / Curve / Fill Colourcolour(preset)Colours of the background, the envelope curve and the fill under it.
Fill ModeSolid / Linear / RadialLinearHow the area under the curve is painted, with Fill From and Fill To setting the gradient colours.
Grid / Handle / Frame Colourcolour(preset)Colours of the grid, the drag handles and the outer frame.
Text / Playhead Colourcolour(preset)Colours of the labels and the moving playhead.
Show Handleson / offonShows or hides the drag handles.
Show Labelson / offonShows or hides the text labels.

Inputs: Envelope (connect the envelope source to display), Appearance (JSON object to restyle the widget). Outputs: none.


Widget File Drop

A drop zone that accepts any file you drag onto it, whether in your patch or on the front panel, and sends out the full location (path) of that file. You can limit which file types it accepts with the Accept Extensions setting, and style its background, border, corners and text. It is a handy building block for patches that need to react to dropped samples, presets or images.

Widget File Drop

ParameterRangeDefaultDescription
LabeltextDROP FILE HEREText shown on the drop zone when no file is loaded.
Accept Extensionstext(any)Semicolon-separated list of accepted extensions (e.g. "wav;aiff;flac"). Empty accepts any file.
Show Filenameon / offonShows the filename on the widget after a file is dropped.
Background Colourcolour(preset)Background fill colour.
Border Colourcolour(preset)Border colour.
Border Width0 to 121.5Width of the border outline.
Corner Radius0 to 606Corner rounding radius in pixels.
Text Colourcolour(preset)Colour of the label and filename text.
Text Size8 to 4812Font size of the label and filename.

The Appearance input takes the whole list above, Label included, so an Appearance Changer can rewrite the caption of the drop zone while the patch runs.

Inputs: File In (sets the file path programmatically), Appearance (JSON object to restyle the widget). Outputs: File Out (the absolute path of the dropped or loaded file).


Preset Manager

The preset system of a device. A project built in MNodes and handed to other people had no way for them to keep a sound; this widget goes on the front panel like any other control and gives the device presets the way an instrument has them. A preset is what a person can change on the front panel: the values of the knobs, sliders, toggles, dropdowns and pads, including those on a Module's own panel, the cables patched between Jack In and Jack Out sockets, and on a Rack Canvas the modules it holds and where they sit. Loading a preset changes only what differs, so a module still on its rack stays as it is. What sits behind the panel is the creator's design and a preset never writes it. A preset saved with an earlier version of MNodes has no cables or racks in it and leaves them as they are. (The States node below is a different tool: a scene of the whole patch, made for morphing.)

Preset Manager

On the panel the widget is a strip: previous and next, the favourite star, the preset's name and category, Save, and a menu. Click the name to open the browser; the small arrow next to it opens a quick list grouped by category. Every part of the strip can be hidden in Appearance and replaced by your own buttons wired to the pins.

The browser shows the categories down the left (All, Favourites, then each category with its count, and New category at the bottom) and the presets on the right. Double-click loads. Right-click a preset to move it to a category, rename, delete or export it; right-click a category to rename or delete it, and its presets stay, without a category. Save as new opens the one dialog there is: a name, a category picked from the ones that exist or typed new, and in Edit mode a switch to store the preset in the project. The browser and its dialogs wear the strip's colours, so a device styled by its creator keeps its look there.

Whose presets are where. Presets stored in the project are the creator's factory presets and ship with the device. Presets saved in Perform mode are files, one per preset, in a folder named after the device under DevicePresets in the Library's Projects folder, so a Hub update of the project leaves them exactly where they were. The list shows both. Editing a factory preset in Perform makes it your copy; deleting the copy brings the original back.

Files. Presets are .mndevpreset files unless the creator sets File Extension, so a device can hand out presets that look like its own (.mysynth) rather than MNodes files. The device's name travels inside the file, never in the extension: a preset dropped on another device is refused, whatever it is called. Import takes a file, several, or a zip of them, from the menu or by dropping them on the strip; Export writes the preset showing, and Export all the whole bank as a zip. A preset that names files, a Sampler's zones say, leaves with them: the export is a zip under the same extension with the samples inside, and Import unpacks them into the device's folder and points the preset at the copies. Presets stored in the project are part of the device, so Collect All & Export packs their samples along with everything else.

ParameterRangeDefaultDescription
File ExtensiontextmndevpresetThe extension of the preset files this device writes and reads.
Show Arrows / Show Favourite / Show Save / Show Menu / Show CategoryOn / OffOnWhich parts of the strip are drawn. Hide one and wire the matching pin to a button of your own.
Text Size, Text Align, Font WeightThe strip's text, the same controls as the Widget ComboBox.
Text, Hover, Popup Text, Background, Border, Icon ColourcolourthemeThe strip's colours, solid or gradient, the same set as the Widget ComboBox. The browser takes its background, text and accent from them.
Corner Radius, Border WidthThe strip's shape.

Inputs: Recall (a number picks a preset by index, text picks one by name, an event reloads the one showing; an On Load wired in brings the device up in it), Save, Update, Rename, Prev, Next, Delete, Browse, Import, Export (triggers), Appearance (JSON to restyle the strip). Outputs: Index (the preset showing, as a number), Name (its name).


States

Saves and recalls snapshots of your whole patch. It captures the current value of every control as a named state, so you can build your own presets that live inside the patch and travel with it. Hit Save to store the current sound as a new state, then pick a state from the menu (or send an index into the Recall input) to flip back to it: the controls follow and the sound changes, just like loading a preset. Recall, Save, Update, Rename, Prev, Next and Delete sit on the node, each with a matching input pin so you can drive them from your own buttons or triggers. Recall reloads the state that is showing, which is how you get back to it after moving a few knobs. The menu carries the full Widget ComboBox appearance set and an Appearance input, so an Appearance Changer can restyle it live.

States also capture whether each front-panel widget is shown or hidden: recalling a state restores each widget's visibility, so one state can show one bank of controls and another state a different one. Everything else about the front panel itself (its layout, its look and where its widgets are) is left untouched.

States keep how the panel is patched too: the cables between Jack In and Jack Out sockets, and on each Rack Canvas the modules it holds and where they sit. Recalling a state puts them back and changes only what differs: a module still on its rack stays as it is, one that was taken off comes back, and one added since goes. Morphing between states with the State Morpher moves values only. When a recall brings modules back or takes them away, Undo starts over, as it does when you open a project. A state saved with an earlier version of MNodes has no cables or racks in it and leaves them alone.

To keep any control out of states, lock it with the inspector padlock: a locked parameter is neither captured on Save / Update nor overwritten on Recall (it is also skipped by randomize).

States

ParameterRangeDefaultDescription
State(the saved states)(none)The current state. Pick one from the menu to recall it.
Recall(button)-Reloads the state that is showing, so you can get back to it after moving controls around.
ScopeGlobal (all subgraphs) / This LevelGlobal (all subgraphs)What a state captures. Global snapshots the parameter values of every node in the patch, descending into every subgraph and module; This Level captures only the nodes at the States node's own graph level. Cables and racks come from the whole patch with Global, and from the States node's level and everything inside it with This Level.
Appearance setcolour / font / corner / etc.(preset)Full ComboBox look: text and popup colours, solid or gradient background and border, corner radius, fonts and arrow.

The Scope setting in the States node inspector

Inputs: Recall (a number selects and recalls a state by index; a trigger reloads the one already selected), Save, Update, Rename, Prev, Next, Delete (each an event/trigger), Appearance (JSON to restyle the menu). Outputs: Index (the current state number), Name (the current state name as text).


State Morpher

An X/Y pad that morphs between the states of a States node. Connect a States node's Morph output to the States input and the pad lays that node's states out as points. Drag the puck to blend between them: the closer the puck gets to a state, the more that state takes over, until sitting right on it recalls it exactly. You can also drag the state points themselves to rearrange the pad. The X and Y inputs accept values or CV, so an LFO, an envelope or automation can steer the morph for you. The puck's position also goes out of the X Out and Y Out pins as it moves, whoever is moving it, so a pair of sliders, a display or anything else on your panel can follow the morph live. Keep in mind that morphing states moves every control those states captured, so everything those controls feed follows along.

State Morpher

ParameterRangeDefaultDescription
X0 to 10.5Puck position across the pad.
Y0 to 10.5Puck position up and down the pad.
Lock Positionson / offoffFreezes the state points so a drag on the pad can't nudge them; the puck still moves.
Background / Border / Node / Line / Puck / Text Colourcolour(preset)Colours of the pad surface, its border, the state points, the connecting lines, the puck and the labels.
Corner Radius0 to 20(preset)Corner radius of the pad body.

Inputs: States (connect a States node's Morph output), X (moves the puck; a value or a CV stream), Y (moves the puck; a value or a CV stream), Lock (a value drives Lock Positions), Appearance (JSON object to restyle the widget). Outputs: X Out, Y Out (the live puck position, 0 to 1 on each axis, sent whenever it moves).


Text Input

A box you type into, in your patch or on the front panel, with a Send button. Type your text and press Enter, click away or press Send to emit it as a text message: handy for naming things, driving a Text display, or feeding any node that takes text. The box fills the whole widget, so its edges are the widget's edges when you line it up with other controls, and a single line of text sits on the same middle as the text on the Send button. You can style it fully.

Text Input

ParameterRangeDefaultDescription
Texttext(empty)The current text in the box.
PlaceholdertextType here...The faint hint shown while the box is empty.
Emit On Changeon / offonSends the text when you press Enter or click away. Off waits for the Send button or the Send input.
Multilineon / offoffLets the text run over several lines, starting at the top.
Keep Focuson / offoffOff, Enter lets the caret go, so the box stops blinking once you have used it. On, the caret stays after Enter, for typing one entry after another. Escape gives the edit up and a click anywhere else lets the caret go, either way
Background Colourcolour(preset)Background fill (solid or gradient).
Border Colourcolour(preset)Border colour.
Border Width0 to 120Width of the border outline.
Corner Radius0 to 406Corner rounding in pixels.
Padding0 to 608Room between the edge of the box and the text. When the box is too short for it, the top and bottom give way first, so the text is never cut off.
Text Colourcolour(preset)Colour of the typed text.
Text Size8 to 4816Size of the typed text.
Font WeightRegular / Medium / SemiBold / Bold / LightRegularWeight of the text in the box, including what is already typed.
JustificationLeft / Centre / RightLeftWhere the text sits across the box.
Show Send Buttonon / offonShows the Send button at the right of the box.
Send LabeltextSendThe text on the Send button.
Button Colourcolour(preset)Colour of the Send button.
Button Width0 to 2400 (auto)Width of the Send button in pixels.
Button Text SizeAuto, 6 to 48AutoSize of the text on the Send button. Auto follows Text Size and makes it smaller when the button is too short. Set a size to fit a long word. A label of several words wraps when the button has room for two lines.
Show Labelon / offoffA name label above, below or beside the box, the same one the Knob, the Slider and the ComboBox have. Its text, position, colour, size, gap and offsets are in the Label group.

Inputs: Text In (sets the text), Send (sends the current text again), Set (sets the text without sending it), Appearance (JSON to restyle the widget). Outputs: Text Out (the text, sent when you finish typing or press Send).


Jack In

A socket on the front panel that a patch cable arrives at. Take its output into the patch and whatever is plugged in on the panel turns up here.

Jack In

Needs: a Jack In node in the graph with its Out pin wired into a filter's cutoff, and the same jack on the Front Panel with a cable plugged in.

The cable somebody plugs on the front panel is not a picture of a connection, it is the connection: the same edge you would have drawn in the graph. Wiring this node's Cable pin to a Jack Out's Cable pin in the graph and plugging the cable on the panel do exactly the same thing, so a panel can be repatched by hand while the patch stays a patch. A States node and a Preset Manager preset remember which sockets are joined and put the cables back when they are recalled.

A Jack In takes one cable: a new cable let go on it takes the place of the one it had. Drag from a Jack In that has a cable to move that cable to another Jack In, or let go away from the sockets to pull it out. Right-click it to disconnect. On the Front Panel, cables are plugged while the panel is locked, and on a Rack Canvas at any time. Everything about plugging, moving, seeing and hiding cables is in Patch Cables.

ParameterRangeDefaultDescription
TypeAudio, CV, MIDI, DataAudioWhat the socket carries. Only sockets of the same type can be joined, and changing it pulls out the cables that no longer fit.
Normalled CVon / offoffFor a jack set to CV. While nothing is plugged in, the jack sends the Normal value instead of silence, like a normalled input on a hardware module. A cable plugged in takes over.
Normalany value0The value sent while Normalled CV is on and nothing is plugged in. It is also a pin on the node while Normalled CV is on.

Appearance (in the Inspector):

SettingRangeDefaultDescription
Visibleon / offonShows or hides the jack on the panel.
Body Colourcolourdark greyThe round body of the socket.
Ring ColourcolourunsetThe ring around the hole. Unset wears the theme's wire colour for the jack's type.
Ring Width0 to 123Thickness of the ring, in pixels. 0 removes it.
Hole Colourcolournear blackThe hole in the middle.
Hole Size0 to 100 %46Size of the hole, as a share of the jack.
Hole ImagePNG, JPEG or SVGnoneA picture drawn in the hole instead of the plain circle. Draw the body and the ring as nothing and the picture is the socket.
Hole Image FitFit / Fill / StretchFitFit keeps the whole picture inside the hole, Fill crops it to cover the hole, Stretch fills the hole ignoring the picture's proportions.
Cable Colour Audio / CV / MIDI / DatacolourunsetThe colour of a cable of that type. A plugged cable takes the colour of the Jack Out it leaves, so on a Jack In these colour only a cable you drag out from here. Unset follows the theme's wire colour for that type.
Show Labelon / offonShows the caption.
Label TexttextInThe caption's words. Left empty it reads In.
PositionAbove / Below / Left / RightAboveWhere the caption sits around the socket.
Label ColourcolourunsetThe caption's colour. Unset follows the theme.
Label Size6 to 4812The caption's size.
Label Gap0 to 1004Space between the caption and the socket.
Label Offset X / Y-300 to 3000Moves the caption from where Position puts it.
Font Familyfontsapp fontThe caption's font, as on other widgets.
Tooltiptext and settingsnoneThe tooltip shown when the mouse rests on the jack, as on other widgets.

Inputs: Cable (the panel side), Type, Normal (Data, while Normalled CV is on), Appearance (Data).

Outputs: Out (whatever arrived through the cable).


Jack Out

A socket on the front panel that a patch cable leaves from. Wire into its input whatever the panel should be able to patch from.

Jack Out

Needs: a Jack Out node in the graph with an LFO wired into its In pin, and the same jack on the Front Panel with two cables leaving it.

The other half of Jack In, and it works the same way in both directions: plug on the panel or wire in the graph, it is one connection either way. A Jack Out can feed as many cables as you like: drag from it once for each. Right-click it to disconnect its cables. The cables leaving it take its cable colour for their type. Everything about patch cables is in Patch Cables.

ParameterRangeDefaultDescription
TypeAudio, CV, MIDI, DataAudioWhat the socket offers. Only sockets of the same type can be joined, and changing it pulls out the cables that no longer fit.

Appearance (in the Inspector): the same settings as Jack In. Here Cable Colour Audio / CV / MIDI / Data colour every cable that leaves this jack, and the caption reads Out when Label Text is empty.

Inputs: In (what this socket offers), Type, Appearance (Data).

Outputs: Cable (the panel side).

MNodes Documentation