Cherry Audio Voltage modular

VST, AU, AAX, CLAP, etc. Plugin Virtual Instruments Discussion
Post Reply New Topic
RELATED
PRODUCTS
Voltage Modular Core + Electro Drums Voltage Modular Ignite Voltage Modular Nucleus

Post

vortico wrote: Tue Feb 12, 2019 4:19 am You don't need to yield 48,000 times a second between module timesteps. Only once per VST process() buffer. You can spinlock between each sample.
Yes, as I wrote, "far less efficient methods have to be employed to split the work up between multiple threads." What you're calling a spinlock is a loop that constantly checks to see if a switch is set, which momentarily pegs your CPU at 100%. The end result is that, while the work will be split between multiple processors, the overall CPU use will be higher - potentially a lot higher, depending on the situation, as you explained.

However, there is another issue. Take a typical configuration - an oscillator into a filter into a VCA into a system output. First the oscillator has to generate a signal, then the filter can filter it, then the VCA can attenuate it, and then the output can transmit the signal to the sound card. You cannot perform these operations in any other order, as each step is dependent on the previous step. So, consider the multi-processor scenario. One processor handles the oscillator, one handles the filter, and one handles the VCA. The only way to process these three modules simultaneously is to introduce latency. If the VCA processes the previous output from the filter, and the filter processes the previous output from the oscillator, then we've solved the simultaneous processing problem, but we've introduced 2 samples of latency. The more times a signal crosses the processor barrier, the more latency gets introduced. A large, complex patch could theoretically have a lot of latency introduced.

That's the price that has to be paid for any form of multiprocessor processing in a virtual modular synthesizer. The introduction of latency, and higher overall CPU use, are inescapable. What do you all think? Would it be worth it?

- Dan @ Cherry Audio
Last edited by cherryDan on Tue Feb 12, 2019 6:23 pm, edited 1 time in total.

Post

What about a control and allocation system that determines on the fly the optimal or near optimal configuration of modules to assign to a core so that all cores can be involved? :phones:

Post

#rekt

Post

plexuss wrote: Tue Feb 12, 2019 5:39 pm What about a control and allocation system that determines on the fly the optimal or near optimal configuration of modules to assign to a core so that all cores can be involved? :phones:
In general it's not a question of involving all cores, though some modules, like a VCA, are close to "free" from a CPU perspective, while other modules, like a filter or a reverb, can use a lot of CPU. And, even the most optimal load-balancing approach doesn't solve the unsolvable latency problem. That's a serious concern for me, personally. Complex patches that feed back on themselves are part of the fun of modular synthesis, and we're hesitant to lose that immediacy and realism by introducing latency into the signal path.

- Dan @ Cherry Audio

Post

cherryDan wrote: Tue Feb 12, 2019 6:23 pm
plexuss wrote: Tue Feb 12, 2019 5:39 pm What about a control and allocation system that determines on the fly the optimal or near optimal configuration of modules to assign to a core so that all cores can be involved? :phones:
In general it's not a question of involving all cores, though some modules, like a VCA, are close to "free" from a CPU perspective, while other modules, like a filter or a reverb, can use a lot of CPU. And, even the most optimal load-balancing approach doesn't solve the unsolvable latency problem. That's a serious concern for me, personally. Complex patches that feed back on themselves are part of the fun of modular synthesis, and we're hesitant to lose that immediacy and realism by introducing latency into the signal path.

- Dan @ Cherry Audio
What if it were a user configurable option? Option to turn on multi-core but give up some things?

Post

Is it possible to use Xfer Cthulthu as sequncer through vst host?

Post

cherryDan wrote: Tue Feb 12, 2019 5:31 pm
However, there is another issue. Take a typical configuration - an oscillator into a filter into a VCA into a system output. First the oscillator has to generate a signal, then the filter can filter it, then the VCA can attenuate it, and then the output can transmit the signal to the sound card. You cannot perform these operations in any other order, as each step is dependent on the previous step. So, consider the multi-processor scenario.
How does a non-modular synth solve the multi processor issue as they also work according to this signal flow?

Post

Stefken wrote: Tue Feb 12, 2019 6:32 pm How does a non-modular synth solve the multi processor issue as they also work according to this signal flow?
Imagine a virtual Memorymoog synthesizer, with 3 oscillators, 2 envelope generators, a filter, and a VCA per voice, and 6 voices total. Each voice is entirely independent of every other voice; nothing about voice 1 changes in any way if voice 2 is playing. As a result, 6 processors can be employed, with each processor mixing a single voice. If the sound card wants 128 samples, each processor can independently mix 128 samples, and when those tasks are complete, the six 128-sample buffers can be mixed together and run through the master volume control to create the final output.

