» Protocols
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

Protocols

Spanish | French | Italian

DMX & Art-Net

DMX
Art-Net
Art-Net spicification

Related nodes

DMX (Network Artnet Receiver)
DMX (Network Artnet Sender)
...and many more

The DMX-protocol transmits up to 512 channels per universe, this is equivalent to a spread of 512 slices.

DMX values are Integers in the range (0..255) but from vvvv you set them in a range of (0..1) instead. Keep in mind that the resolution is still 8-bit though, so only 256 steps (including 0 and 1) are possible.

Art-Net is a standard for transmission of DMX over Ethernet.

vvvv supports the Art-Net II specification with a total number of 256 universes: 16 subnets with 16 universes each.

As defined in the protocol, Art-Net talks over UDP on port 6454 (0x1936). This port number can be changed: just start vvvv from a command line with an option '/artnetport nnnn' (nnnn - your port number).

Examples in your vvvv\girlpower\ directory:

  • IO\DMX

See also:

HID

HID
HID Specification

Related nodes

HID (Devices)
HIDDecode (Devices)
HIDEncode (Devices)

vvvv can talk to any generic HID-Device (Human Interface Device). These can be joysticks, game pads and button panels, data gloves and other things connected via USB.

For more information check HID-nodes helppatches and the wiki-page on the HID nodes.

HTTP

HTTP
REST

Related nodes

HTTP (Network Get)
HTTP (Network Post)
HTTP (Network Receiver)
HTTP (Network Server)
...and many more

vvvv is able to send GET and POST requests to retrieve/send data from/to webservers.

vvvv can also be a webserver itself by using the HTTP (Network Server) node.

Examples in your vvvv\girlpower\ directory:

  • IO\Web

See also

ILDA

International Laser Display Association
ILDA Image Data Transfer Format
Minilumax Light Interface

Related nodes

Lumax (Devices)

vvvv can talk to ILDA-compatible lasers via the Lumax (Devices). For more information check its helppatch.

MIDI

MIDI protocol
MIDI specification
Very helpful MIDI Utility
MIDI Virtual Driver
Multi MIDI Virtual Driver
MIDI Virtual Network Driver

Related nodes

MidiNote (Devices)
MidiController (Devices)
MidiProgram (Devices)
MidiBend (Devices)
MidiClock (Devices)
TodoMap (TodoMap)
...and many more

In MIDI slang controllers are: volume knob, modulation wheel, pan fader, pedal, etc. The instrument as a whole is called a device and sends its data on a specified channel number.

vvvv counts midi channels from 0 to 15 and notes from 0 to 127. Note's velocities and control values are defined in the range (0..1).

The Buffer Length of the Midi input nodes sets the maximum number of incoming midi-messages that get queued for output in the patch. Only one message per vvvv-frame will be returned in the patch while within a frame's timespan more than one message could arrive.

  • If you want fast responses (messing around with a faderbox cause a lot of control messages): set the 'Buffer Length' low, even 0.
  • If you want to make sure that you receive every single midi-message: set the 'Buffer Length' to a high value (ie. 999).

A handy patch to receive and understand what your midi device is sending:

  • IO\Midi\02_KnowYourDevice.v4p

An example on how to receive different notes and control values on different channels:

  • IO\Midi\03_ReceivingNoteAndControl.v4p

Check all other examples about Midi:

  • IO\Midi\

There is also a useful MIDI & OSC mapper for vvvv called TodoMap. Check the video-tutorials from this contribution by vux & antokhio.

The TodoMap nodes are contributed by vux and are coming with the addonpack.

Useful MIDI-Modules:

Virtual Midi Ports use:
keep in mind that some virtual midi ports like loopBe or loopMidi need
the same architecture at both ends 32 OR 64 bits.
if you need to communicate between x86 and x64 softwares have a look at copperlan.

MQTT

MQTT protocol

MQTT is short for Message Queue Telemetry Transport, is a light weight open Source messaging protocol for the Internet of Things.

