Scanning single frequencies of a sample to send the to an V/oct of an oscillator

Hi there !

Is there a way to scan frequencies of an audio sample to send them to the V/oct of an oscillator and then also use the amplitude of this single frequency to drive a VCA modulating the level output of the oscillator ? I suppose that has to be done with a FFT module. I tried with Blur with no success. Is there a filter sharp enough to isolate a single frequency from a sample and the return a V/oct value usable in an oscillator. In fact I think the major stuff is to detect the amplitude of a specific frequency to set the CV input of the VCA.

I hope my explanations are clear enough…

If you want the pitch of a signal, Entrian and Nysthi have modules for that. There may be others, but I’ve only tried those two.

I would use the Bogaudio PEQ14 filter bank and PEQ14XF envelope follower for this.

Add another PEQ14 and you have a vocoder.

So you want to extract the amplitude of a specific frequency, not the pitch of the whole sample? I think you need a very precise tunable band pass filter for this. There’s a commercial Unfiltered Audio module that splits bands and gives you amplitude outputs for each band, but I think that just does high/low/mids, (like a multiband envelope follower). Sounds like you need something more accurate? I’m not sure to be honest, but it’s an interesting idea.

I don’t know if you use puredata or maxMsp, but the idea is to do the job of [sigmund~] object in puredata with a bandpass filter with which you can isolate a single (or near single frequency), like in the Fourrier laws saying that any complex sound can be broken down in single sinusoidal frequencies. I would like to get the amplitude of selected frequencies to drive both input frequency of an “funny” oscillator and the CV input of a VCA.

With [sigmund~] you can determine a number of peaks you want to follow the pitch and amplitude of. If you put a BP filter ahead of [sigmund~] with a high Q value (the width of the filter around the center frequency) you can isolate almost a single frequency.

And I don’t know how to do that in VCV beacause I don’t know any BP filter than can be as sharp as BP dilters un puredata or maxmsp. I suppose I could output the signal of the sample player out of VCV and input it into puredata (I’m on linux so with jack I think that can be done easily) and then I don’t know how to send the freq+amp values back to VCV (MIDI is too coarse for that, OSC could be a solution) but it starts to be very complicated and puredata is not very user friendly…

The thing is that I don’t want to use pitched samples but more noisy and irregular sources of sound to recompose them with any kind of oscillator like Palette or another funny stuff of that kind.

Sorry if I’m not clear but my english as some limits…

Thanks I will give a try to that, but I’m afraid the PEQ isn’t sharp enough. I’ll try a bit later, I don’t see any ways to tune the Q parameter.

On the PEQ units you can adjust the bandwidth to be as sharp as you like (it’s the BW knob). If you feed them with white noise you can adjust the bandwidth so tight that you end up with a sine. (This is my new favourite “oscillator”). It will just not follow the source frequency if it moves, and you would have to find the fundamental by ear or with a spectrum analyser. So not exactly what you are looking for.

1 Like

That is very interesting, I’ll try it later and let you know, thanks !

The problem is that the signal level of the filtered/isolated frequency is quite low. Nysthi P2V can detect it but Entrian Follower needs a strong signal to detect a pitch. The signal channel output of the PEQ14 is barely strong enough for Nysthi P2V, but Entrian Follower doesn’t detect anything, I would need a audio amplitude multiplier in order to make it detect the pitch, and all VCAs I found goes from 0 to 1, I would need to go to at least 3, but I think that 5 or 10 would be better. Tne entrian one is great because it follos both pitch and envelop. Do you know any module that can multiply the strength of a signal by 5 or 10 ?

Nysthi has the ScaleOffset module that lets you amplify audio up to 4x,
so maybe two in a row …?

I’ll need much more of those, I tried VCAMP from bogaudio that can amplify up to 12db and I need 3 of them ! That would be great to have a module that can go up to 50 or 60db, but I understand that isn’t a very common use !

There is the option to chain filters to get more extreme cutoff slopes / narrow bandwidths.

