Ahah! I have sorted it so sockets only connect to others of the same kind, other than Generic sockets, which can connect to anything else!
So, whilst I was laying under my old lady doing a repetitive task that required little brain power, I solved the issue. Now before you all get the wrong end of the stick, I should point out that by “my old lady” I am referring to my glider and obviously not Mrs. Clockmender (some people’s minds…tut, tut), I hope that is all clear now.
Speaking of which, or is that witch? when I got home I explained to Mrs. C. how I was going to sort the problem, to which she replied that what I had come up with was in fact the correct solution and that she had not told me earlier of this, because she felt it would be better for me if I worked it out for myself. This is presumably what has happened here also…
As a side issue I also found out how to automatically colour code the nodes based upon what they do:
Successfully accomplished, you can specify the sound file, the maximum frequency range, the number of frequency splits (I use harmonic splits based upon the n/12th root of 0.5) and a host of other factors to bake a sound to the controls’ F-Curves.
These controls can then be used to animate objects, although I have not done that in a project yet, but do have the necessary nodes in place already, these are the ones I use to animate from MIDI controls.
PS. As a bonus, I also worked out how to switch the context to different editors…
Soon! I have not resolved the issue of rendering an animation, currently the nodes are not executing between frames when you render animation, although if I render a frame, then advance the Timeline, then render the next frame, they are actioned. So I have two options:
Work out how the “fudge” to get the Blender render animation to work.
Write a simple Render Animation routine where the Timeline is advanced and each frame rendered and the image saved to disc, this I can do quite easily (I hope).
I have one more thing to do before I do a video, which I will record with my camera so you can see the MIDI controller in action, then I will make a compilation of the various bits, like sound production, DAW, Live MIDI, Sound Bake, Sound Animate, etc. That thing is to built the DAW notes from a MIDI file, I have all the code I need in various bits - the ones that Bake the MIDI file to controls.
So, a little patience please and we will get there, there is no manual for this stuff, I am having to experiment all the time to get things to work, sometimes it takes hours to get a “simple” thing to work.
PS. Screen Capture videos on my Mac are not going to to work as “Mac” wants to record at 60fps and that taxes the CPU for this stuff…
So, here I have used the drum track from “First Time…” to animate this mesh, it has a shapekey for each drum note. I have also revised the Collection and Object nodes so they use PointerProperties (“it’s about frickin’ time you worked that one out Clock”), but maintained the “Object(s): Filtered” node so you can still make a list of objects using a search string, same goes for my “Collection(s): Filtered” node. The index of -1 means all objects BTW, not the last one…
Now, one thing is still vexing me. If I alter a node, like add a new socket, etc. I have to delete the node in my projects and add it in again. Is there a way for the nodes to automatically update in the project, if I change the node code. I expect to have to exit Blender and re-start, things like props in the appropriate section def draw_buttons() do update, but new sockets don’t.
Anyway I will see if anyone knows this, otherwise I guess I just keep endlessly trawling the 'net…
I am getting there, I have just re-written virtually every node to make the system better & easier to develop and have dropped the Live Sound thing, I cannot get Sounddevice to do exactly what I want and to be honest can’t see the point in it when you can use Bake Sound to make videos… The there is always Audvis add-on, I know it is paid, but I cannot see the point in trying to emulate it.
These new nodes allow me to animate Materials and Colours ,etc. I have also made a Compare node that could be used to change something after a certain frame number for example:
I have also added a Compare, Condition & Maths nodes to the suite to enable more intricate modification of input signals. I hope to have these new nodes uploaded shortly after some more testing. Some of the new nodes were borrowed from my older AN additions, adapted to the new system. The new system also includes nodes to modify materials’ colours, etc.
I have also re-written a lot of the code so it now uses standard Blender sockets where possible.
Here are some of the other new nodes in a test project:
It also pulses the cone every 24 frames. The Periodic Trigger can trigger at any phase of the Cycle Length, above it is at 0, but this can be changed to say 7 when it will pulse on the 7th frame of each Cycle.
This part of the node tree below uses the Trigonometry node to make an animation based upon both Sine and Cosine functions, causing the object to rotate about 0,0,0 in a 3m radius locus:
This might also be useful in PDT, so I will add it to that also. These can be used to interpret sounds, or to provide a path to animate objects along, when the simple wave is converted to a curve. Here I have combined two waves for Sine & Cosine and made a solid from them.