Basic VCO - Squinky Labs 1.0.12 update

We have a new module out now, called Basic VCO. It is meant to be a small, no frills, VCO that is exceptionally clean, fast, and small.

At only 3HP wide it qualifies as a “tiny” VCO, but it does manage to pack in more features than you might expect, including octave/semitone/fine knobs, seven waveforms, and full PWM and pitch modulation with attenuverters for each.

Because Basic VCO only has to generate one waveform at a time, we were able to meticulously optimize the CPU usage for each waveform. The resulting CPU usage is very, very low.

We’ve also used all the tricks that we know to eliminate distortion and artifacts in the audio, so it has very little aliasing, almost no DC on any outputs, and not random clicking and popping.

In this release we also made in improvement to Kitchen Sink. The sensitivity and response of the wave-shaper depth was not good. It’s much better now.

22 Likes

Earlier today we made a “patch” with nothing in it but 1000 VCOs. It used 1/3 of one core.

15 Likes

Time for patch then:

:upside_down_face:

4 Likes

Oh,your really cooking now.First the OrganThree,and now - so soon afterwards - this.

1000 VCOs = 1/3 of a core !!! I know I’m no expert,but this seems like it should be pretty much impossible. I’m sure more experienced users than me will be coming up with all kinds of massive creations.

Mind you,many-thousand-VCO monster patches aside,given the flexibility of these,combined with the efficiency,all kinds of really complex patches,utilizing many,or all,of the different wavefoms will no doubt be possible,with a Very low CPU hit.

Congratulations on two outstanding releases,in less than a week.

1 Like

Thanks for your kind remarks. Yeah, we like this new gizmo, and it did come together pretty quickly.

Must point out, however, that there are several VCOs that have been out for a while that are quite good and efficient. The Fundamental VCO shows that using SIMD can give a huge speed up in a polyphonic VCO, the Boagaudios are super efficient monophonicaly, and both of these have very low digital artifacts.

Most of the tech is pretty basic or at least familiar. Most of the things we did are in this ancient paper we published: https://github.com/squinkylabs/SquinkyVCV/blob/main/docs/efficient-plugins.md

Then, only a couple of months ago, we published a series of VCOs showing that anyone can easily make a VCO with low artifacts that doesn’t use much CPU: https://github.com/squinkylabs/Demo

Seeing how fast Demo was it became clear that by aggressively optimizing for a single waveform we were able to save a bunch of CPU also for users who don’t need multiple waveforms at the same time.

So we just did those things and it was pretty good. Worked a little more and it was twice as fast again, then declared it done.

2 Likes

I use SAWS a lot. Happy to be able to play with this one :slightly_smiling_face:

3 Likes

Looks delicious, thank you Bruce!

1 Like

You silly person you, been watching Look Mom No Computer again, eh? :wink:

2 Likes

not sure if this is a bug or just unintended use: if i’m mapping a potentiometer controller (i.e. constantly changing cc) via midi-cat to the waveform selector i’m able to end up with a non square waveform while the plugin still says its square when right clicked on the knob … looks a bit like a rounding error of the value mapping to the different stages of the knob maybe? or mapping a cc controller to a knob with several fixed steps is not really intended - can be as well the case …

update: added a screenshot basicvco

This is a problem how “snapping” is done in Rack: In its current implementation snapping of a knob is only known to the GUI of the knob itself, nothing else (especially parameter mappings) can know about it. All snapped parameters have that problem, there is an longstanding open issue on GitHub for this.
Someone should implement a SnappedParamQuantity to handle this correctly.

2 Likes

cool thx for the quick info … do you know about any possible workaround until this is fixed maybe?

Actually this just seems to be a bug in Basic VCO. As you guessed, the rounding is different for display and processing. That said, the VCO is not designed to be used this way. It will almost surely “pop” audibly when you switch waveforms while it’s playing.

haha - as to a workaround, isn’t it a purely cosmetic bug? My suggested workaround would be “don’t look at the value in the popup while you are doing this”. That said, if you would like a fix I would be happy to provide one. Assuming you either build your own plugins or use windows.

There is a fix in github now.

I will talk to @stoermelder offline to learn more about these issues.

1 Like

thanks a lot for the fix - most probably you are right that in the end it is just cosmetic - it was just confusing me a bit in the end when i saw something else then a square when according to the knob a square was selected - i initially was thinking that i might have a problem with my arm cpu builds :slight_smile:

1 Like

a lil groove i threw together to wake up my house this mornin -

solo.vcv (41.0 KB)

its Squinky Sunday!!

1 Like

how about a Basic VCF with the same form factor, high quality and low cpu usage as next module? maybe based on a similar philosophy: only do one thing and that properly, i.e. just freq and resonance and switchable lp or hp, only four ports for freq, resonance, in and out … just an idea - i think it would fit nice to the Basic VCO :slight_smile:

That’s an interesting idea. I don’t know as much about all the VCFs out there, not about how to make the ultimate VCF. I’ll keep my mind open as I look around. tx for the tip!

The closest thing that I know of to this is Vult Disjoint.

1 Like

at least low cpu usage so far i found at bidoo’s perco filter, but it is larger and i did not strictly check for artifacts …