Generate visuals using audio synthesis
Hello, I have a Jitter patch (my second ever!) that takes 3 simple audio FM synths and generates color channels for red, green, and blue using jit.catch~ and jit.pack.
What I am trying to do is generate visuals similar to analogue video synthesizers such as the ones by LZX Industries (http://www.youtube.com/watch?v=00GGLqrUAWA&feature=BFa&list=UURp5BoIpJ4TWiLMRtEEk8UA) where waveforms actually generate the scanlines for each color channel.
In my example I got really close I feel like, but it appears to just repeat one line, so the result is always perfectly vertical, whereas I expect that certain frequencies should create diagonal or curved patterns.
Open my example and turn some knobs, you’ll see what I’m talking about :¬)
Is this just because my audio generators are not generating enough data so it just repeats the single line of data?
Sorry for the earlier misdirected question. Obviously my matrices weren’t big enough to fill a screen every frame, which I think was causing the vertical bars.
I have a new question: how can I fill matrices separately from filling the screen, so that I am constantly overwriting my matrices by one "process", and then there’s another "process" that is just rendering what’s in the matrix, completely separately? Something like accessing indices of the matrix with a phasor~ and sequentially updating the data, and the rendering might happen by getting values out of the matrix with a phasor~ running at a different speed.
I have two concerns—first that the updating can’t keep up with the rendering, and the second is that the scheme I mentioned above might not be able to happen in a performant way. Could someone point me in an okay direction?
I figured out what I was looking for. The answer is to use jit.poke~.
Try this patch out, you can get some strange effects with it. Jitter is easily powerful enough to handle this sort of thing. The 3 rows of knobs correspond to separate 2-op FM synths, one each for the red channel, the green channel, and the blue channel. By turning the knobs you can change what color gets rendered to each pixel. It makes weird video-gamey watery effects. At faster speeds it should be possible to make some very interesting patterns.
Thanks for the one man show :-)
And although I am teasing here a bit don’t let that get to you; the times I’ve been there myself (finding the answer only /after/ I posted my question)… Great job for finding those answers, but IMO an even greater job for sharing your mistakes with us. Because now other people can learn from that too!
Gonna check out your patches later this evening, thanks again for sharing.
Thanks! The last example actually does have a slight issue where it seems to skip every few pixels. It does seem that jit.poke~ can only update so quickly after all. I’m looking into a jit.gl.lua solution for mapping my color channel matrices onto the screen. Still it was an interesting initial exploration. I’ll update this post with my progress.
I am getting good results using jit.scanwrap! Check this demo, very colorful! Still working on a good balance of matrix sizes and refresh rate.
You might wanna check your audio (DSP) settings as well.
You should also check andrew’s video synth patches
…maybe this one here is a bit messy but I kind of like it, thank you Roger for your patch
here another dream machine ; )