MartinusMagneson's picture

Magneson (@MartinusMagneson)


    MartinusMagneson's picture

    Oh, pebcac! I thought the shader could up the color depth, thanks!

    MartinusMagneson's picture

    Yep, those are Vuo with point meshes. The reference image is from Reaktor which generates the sine waves. To get it I split the receive live audio into First/Last in list, enqueued the values and merged them into an x/y list. I then triggered the enqueue node from a 'fire periodically' node that probably fires too fast for stable/efficient usage.

    Shaders shouldn't be a too big of a problem in Vuo, they are quite easy to set up after you understand where stuff is supposed to go (but it probably helps to have someone knowing what they are doing (I'm not though)) . The SDK and the source are great resources, as are shadertoy, Paul Bourkes image filters and a bunch of other websites I don't remember.

    MartinusMagneson's picture

    The shader approach is so that you get more control over the individual pixels, and maybe a different approach to audio. As it stands now, I'm not sure about how phase is handled between the L/R channels.

    Here I'm using Jerobeam Fendersons Oscilloscope music (no audio, sorry, check out for some absolutely fantastic visuals), which is tailored for this sort of thing, and although I can see some definitive shapes in there, it doesn't seem to line up with what I get from Vuo.

    However, when sending two sinewaves and adjusting the sample delay for one of them, I can do this:

    But again the phase seems off:

    So Vuo might be capable of an approximation initially at least. Would be nice to have a comment from @jstrecker about the phasing, maybe there is something to clear up :)

    MartinusMagneson's picture

    Very cool project by the way! You don't have to do several process lists, you can easily have several 'Is Within Box' nodes within the one 'Build List'. All you have to do is a bit of nesting of the logic.

    Here you have three different sources for the 'box'. If the first 'Select Input' is true, cyan will be passed along as the false color for the second box. If the second 'Select Input' is false, cyan will pass to the third box as the false color. If the third 'Select Input' is also false, it will then pass along cyan as the final color. If all are false, blue will be passed along, and if any of the later ones in the tree are true, it will settle at the latest 'true' color. This way, you only need to convert the one color-list to Art-Net. I think the color list would be the simplest option to deal with by far, especially for LED strips.

    Composition is attached ("EDIT2_...").

    MartinusMagneson's picture

    What are you planning to make? Cymatics and Oscilloscopes are perhaps better placed in a shader of some sorts. I at least haven't found a satisfactory way to emulate that in Vuo (that doesn't necessarily mean it doesn't exist). I see from the way you pose the question that you might attack the problem from the wrong angle though. As audio input is a one dimensional value from 0 - 1 it doesn't lend itself well to xy(z) manipulation in its raw form. What it does well however, is scaling. So if you start by making a circle/sphere, then you can apply the audio values as scaling for those points, either by adding/mulitplying lists, or by scaling the points that go into them.

    I'm attaching two compositions I whipped up quickly to demonstrate two ways of doing it, although there are a lot more. I suspect that if you go into 3D space with them, the z-axis (provided the object has origin at 0,0,0) will be the best one to scale.