VL cant get any Midi values



Hey there,

i had a short look into VL because of the MIDI reconnect problem in vvvv and now i wanted to get simple controller and note values of my LPD8 like it done in this patchMidi_in_vvvv.v4p (7.2 KB)

it seemed to be as easy as in vvvv to get values from the controller but i cant get it to work.
what is it that i am doing wrong?

Midi_in_vl.v4p (1.3 KB)




there is no vl file attached…


ah ok i have to send those two files. does it work like that?VVVV.Midi.Miditester.vl (6.2 KB)

because it does not allow any packed files to upload.


yes, that’s correct. there is also the ControllersState, which has a spread input. make sure no other application uses the midi device. for example vvvv cannot access it in the same time.



UH JEa it works!
i think i still had midiOX running while searching the channel i was sending on… thats a pity!

how do i make use of the NotesState? I cant get any values of it inside of vvvv.
also there is no predetermination via an ispread to which region i want to listen. Miditesting


since VL has data types, the NotesState outputs all playing notes as a spread of type MidiNote which is more compact than three individual spreads and the data stays together. a MidiNote contains information about note number, channel and velocity. to split that into basic values that vvvv can understand you can use the node Split [MidiNote] in a ForEach loop. something like this:



Thanks a lot for the fast reply.


i got it to work but only with set slice inside of vvvv.
How would it be done inside of VL to set the slices of an spread of zeros?
I think i understand why this is happening because it iterates 8 times through ervery slice of the 3xLinearSpread. But where i stop understanding is how the “BadSpread” is sorted.

LPD8_only.v4p (9.8 KB)
VVVV.Value.LPD8.vl (16.0 KB)

here are the files:

LPD8_only.v4p (9.8 KB)
VVVV.Value.LPD8.vl (16.0 KB)


I think you can do the vl version the same as the vvvv version. Create the spread with zeros outside the foreach loop and feed it in the setslice node without using the input splicer.


you mean like this?
this way is also not working. i got 6 buttons pressed and a spreadcount of 28 for the zeros. it gets to a spreadcount of 168 in vvvv


the patch is almost correct, not bad for a first contact.
so your ForEach loop will iterate thru all slices of the NotesState output. the set slice is also correct… only the output Splicer is not the right choice here. output Splicers will generate a new spread on the output with as many slices as the loop has iterations. so in your case you output a spread of spread. in the screenshot you see a spread of 6 slices where each slice is your input spread with 28 slices.

but what you want it the same spread as you put it. for that an Accumulator has to be used. it takes an initial value (in your case the original spread of 28 slices) and modifies this value in each iteration and passes it on to the next iteration:


it would also be interesting if this gray book page explains it well for you and if not what is missing:



Thanks for the explanation.

It is very well written in the gray book and surely understandable.
The only problem is to change my own habit of thinking in the process of patching.
Now that i think i understood spreads a little i have to get used to the system of looping but it`ll be more than worth to wrap my head around it :)

I tried to build it that way but with the node repeat/spread it acknowledges the first pressed button but when i press two or more buttons on my lpd8 the value shifts to the highest slice and every other value is zero again.
Switching from repeat to a linear spread works fine.
Is it because the linear spread is some kind of steady and the repeat spread not?


there should be no difference between repeat and linear spread, might be some other problem. can you upload the specific patch?


Here are the files.
Dont know what i did wrong there.

LPD8_only.v4p (2.8 KB)

VVVV.Value.LPD8.vl (14.4 KB)


when exchanging the LinearSpread with a Repeat, they behave exactly the same. make sure you use the Repeat in category Spread not the Sequence one.


ah jea i think i got the wrong one… now it works :)


good to hear that.


How would I close the connection with the device ? (as Enable on vvvv)
I tried with a simple Evaluate on the VL node from vvvv but it seems like it is not freeing up the device (XL Control)


I dont know if i understood youre question right but i think you want to plug out the Launch Controle xl and plug in again while the program is running?
if thats the case have you tried to switch to another midi input and then back to launch control because?
when using the my akai midi controllers it works when unplugging and plugging back in.
Only the controle xl needs the switching.
here is my launch controle patch

LaunchControleXL.v4p (1.7 KB)

VVVV.Midi.NovationLaunchControlXL.vl (10.9 KB)

hope this helps


Nop, unplugging and replugging the controller works just fine (yai yai yai !!)

In vvvv say I want to do some setup with the Novation application I can just disable MidiController node and the app can connect, it doesn´t seem to work in the same way in VL though.