Help with pickpoint

I am new to vvvv but have already found it very intuitive and efficient.
Currently I am putting together a midi/osc interface that would include multitouch, headtracking, and be just generally like (3d vector)a tricked out lemur.

I’m having a bit of a problem understanding the pickpoints (3d vector) node fully.
I believe that my problem is in the first input pin and what I’m doing with applytransform (Transform Direction). Right now my patch is working and picking various cubes with pickpoints (3d vector) but it seems like it’s not recieving the proper coordinates from my cross’d spreads.

Can anybody shed some light on what part of this needs to be modified in order to line up what the I’m seeing on the camera to what pickpoints (3d vector) needs to recieve on the first pin?


interaction.v4p (26.4 kB)

You have to use Vector (3d join) and not Vector (2d join) when XYZ is requested for the node, because vvvv just reads slice after slice. With Vector2D the first coordinate in the requesting node will be X1,Y1,X2 and the next one Y2,X3,Y3 etc when it should really be X1,Y1,Z1 and X2,Y2,Z2.
So in your patch you have to replace the two Vector (2d join) nodes with Vector (3d join)

interaction.v4p (27.2 kB)

Very cool, thanks for the help. Makes perfect sense.

Does anybody know how to get the MIDI out component to trigger an note off when the box is released? Also the note out data is being polled the entire time that the box is pressed, which node should I be looking at in order to remove repetitions in a list?

Another thing I can’t seem to figure out is why every so often some of the boxes that are being modified (Translate Z and changing to red) are duplicated underneath a copy of the box (?) while others are not. Am I doing something wrong with my slice management?


interaction.v4p (26.4 kB)

onRelease sounds like you need the TogEdge (Animation) node. Connect it to your mouse button of choice and use the second output pin to detect a release of the mouse button.

I’m not sure if I understand your second paragraph. It could be two things, either you mean that the boxes aren’t rendered in the correct order, and that’s because you have to turn on depth buffering in the renderer via the inspektor.
The other thing might be that occasionally you get more boxes because you have 36 boxes and translation inputs to your Gouraud node, but 128 color input slices. Most nodes tend to take the maximum slicecount and repeat the inputs that have less to match the maximum slicecount.
But it might just as well be something completely different, I may have misunderstood what you mean.

(Also you should connect the Camera node’s output to the Cursor node, it will make it follow the mouse correctly)

and for MIDI-NoteOff send MIDI-NoteOn with Volume = 0 instead.

This is what I’ve come up with for the MIDI implementation, though it still is not working exactly how I thought it would:

I connected the mouse down state to the TogEdge (animation) and then to the Do Send pin of MidiNoteOut, this fixed my earlier issue with the endless stream of midi notes. I also connected the mouse down to a multiplier with a value of 127 hoping that this would achieve what kalle is saying. However still doesn’t seem to do it. Perhaps I need to send the note # again at the same time as a velocity of 0. How could I do that?

Also, another question about pickpoints (3d vector). I’ve now added some funky background animations to the patch that are animated by an LFO and some random ‘jump points’ on the camera (initiated by pressing ‘a’). To keep the boxes fixed ontop of the background animatics I connected the inverse rotation pin from the camera node to transform node of the boxes (not sure what that means exactly, but it works).
So far so good, but when I try and connect the first input pin of applytransform to the same pin on the camera it doesn’t seem to work the same way as when the camera was in a fixed position.

guidance is appreciated

vr9.v4p (78.8 kB)

don’t multiply with the velocity with 127!!!
velocity is already mapped in the range 0.0000 to 1.0000

use a Change (Animation) for the Do Send.
this way you bang it both on press/release of mouse button

another solution would be to connect both TogEdge’s Up Edge and Down Edge to an OR (Boolean) and this again to the Do Send. the advantage in more complex patches: you can insert Framedelays or Monoflops either Up Edge or Down Edge

I’m still doing it wrong for some reason. Gave it a shot with both methods, got rid of the multiplier and ended up with this:

Still not getting a proper note off instance, though it seems like it would work this way

… no text …

interaction_0.v4p (28.2 kB)

quick question: you are aware that channel 1 (i.e. the first midi channel) is called channel 0 in vvvv? because you chose channel 1 on the midiout node.

/edit, i just noticed, that with your latest patch, i can actually hear a note when i hit a box :) so it works here. but the pitch is rather low…

this should work, yet i’m still not getting a note off instance from Change. Does Ø not register as a change in value for that node or is the problem in there being no note present when the onRelease bang happens.

I tried adding a Delay (Animation) but that didn’t do it either.

interaction.v4p (34.3 kB)

I was able to get a note on/off state when I disconnected the slice select output from the note pin of the MidiNoteOut. Which leads me to conclude that the problem is in the fact that there is a ‘Ø’ present when the Change sends it’s onRelease bang.

Is there a node that I could use that would essentially store the ‘last real integer’ or something along those lines so that the last slice remains until a new one is picked instead of returning to Ø onRelease?

Here’s a funny workaround that I came up with where I connected the over state of pickpoints to the note pin. This works only if you don’t move your cursor away from the clicked box. Not a good long term solution.

interaction.v4p (34.3 kB)