» Revision of The User Interface in Detail from Wednesday Jul 28th 2010 - 13:24
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

Revision of The User Interface in Detail from Wednesday Jul 28th 2010 - 13:24

The revisions let you track differences between multiple versions of a post.

Mandarin | Spanish | French | Russian | Italian

Using the mouse

The usage of the mouse has some intentional quirks, which help distinguishing between first time users and expert users. Most important it is recommended to use a Three-button mouse as vvvv makes use of all of them.

During patching be sure to always remember that if you want to change any values of a pin you will do it with the right button. Changing the position of a nodes or a window is done intuitively using the left button.

The usage of all mouse buttons allows us to always stay in run mode instead of having to switch between run-mode and patch-mode all the time, as some of you might be used to from pd or max.

Note that there is a locked mode that can be reached via Ctrl+E, in case you want to make sure that your patches are not accidentally altered.

See this video tutorial on using your mouse to navigate in vvvv, and pick up some other patching tricks with this video tutorial.

Creating a new patch window

Click the middle button and select “New Patch” (or press Ctrl+P). Note that the window will pop up with the top left part of the window under your mouse cursor. This is where you only have to mouse-down and drag the window to its desired position.


Creating nodes

Double click in a patch with the left button to create an empty box. Then click the right button to open the node menu and move the mouse to either the left or the right pane to select a node by category or from an alphabetic list. Use the mouse wheel to scroll up and down (If you have no wheel and there are no scrollbars hit SPACE to show scrollbars). Roll over certain nodes to read a short description.

Left click to create the selected node or right click to cancel the operation and close the menu.

If you already know the name of a node you want to create instead of right-clicking to invoke the node menu you can start typing the nodes name after the double-click in the patch. This brings up an auto-complete pull-down menu where you can optionally use the up and down arrow keys or the mouse to select the desired node.

more Features:
If you type a "." (dot) the auto-complete pull-down menu lists all other patches located in this patches folder. This allows really quick access to all patches in your project-folder.

You also can doubleclick an already existing and connected node or subpatch or module and choose another one. All in- and outlets with exact same name (regard Capitals) keep their connections then.
If you doubleclick a node representing a subpatch or a module and type a
. (dot)
a list shows up which only contains the patches of the same folder location .


Creating a comment

Double click with the left button to create an empty box. As soon as you enter something that is no known node name, you have created a comment. As node names never start with a space, a good strategy for comments is starting with a space.


Connecting nodes

Do a left click on one of the pins you want to connect . You will see a line following the mouse cursor. All pins you can now connect to will grow to larger gray squares (Note: Hidden pins will not show up but can be connected as well). Do a left-click on your target pin. Your connection is made.

Long term Max users tend to hold the mouse button while drawing the line. This is simply not necessary.

You are only allowed to do valid connections. Inputs accept only one connection. If you drag another connection to an already connected pin, the first connection gets dropped. Note that you can also start at the input and draw to the output.

If you want to learn more about the different kinds of pins, see Pins and Data Types.

Note that creating a loop is not a valid connection. If you want to do so insert a FrameDelay (Animation) node See Creating Feedback Loops

To cancel a line while drawing it, do a right click. To draw multiple lines from the same source, start with a right click, and then do left clicks to mark all targets.


Deleting nodes or connections

Select and press delete or backspace. Selected connections can also be deleted with a right click. Any node can be reset/reloaded by ALT-right-clicking it.


Drawing segmented connections

While drawing the line, just do occasional left clicks. For each click, an anchor point is inserted. If you want to edit the shape of a connection, select it, and drag the black squares. To remove anchor points, align them in a straight line.

There are three different styles of connections: Straight, segmented, and Bezier lines. Press CTRL+Y to cycle through the styles with a connection selected, or use the “Alter Link-Type” command from the main menu.


Scrolling in the patch

You can move the patch around in the window by right clicking on an empty space in the patch and start dragging.
Vertical scrolling while dragging a line is possible by using the mousewheel;
Horizontal version works by using the mousewheel and pressing the ALT-key (thx david).
SpeedUp both horizontal and vertical crolling with pressed CTRL-key

