I am trying to conceptualize how I would use reactive LED strips with sonic pi. The idea is to “attach” an LED strip to each sample and synth currently running, and make it glow more or less depending on the amplitude of the synth/sample. My question is whether it is possible to extract any properties from active synths, and if not how you would approach it. Is there a way to isolate the sound channels? Has anyone ever done anything like this before?
I have used reactive visuals before, such as plane9 and vsxu, and these use the currently playing sounds as a whole. I essentially want to do that, but separated into synths.
It might be possible, but I’ve never tried directly accessing the properties of a live synth myself. Does the option of using the values that are to be passed to your synths as they are about to run, instead of trying to figure out what they were given after the fact, not suit your use case?
That could work, albeit in a limited fashion. I wouldn’t be able to use a synth with default parameters, since I have to explicitly state which parameters I’m passing it. It’s a bit finicky in a live setting, but it can be managed.
The main limitation I see is that the LED strips can’t react to changes in the synth as it’s running (e.g. the
:dsaw synth’s pitch changes). This also rules out changing the synth once it’s running, such as filter sweeps. I can work around it, but it isn’t ideal.
Do you mean
:mod_saw? In that particular case, you are correct, the pitch changes are definitely not made visible to the Sonic Pi API.
You would need to do the same as with setting variables based on values used to initialise the synth, by setting variables based on values passed to
Do you mean
:mod_saw ? In that particular case, you are correct, the pitch changes are definitely not made visible to the Sonic Pi AP
I was thinking of the changes made by the detuning as it plays, but essentially yes. Those changes are what I would like to pass unto a reactive piece of software, be it milkdrop visuals or LED panels.
Passing control changes are definitely possible, no doubt. Question is how to approach it live, where I have to keep coding fast.