Audio to v/oct?

Would Love to input audio and have it translated to v/oct so I can play certain scales that follow certain sounds. It sounds extremely simple, but Im not knowing how to do it . Thanks for helping :slight_smile:

Try Entrian Follower. :slight_smile:

1 Like

If this sounds simple to you then you have not done much programming.


Yeah Entrian Follower has a v/oct output, I find Nysthi’s P2V works slightly better but neither is perfect. It’s not that easy to track pitch unfortunately. I’ve used both those modules to make guitar synth patches.

1 Like

Yes, it’s really hard to overstate how amazing the human brain is at perceiving musical pitch. It is so effortless for us to hear a piano and a trumpet and tell whether they are playing the same note or not. But it’s rage- and nightmare-inducing to try to actually implement this as an algorithm.

And having said, that I will ask you, @Richie, how the heck did you do that in Entrian?


I had some limited success with using Entrian Follower for the envelope and NYSTHI Hot Tuna for the frequency-to-voltage. I think it seemed a bit better than P2V, but I don’t recall why. The main limitation is that it’s sluggish and there’s noticeable (but not impossible to work with) lag.

It did let me use the whammy bar (slowly) on my Jaguar.


The SurgeXT TreeMonster module has pitch detection and a V/Oct output in the latest nightly build. It’s another one to try.


@Richie will be the first to tell you that Entrian follower is ok, but not great. As you allude to, pitch (and beat) detection is a classically hard CS problem. many, many papers written on these topics.

In a word, Autocorrelation.

You take the incoming wave form, delay it a bit, and multiply the two versions together. If the delay is equal to the fundamental wavelength, they’ll reinforce each other and you’ll get a huge wave as a result. If the delay doesn’t match the wavelength, the two waves will be dissimilar and the result will be much smaller.

Repeat that delay-and-multiply for different delays, and the one that gives you the biggest resulting wave is the pitch.

(And yes, the results are “OK, but not great.” :slight_smile: I haven’t tried the one in Surge, but if the rest of Surge is anything to go by, it will be excellent.)


What about this aproach Photosounder Spiral - Spectrum analyser ? It doesnt seem to have a delay. If its a dffirent approach, Would it be translatable to cv?

That is a neat way to display a frequency spectrum! The next question is… how do you calculate that?

Im not a programmer but here are a couple of ideas:

Aranging frequency analizer in a Circle, just as in Spiral VST, and then have a way to control how sensive the frequency response/envelope follower is to the most abundant range of sounds/tones, thus blocking , just as a brickWall filter, all other frequencies outside of that sensitivity spectrum choosen.

More of a visual approach. Some kind of reader which translates bringness into amplitude and position into pitch so it can read, not only Spiral VST visualization, but also other images /videos. Something like this:

But instead of simply a linear left to right reading, it would also be circular/cylical/spiral, where the reading is done from center out /out center and clock wise/ anti clock wise.

This last approach would be revolutionary in many ways. An idea I’ve had for 7 years now.

Cardinal contains an audio2cv module based on aubio.

Due to “reasons” it will not be ported to VCV directly, but someone could take a look at the source and create a GPL module based on it.


Turns out, with the various shuffles to get in the library in the last few days, i was able to sweep this v/oct out into the 2.0.3 release also so tree monster takes its rather-quirky-and-naive-and-not-very-good-but-also-kinda-not-not-good pitch detector and makes it available to you for whatever reasons you may need. You don’t just have to use it to drive the internal oscillator and ring modulator.

1 Like