Moving a selection of nodes

move a selection nodes by pressing the cursorkeys by 1 px.
move a selection nodes by pressing SHIFT and the cursorkeys by 10 px.

Changing Values in the Patch

Move the mouse over any pin and you will see a tool tip showing its current value. Values of input pins can be changed directly within the patch. You can reset any pin value by ALT right-clicking it. This will also reset the slice count back to the default. Alt-right-clicking on a node resets all of its pin values.


Value pins

Right click on the pin and drag the mouse vertically to change the value.
Additional pressed

SHIFT will divide the step size by a factor of 10.
CTRL will divide the step size by a factor of 10.
SHIFT+CTRL will divide the step size by a factor of 100.
ALT+SHIFT will multiply the step size by a factor of 10.
ALT+CTRL will multiply the step size by a factor of 10.
ALT+CTRL+SHIFT will multiply the step size by a factor of 100.

Color pins

Right-click to open a color field. Now click and drag vertically to change brightness and horizontally to change the hue. If you press CTRL while dragging you can change saturation. If you press SHIFT you can change the alpha value.


String pins

Right click the pin to invoke the operation according to the pins subtype.

  • If the string is of subtype short an ordinary edit box appears where you can enter a string.
  • If the string is of subtype long a separate window will open that allows you to enter text of multiple lines.
  • If the string is of subtype filename a file-select dialog will pop up.
  • If the string is of subtype directory a directory-select dialog will pop up.

Note that no matter what subtype the string is if you press CTRL while right clicking the file-select dialog will appear. Pressing SHIFT will invoke the directory-select dialog.


Enumerated pins

Right click to invoke the pull-down menu with all possible values.

IOBoxes

Sometimes it’s helpful to provide a user interface element in the patch. Therefore you can create IOBoxesto edit or display values in the patch. Create IOBoxes in a similar way as other nodes, but take care to select the right type: IOBox (Value) Advanced |Value?, IOBox (String) |String?, IOBox (Color) |Color?, IOBox (Enumerations) |Enumeration? or IOBox (Node) |Node? for advanced datatypes (like Transform or Texture)

You probably need IOBoxes for values quite often, so a double click with the right button will create one. IOBoxes are highly configurable. See their according help patches for more details.

Main Menu

The main menu pops up after a click with the middle button on most of the vvvv windows. If you have no middle button use SPACE + right click instead. If you have a middle button, but it doesn’t invoke the menu, then you might have assigned the middle mouse button to something else than the middle click (Go to Settings>Control Panel>Mouse and look for the middle button assignment to change that back to “middle mouse button” or similar).

Keyboard Shortcuts

See Keyboard Shortcuts? for some more details.
And also, with no node selected, hit the F1 key, to see the very basic helppatch and read the most relevant keyboard shortcuts.

The Inspektor Window

If you want to view or edit multiple parameters at once, it is often helpful to open an inspektor. This can be done via the main menu or by pressing CTRL-I. (Note that the Inspektor is no special window at all. An inspector is just a node with a corresponding window. Therefore invoking an inspector always creates an Inspektor (VVVV) |Inspektor? node in the root)

The inspektor window shows all pins of a node in one window. The top section lists general information on the node and all configuration pins. These pins are special inputs which are only visible in the inspektor. The second area is the section with inputs; the lower section is for outputs. Areas in light gray can be edited by the user; areas in dark gray are read only. Note that outputs and connected inputs are read only, as the graph will calculate the values for these pins.

The left column will change the brightness of a pin in the patch (use that to dim out irrelevant pins).

Usually all inspektors always change to display the currently selected node. If you want to permanently edit a specific node with a specific inspector, you can attach an inspector to the current selection by pressing the “Attach to Selection” button. You can select and edit multiple nodes at once, but you will only be allowed to edit the pins which all nodes have in common.

Read here for more information about the Inspektor, or watch the video tutorial.