It is a great and easy way to exchange low frequency messages like sensor readings, or program states etc. between multiple machines and services. It's very robust with a small footprint.

Contributions:

OSC

OSC
OSC Apps for mobile devices.

Related nodes

OSCEncoder (Network)
OSCDecoder (Network)
TodoMap (TodoMap)
...and many more

The OSC protocol can be used to communicate between vvvv and other software like Ableton Live, Pure Data, Max/MSP, Resolume... you name it.

OSC is useful when you want to send different parameters via one udp-port. OSC adds an "address" to your data that you can conveniently filter for on the receiving end.

Examples in your vvvv\girlpower\ directory:

  • IO\Networking\2_Advanced (OSC)

There is also a useful MIDI & OSC mapper for vvvv called TodoMap. Check the video-tutorials from this contribution by vux & antokhio.

The TodoMap nodes are contributed by vux and are coming with the addonpack.

TUIO

TUIO protocol
TUIODroid at Google Play
TUIOPad at Apple Store

Related nodes

TUIODecoder (Network 1.0)

TUIO is a common protocol and API for tangible multitouch surfaces. This protocol encodes control data from a tracker application (e.g. based on computer vision) and sends it to any client application that is capable of decoding the protocol.

You can easily test communication via TUIO by using one of these software simulators (scroll to bottom).

The TUIODecoder (Network 1.0) node is contributed by Abomb and is coming with the addonpack.

Examples in your vvvv\girlpower\ directory:

  • IO\TUIO

UDP & TCP

UDP
TCP

Related nodes

UDP (Network Client)
UDP (Network Server)
TCP (Network Client)
TCP (Network Server)
...and many more

The main difference between the UDP and TCP protocols is the fact that while UDP transmits faster it does not guarantee all data to arrive while TCP tends to be a bit slower but guarantee the arrival of all data sent. Therefore UDP is generally used for streams of data where it does not matter if a single data is missing whereas TCP is used when every single data sent needs to arrive on the other side. Also UDP allows you to send broadcasts to a range of listeners. This can easily be done by using a broadcast IP like x.y.z.255 (where x.y.z is your subnet, like e.g. 192.168.0) for the Remote Host.

When you are sending several parameters via UDP (or TCP) on one port, consider encoding the data using the OSC protocol. OSC adds an "address" to your data that you can conveniently filter for on the receiving end. As long as you have only one parameter on one channel you'll be fine with udp/tcp directly.

Examples in your vvvv\girlpower\ directory:

  • IO\Networking

ZeroMQ

ZeroMQ
Wikipedia on ZeroMQ

ØMQ (also spelled ZeroMQ, 0MQ or ZMQ) is a high-performance asynchronous messaging library, aimed at use in distributed or concurrent applications.

Contributions:

anonymous user login

Shoutbox

~11h ago

joreg: @mediadog: indeed, fixed that!

~11h ago

mediadog: @microdee @joreg Aha! I had glanced at that list, but assignment was lurking beyond the scrollbar. Athankew!

~14h ago

joreg: first-come-first-serve tickets are now sold out except the "delegate" ones. others are still available from here: https://nodeforum.org/journal/node17-tickets/

~14h ago

~15h ago

microdee: @mediadog: default is set via assignment (equal sign)

~1d ago

mediadog: No default for effect parameters, just min and max?

~1d ago

microdee: regular *fcfs tickets for #node17 are already sold out, and non lowered regular ticket isn't available straight from main page

~2d ago

mediadog: @evvvvil Man if that was 10th I want to see 1-9. 4kb, insane!

~2d ago

evvvvil: @sinus, thankx a lot broh! LJ, guy from my group desire, won shader showdown :) couldn't enter as qualifiers were on Friday. Peace

~3d ago

sinus: @evvvvil: great!! nvscene shader live coding 666: https://www.youtube.com/watch?v=O-1zEo7DD8w