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)
MidiIn (VAudio)
MidiNode (VAudio)
MidiFilePlayer (VAudio)
...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\
VAudio
VAudio Pack supports MIDI events. This has a big advantage because the midi events happen as the occur and do not get quantized by the vvvv mainloop.
VAudio Pack is contributed by tonfilm.
TodoMap
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.