Instead of using many filters and keeping their settings in sync, you can go for looping the signal through polyphonic channels/modules (chain in series what is meant for parallel).

Then you can feed it up to 16 times through a polyphonic filter (singleband (LP/BP/HP), multiband (EQ) or resonator or any other module you want to link in series).

You will need to have some V/Oct controll too, to keep the filter at the same harmonics, regardless of oscillator frequency.

The idea is demonstrated by Jakub Ciupinski

VCV Rack Hacks | Supercharge your VCF

I have done many patches with that technique - I love it. But I don’t think it is tight enough for this application. But there is a simple free solution in VCV - read on…

Yes, I also like this technique, but there is still an audible pitch range. The frequency range may be just what you want to give the output some character. But for this application you may want something even tighter - and Bogaudio has yet another solution:

Obviously set the mode to band pass, and again, you need to set the Res/BW to 0. But there is one more trick needed to get a razor thin frequency band - set the Bandwidth Mode to Linear in the context menu. The slope doesn’t matter that much. I generally use 12, but I think it works equally well at 4, or maybe even less.

The filter has a perfect V/Oct response. Simply set the frequency knob to 0 (fully counterclockwise) and then patch in your V/Oct signal to the V/Oct input. Zero volts equates to C4. And the real beauty is the filter is polyphonic, so you can pick out multiple frequencies with the one filter.

If you need to amplify the output, the Bogaudio Offset can amplify the signal by a factor of 10.

1 Like

Maybe go the other way around and start with an additive oscillator?

?? - This thread is not my project. I am just inferring the requirements from what the original poster has said.

That being said, I have messed around a bit with various additive oscillators. The first time I saw someone create a saw wave by summing individual sine waves it blew my mind. But something about extracting pure sine waves from a wall of noise intrigues me more than building up the noise from an array of sine waves.

I’ve done a number of patches where I restrict myself to a single oscillator droning at a fixed pitch, and then I use a combination of filtering and frequency dividers to get all manner of pitches and LFO frequencies.

I’ve actually got a patch that generates a full chromatic scale (each note within 10 cents) across 6 or 7 octaves from a single oscillator droning a saw wave at a constant pitch. I use the Bogaudio VCF to extract the chromatic notes from extreme harmonics between 64 and 128. And then frequency dividers (flip flops) to get all the octaves below. Another round of filtering can get the sine wave for each square wave fundamental, and slew limiters can convert the square wave from the freq dividers into triangle and saw. So I end up with the chromatic scale with all four basic wave forms across 7 octaves, starting from one note. I want to post the patch, but I am waiting for the Stoermelder plugin to be released for V2 - I really want to release with the labels.

There is one limitation of the Bogaudio VCF - it has a high pass filter built in, so it does not do well at isolating extreme bass notes.

I haven’t played much with the VCF but I will now, thanks Dave. The reason I love the PEQ filter bank units is that you can tune each band, for example harmonics or even chords and then modulate them with CV. Each band also has its own VCA so you can get some really interesting textures with whatever audio you patch through it. There is also an expander that sends out each bands envelope CV which I think is what the OP wanted. I think @Omri_Cohen had a video about this.

1 Like

I solved my amplitude signal strength with Submarine AO-106.

This is very interesting but I’m in fact still exploring VCV and try to do what I was doing with maxMsp and puredata in a more “musician” approach. VCV is an instrument, max and pd are, first very complex to use and more “engineer” and educational oriented, I will pd to catch and modify various controllers entries smartphone, Kinnect, arduino, or what ever stuff can output values. As max/jitter and pd can also handle images and videos, that could be interesting as VCV can, if I understod well, take OSC values.

We drifted slightly off from the original problem/question, which generally boils down to:

  • How to extract individual harmonics (or better: frequencies) from a spectrum
  • How to determine the V/Oct for each of these frequencies (so that pitch info can be used as input for some other process)
  • How to determine the Amplitide for each of these frequencies (so that amplitude info can be used as input for some other process)

So, you could view it as a spectrum analyzer with a number of v/oct + amp outputs for selectable frequencies.