In Voltage Modular, or any virtual modular platform, you could easily recreate these 6 Memorymoog-style voices -- but then the output of Voice 2 can be used to modulate the frequency of voice 1, voice 3 can share a filter with voice 4, and voice 5's oscillators can sweep the pulse-width of voice 6. And the combined mix of all voices can be fed back in to voice 1's filter for some bizarre feedback craziness. It's this limitless flexibility that negates the traditional multi-threaded mixing architecture.

- Dan @ Cherry Audio

Post

The spinlock thing seems a little inefficient to me as well. Rather than having a specific routine
that checks for a condition in order to initiate an action, it would be better to have another
process that presents the desired condition as a consequence of it's execution. E.g divert it for
for something else, so that the process of taking it, results in the lock situation.

Of course I only say this based on a vague understanding of the actual problem as I am too lazy
to actually have a look into it.

Post

pekbro wrote: Tue Feb 12, 2019 7:12 pm I only say this based on a vague understanding of the actual problem as I am too lazy to actually have a look into it.
I could be wrong here, but... if everyone starts doing this, it'll soon feel like we're all on the interwebz or KVR or something :oops:

Post

cherryDan wrote: Tue Feb 12, 2019 5:31 pmThe end result is that, while the work will be split between multiple processors, the overall CPU use will be higher - potentially a lot higher, depending on the situation, as you explained.
You've misunderstood my post. I'm not suggesting using a simple spin barrier or for you to break the 1-sample cable latency rule.
Last edited by vortico on Tue Feb 12, 2019 9:37 pm, edited 1 time in total.
VCV Rack, the Eurorack simulator

Post

pekbro wrote: Tue Feb 12, 2019 7:12 pm The spinlock thing seems a little inefficient to me as well. Rather than having a specific routine
that checks for a condition in order to initiate an action, it would be better to have another
process that presents the desired condition as a consequence of it's execution. E.g divert it for
for something else, so that the process of taking it, results in the lock situation.

Of course I only say this based on a vague understanding of the actual problem as I am too lazy
to actually have a look into it.
It depends, spinlocks can be more efficient when there is a lot of switching. The overhead of stopping-switching-restarting a process or thread can be more processor intensive than the spinlock. There is a trade-off so engineers need to analyse/simulate/measure to find the solution which performs best in a given situation.

Post

That certainly makes sense ^ Anyway, an interesting problem to be sure.

Post

i have bought the cherry audio voltage modular core + electro drums, yesterday, after a trial period of two days, or so.
i have controlled my GAS and only bought the additive oscillator. the PSP additions don't do it for me, the vult, and ALM are attractive.
the main reasons why i bought the voltage modular, for making a kind of own "sampler" mangling instrument. although the sampler 1 is simple, it couldn't replace the samplers in VCV (and VCV and me, although it is a great concept, i can't do the things i want to with it, the reason? i do not know).
and for the plugin host (need ms20 filters, use the korg ms20 fx....), and that it is standalone and vst3 (because i use mainly cubase 9.5 pro, next to ableton and maschine).
and the drum possibilities (although i own arturia spark + CDM, that also has a modular emulation for certain dum kits, and you can create your own).

i already made some simple presets, and i like the way voltage modular works. and the cpu usage is low, very low, even on my old laptop, it can handle everything.

i am greatfull, that someone mentioned openGL in this thread, i almost reported a bug about crackles in cubase (not latency spikes, or cpu spikes), but openGL fixed that.

i still like the softube modular (which i own, with all the modular specific modules, and the tsar-1r reverb, no heartbeat..), the results i get with softube are very different than with voltage modular.

it is a nice, what do i say; a very nice addition to the modular world, i also own reason... and reaktor 6....

the GUI isn't atttractive, but the overview it gives is excellent, in the end it is all about sound, not looks.

i bought it for a insanely low price, by the way. sorry cherry audio, that resellers have lower prices, and in the cart, give another discount... (or insanely low, it was $30 lower than on the site...)

Post

Just thought i would drop in and ask how everyone is getting on with voltage. Are there any new exciting oscillators and filters? I really liked the super osc and lfo/env....but are there any new ones? I actually really liked the softish sound of the voltage oscillators, but are there any that are significantly different in sound?
Probably going to (finally) buy it next week. I will def wanna try the PSP stuff.

Post Reply

Return to “Instruments”