Hello Purf.
Funny, I thought, hmm thats kinda what I’m working on. And then I saw your link. Thats me at 8:45 of the second video :)
Ok let me give you some insights. You’re right to me this also seemed rather simple at first, but has now been part of my everyday work for over a year. The patch from the video has been almost entirely re"written" with more functionality, way better rendering and even being able to export the created 3D objects to Autodesk Maya.
The problem with storing midi notes is in the way they are played. You can have 1 or a dozen notes playing at the same time, all for different lengths of time. Using a single store node for that was somewhat possible, but i finally gave up on that idea, because since the x64 version of vvvv, memory is not an issue as much anymore.
To reliably save all midi notes you need a store node for each note, because only 1 note can play at one time. This is literally a process of using getslice to get each of the 128 input notes from midi and then storing each note. But of course you dont want to just store the velocity - at least in my case not. You also want to store when the note was played and how long for. So storing that info for one note is quite easy using a Togedge, stopwatch and a global timer. You need to use the insert pin once the note starts playing and use the set pin for as long as it is playing. I use the format: NoteID,Count,Velocity,Time,Length. Zip them together and store as a string. Use cons to have one large spread of all notes.
Then you just use unzip again to use the midi data for whatever you need by mapping the stored values to properties of other things, like 3d objects, etc.
I cant really attach my patch for it, as it is way too large to understand and it requires a few special drivers and midi controllers.
I am attaching the subpatch used for storing with some explanation.
In your example you are still doing something wrong with the store node. The binsize pin should be equal to the notes playing at a given time, otherwise you are storing lots of zeros. That said vvvv is very good at storing data, I can store a few thousand and have them rendered with MRE and SSOA without noticable lag.
midi_store.v4p (32.0 kB)