HISE Docs

Scriptnode Editor

The editor for scriptnode is trying to use the same principles as the interface designer, with a list on the left, a main canvas and a property editor on the right.

The Node List

This will show a list of all nodes that are currently used in the network as well as the nodes that have been created but removed from the current processing chain: if you delete nodes, they will be kept around and can be easily reinserted later. If you click on a node, it will fold all other nodes and zoom on the selection (you can select multiple nodes by holding down the command modifier). This might be an effective way of navigating big networks where you need to focus on certain parts.

The DSP Network graph

The main interface with scriptnode. This will show a two dimensional graph of the network tree with multiple elements:

You can add / remove nodes, drag them around and change parameters. For a complete reference and description of each node, take a look at the Scriptnode Node List .

Clicking anywhere in a container will open the node creation popup:

You can either type in the node, or filter the node list using the factory tags, which group the nodes into categories. Once you've selected a node, it will show a screen shot with a description.;

Pressing the help button (or F1) when you've selected a node will open the browser with the node documenation

Toolbar

The toolbar contains a selection of various function / helper tools that you will need during the development of scriptnode networks:

Icon Shortcut Description
Toggles between the compiled and interpreted version of the network.
Ctrl+Backspace Shows the entire network graph.
Bookmark Allows to switch between multiple bookmarks (selection of visible nodes).
Folds all unselected nodes. Select a few nodes, then click this button and it will hide all other nodes helping you focussing on the selection.
This will swap the layout dimension of chain nodes. By default chain nodes are displayed vertically, but it might be better for the visual density of the network graph to display child nodes horizontally.
This button will be enabled if there is a runtime error in the DSP graph. Clicking on it will select the faulty node. It will reevaluate the error when you drag or delete nodes.
C This will toggle the display of the hanging cables. For complex networks those might be cluttering the visuals so enabling this will clear the view on the underlying modules.
This will enter the parameter probe mode which can be used to enter multiple parameter values at once. Enable it, then click on each knob you want to change. Click again and it will open a JSON editor where you can manually enter parameter values for each node when pressing the Apply button.
Enables the signal visualisation in the cables. Clicking this will show the amplitude of each channel peak in the network.
Shows a popup with all DSP network parameters. This mirrors the top row in the network, but if you're working in a big patch, this might not be visible so this is a handy way of controlling the meta parameters at all time.
Shows a context menu that helps you wrap the node selection into specific container types.
Applies a random colour to the node selection. Use this feature to visually group nodes.
Toggles the profile mode. If enabled, this will show the CPU usage of each node so you can easily spot CPU hogs.
Ctrl+Z Undo the last scriptnode operation (dragging nodes, changing properties, adding parameters, etc).
Ctrl+Y Redo the last scriptnode operation (dragging nodes, changing properties, adding parameters, etc).
Saves the current network as XML file.
Unloads the current network and shows the scriptnode title screen.
Shows the properties popup of the selected node (or the network if nothing is selected).

Node Properties

This will show the properties of the current selection of nodes so you can edit multiple properties at once.

The Parameter Editor

One of the most important tasks when developing DSP algorithms is tweaking the parameters and setting appropriate ranges. There are a bunch of helper tools in scriptnode which help you with this. Every slider in scriptnode has a few extra functions worth mentioning:

Parameter popup

Right clicking on a slider will open up a popup menu where you can edit the raw properties. This is not the preferred way of setting the ranges as the range editor described below has far more QOL functions, but in some case it gives you the most flexibility.

The range editor

If you hover over a slider it will show a bidirectional arrow on the top left. Clicking on that arrow will open the range editor.

There's also a "temporary" mode for the range editor: hovering over a slider while holding down the alt key will show the range editor until the mouse exits the slider.

All parameter ranges in scriptnode are just suggestions - you can change the limits, step size or skew factor any time. This is especially important as the (default) modulation connection will use this range for converting the normalised modulation value. So if you have a parameter that is mapped from 2 to 4 and a normalised value of 0.5 is send to it (either through modulation or another parameter), it will calculate the actual value using that range (so in this case 3). Changing the range of the knob will also change this, so if you change the maximum to 6, it will then set the value to 3.

Normalised modulation is just the default mode of operation in scriptnode, but there is also another mode which bypasses the target range and sends the raw value. This is called unscaled modulation. If you want to read more about this, take a look at the control factory.

Now that we've established how important it is to set the ranges correctly, we can take a look at this interface element. It supports these interactions:

Right clicking will open a context menu with more options:

Item Description
Make sticky Enabling this will keep the range editor visible after you hovered over it.
Load Range preset This will show a submenu with a selection of available range presets (see below).
Save Range preset You can also save your own range presets which will then show up in the list.
Reset range this will reset the range to the original range.
Reset skew this will remove the skewing making it a linear range.
Invert range this will invert the parameter so that it goes from maximum to minimum. Obviously this is only interesting when the parameter is controlled by another source.
Copy range to source If the parameter is connected to a source, this will make the source range copy the target range. If you have a single connection, this makes sense as it avoids the conversion between source and target range. Note that if you have a single connection with different ranges, it will show a warning sign at the meta parameter and clicking on this will perform the exact same operation as this.

The Node Property Popup