Some more words about nodes

Most nodes have pins of a basic data type. The tool tip will show the data as soon as you keep the mouse over the pin. For a more detailed view, open up an inspector window (Ctrl+I).

Lots of nodes have configuration pins, which are only visible in the Inspector?. These pins usually have some more drastic consequences, and they can not be connected in the graph. A usual application for configuration pins would be setting the number of input or output pins. Having these pins as configuration pins will save you from the danger of destroying your graph by entering erroneous values.

Pins with a basic data type follow some simple rules:
If an input gets disconnected, it maintains the current values. The current value of all unconnected inputs gets stored in the patch file, so you don’t need any explicit initialisation (as in other graphical programming languages)

Tip: If you want to initialize some pins in your patch to constant values, then you can temporarily connect these values to a node, adjust everything as you like and then delete all objects which calculated the constant – the input pins retain their values.

To reset an input pin to the default value, use ALT + Right Click.

Note that this applies only to basic data types. Pins with advanced datatype (like Transform) do loose their value
One distinctive feature of vvvv in comparison to other graphical programming systems like PD or Max is that data is always on. Data will not be transferred as separate events which occur only at certain times, but as a continuous stream of values. In vvvv you will get accurate results as soon as you connect the pins, without the need to bang any first inputs.
In the past this was necessary to gain performance while using simple integer operations, but with modern processors and animation requirements this is no longer an advantage.

Docking

If you are working with multiple windows, Docking can be useful to stack windows on top of each others. Windows will snap into another, and vvvv automatically shows tabs to select between the different windows. You can use docking with all windows within vvvv.

Dock one window to another by pressing ALT while clicking in a window and dragging it onto another. Release the mouse button when a gray border in the target window appears. Then use the tabs to bring different windows to front.

Undock windows by just starting to dock as described above but releasing the mouse button somewhere over the desktop instead of another vvvv window.

Pressing ALT+SHIFT while dragging will dock a stack of docked windows onto another window.

At the moment there is a small known bug in docking: sometimes docked patches are not docked anymore after loading. To work around this problem make sure to resize all docked windows before saving.

On loading a series of docked patches they get arranged in the loading order. So in oder to influence the tab order you have to open the root patch (or whereever the docked patches are located) in an xml editor and change the order of the nodes containing the subpatches in the xml.

Cycling Windows

Cycle through all currently visible windows (this will include all patches and all renderers) using CTRL+TAB. Just like cycling through a list of all open programs on your desktop using ALT+TAB this will bring the chosen window to front.

Hidden Nodes and Locked Patches.

When a patch is locked, CTRL+E, the patch is protected against modifying it. In the top left corner there is a '#' symbol, to indicate the patch is locked. In a locked patched, it is still possible to change the values of IOboxes, and also all the vvvv functions still work. To unlock, use CTRL+E again.

When one or more nodes or connections are selected, pressing CTRL+H will mark them as hidden when a pacth is locked. Hidden nodes and connections in a locked patch are not vissible or accesable anymore. In an unlocked patch they will stand out with a lighter shade of grey.

For more information, watch this video tutorial.

anonymous user login

Shoutbox

~4h ago

Urbankind: circuitb:Wrongcop is epic! :)

~4h ago

joreg: @tobi: use GetSlice() as the patch i referred you to is demonstrating. or start a forum thread with your patch.

~5h ago

TobiTobsen123: hmm yes i can see the values...but how to handle them as seperate values? I need to forward them via TCP/IP...

~6h ago

joreg: @tobi: OSCDecoder helppatch has a section: OSC_Advanced (bottomright) that demoes decoding of multiple messages

~6h ago

TobiTobsen123: I'm using an OSCDecoder, it receives two arguments...works but how can I seperate the arguments into two seperate values

~9h ago

u7angel: @mediadog, make it a forum question.

~9h ago

u7angel: @mediadog, tty renderer ?

~11h ago

microdee: however non-conductive objects are invisible for this so the pencil and the sticks in the video are still a mysteries