half-wave rectifier octave vst?

VST, AU, AAX, CLAP, etc. Plugin Virtual Effects Discussion
RELATED
PRODUCTS

Post

You seem to know what you are talking about - but I just can't follow the logic at all. I'm talking about a pitch shifter - just one that is permananent stuck on an octave, because they should be easy. Like a tape recorder playing at twice speed - the source material doesn't matter whether it's monophonic or polyphonic - it all gets shifted up, formants and noise and all.

The only problem with trying to make an octave plugin is that playing the wave at double sample rate means that you need to double up the data or else there would be 50% silence in between wavelets. Surely the simple easy solution is to play each full wavelet pair twice. (I'm assuming that a 'wavelet' is the correct word for all the samples between one zero crossing and the next). As I see it, this should work glitch-free because the maths is a simple X 2. Other intervals would be very difficult - i'm not going there.

This started with a discussion of full wave rectification - and obviously that introduces harmonics. You just need to draw a sinewave and flip the negative wavelets to see that this would create peaky triangle waves on the negative side.

My idea would ensure that a sinewave going in would come out as a sine wave at twice the frequency. Considering all sounds are made out of sinewaves - that should mean this is a better octave effect than full wave rectification.

I would love to see somebody make a synthedit version and see what it sounds like ...

That waves from the version posted earlier are butchering a sinewave in a odd manner - not what i'm talking about.

Post

Full wave rectification is good with the added harmonics, that's why octave pedals are considered distortion effects.

If you just want a pitchshifter, there are several options available, including several with very little latency.

Post

The original poster said "i just want something that does clean octaves". The thing about pitchshifter is that the smaller the latency, the crappier the sound quality. They are also design with algorithmns that can do any interval in cents or semitones. They just sound bad generally. I think there is a worthwhile idea for a plugin here. Seems to me that whatever approach requires handling of wavelets - down to bass fundamentals, so fairly big buffers/hi latency. Why not one plugin that does them all? Half wave, Full Wave, and this double wavelet idea. I can think of two implementations of doubling wavelets. One would preserve the postive & negative pairs, meaning sinewave in = sinewave out. The other idea would be simply repeat each speeded up wavelet as they arrive. So a sinewave in would create an 'M' shaped postive and a 'W' shaped negative. That would be yet another distortion. Who knows what it could be good for?

Post

The big difficulty (as already sayd here) is the propper pitch/zero crossing detection, which must then also work with polyphonic and all kind of very complex material...

I would say, that is simply impossible.

On the other side, most closely comes wavelet/granular techniques to my mind. But those techniques also introduce audible latency and need a well adjusted overlapp and add to prevent any side effects in the resulting signal. Those cannot be pitch synchronuous, if you want to proceed polyphonic sources.

So a fixed size delay line based pitch shifter is probably the simplest solution. Or even a phase vocoder for some higher quality results.

All those work with polyphonic material quite good and can adjust the resulting frequency even freely and are not limited to shift merely octaves, by the way. But there are several drawbacks with each. Latency have all of them if driven in realtime, naturally.


Tip: Try J&H Transponator. There are 4 different algoritms of realtime pitch shifting inbuilt. Maybe one works at least ...

.

Post

shamann wrote:Full wave rectification is good with the added harmonics, that's why octave pedals are considered distortion effects.

If you just want a pitchshifter, there are several options available, including several with very little latency.
Yeah. Rectifier is great!
Make sure, you try out my SE Module of a parametric Rectifier (dry/wet control already inbuilt) ...

.

Post

Not to forget: Very similar in concept but sounding just more "distorted": foldback distortion.

It don't mirror the waves at the 0db mark (like the rectifier) but at a certain threshold of the outer bounds. The principle is quite the same but the sound very different because the new harmonics are directly dependand from the threshold value and the waveform amplitude and not related to the waveform cycle (zero crossing) .

.

Post

nevermind

Post

The big difficulty (as already sayd here) is the propper pitch/zero crossing detection, which must then also work with polyphonic and all kind of very complex material... I would say, that is simply impossible.
Excuse my ignorance, but I would have thought a child could follow my explanation of how to do this. I'll try again ...

Pick a waveform - any waveform. I was using a sine as an example only - but that seemed to confuse some people. ANY waveform has negative and a positive excursions. These are seperated by zero crossings. All you would need to do is take the incoming stream of audio data, and detect the zero crossings. That should be easy. Between each zero crossing, store the entire wavelet into a buffer. Sorry if 'wavelet' isn't the right word - I only learned it from this post, and maybe that isn't correct. I mean the whole half cycle - all the data between the zero points. Have a seperate buffer for negative and postive. That should be easy shouldn't it?? I could do that with Visual Basic.

When a zero crossing is detected following a negative cycle - stream the stored postive and negative data into the output stream. Are you with me so far? This would simply result in the input being streamed to the output with no change. Now - consider what would happen if you streamed the data into the output at twice the sample rate. Each 'wavelet' would play at double speed/double frequency and then stop. If playing at twice speed - you need twice the amount of data, otherwise you get a lot of breaks in the stream.

SO - the simple solution is stream the postive buffer, then the negative buffer, then repeat the positve buffer and the negative buffer.

So to use the sinewave example - an incoming 100Hz sinewave would be stored as two half waves, and then streamed at as 2 whole waves - resulting in a 200Hz sinewave. Or a polyphonic C major triad played on a sawtooth synth would come out as an octave up.

Am I not making any sense? It seems too simple to me - not impossible at all.

Post

greendoor wrote:
The big difficulty (as already sayd here) is the propper pitch/zero crossing detection, which must then also work with polyphonic and all kind of very complex material... I would say, that is simply impossible.
Excuse my ignorance, but I would have thought a child could follow my explanation of how to do this. I'll try again ...

Pick a waveform - any waveform. I was using a sine as an example only - but that seemed to confuse some people. ANY waveform has negative and a positive excursions. These are seperated by zero crossings. All you would need to do is take the incoming stream of audio data, and detect the zero crossings. That should be easy. Between each zero crossing, store the entire wavelet into a buffer. Sorry if 'wavelet' isn't the right word - I only learned it from this post, and maybe that isn't correct. I mean the whole half cycle - all the data between the zero points. Have a seperate buffer for negative and postive. That should be easy shouldn't it?? I could do that with Visual Basic.

When a zero crossing is detected following a negative cycle - stream the stored postive and negative data into the output stream. Are you with me so far? This would simply result in the input being streamed to the output with no change. Now - consider what would happen if you streamed the data into the output at twice the sample rate. Each 'wavelet' would play at double speed/double frequency and then stop. If playing at twice speed - you need twice the amount of data, otherwise you get a lot of breaks in the stream.

SO - the simple solution is stream the postive buffer, then the negative buffer, then repeat the positve buffer and the negative buffer.

So to use the sinewave example - an incoming 100Hz sinewave would be stored as two half waves, and then streamed at as 2 whole waves - resulting in a 200Hz sinewave. Or a polyphonic C major triad played on a sawtooth synth would come out as an octave up.

Am I not making any sense? It seems too simple to me - not impossible at all.
No you don't make any sense.

That is bullshit. Entirely.
You simply don't understand, not me. I explained it already.

Your entire thesis is full of purely theoretical nonsense, which is not even thought to an end.

A sine wave is monophonic material and quite simple to modify. It is also the most primitive case and so not transferable to the real practice. Waveforms and music are quite more complex than a single sine wave (or any other of those simple synthesizer wafeforms).

That crap you suggest would not work with polyphonic material and not with very complex waveforms. Even not with merely two detuned primitive waves for some of those reasons I already described. The result would be absolute tonal garbage. Not even sounding any pleasant.

So again: Phase effects in polyphonic and/or mixed material (due to detuning and phase offsets for instance) would make your idea to absolute nonsense. Except you "design" your effect merely for ultra primitive monophonic waves.

Whatsoever,
if you are really that talented as you claimed, then I suggest you to try it out yourslefes with your Visual Basic. Then you will see what happens...

I did resurch to that entire topic since more than 1 year now. I know, what I talk about. I also realized it as code, by the way.

Come back if you are done. :wink:

.

Post

I see we are going to disagree - that doesn't matter. I guess by your same logic (or lack of it) you probably don't believe that half or full wave rectification could work either (which is what this topic started off from). This idea is related, and I would expect it to sound better.

I don't trust the skill level of anyone who spells 'research' as 'resurch'.

Don't worry about it.

Post

I doubt he would suggest that full wave rectification couldn't work since it's fairly elementary.

The process you are describing is called waveset transposition, a known pitch shifting technique, whereby every pair of zero crossings (a waveset) is replaced by N copies of itself. The process adds what is called signal dependent artefacts (wavesets in complex signals do not represent the same periodicity as they would in a simple waveform like a sine wave, you would get repeats of wavesets that did not reflect the frequency you were hearing).

What you would need to do (assuming you are dealing with a complex sound) is detect true wavecycles by pitch tracking (not just zero crossings, but several sets up to where a cycle of vibrations repeat).

I'd suggest maybe delving deeper into tools like Csound or CDP, and maybe reading Trevor Wishart's work. The CDP guys have been developing these techniques for nigh on a decade, likely already implemented in a way that would be useful for you.

Cheers,
Steve

Post

Thanks Shaman - that makes more sense. Is there any VST plugin that does waveset transposition? For guitarists, fullwave rectification octaving is musically useful (although i've personally found them to be fairly harsh). This seems to me less intrusive than that - and if anyone could make a plugin that does half or fullwave rectification, then this is a very simple next step. I'd love to see a plugin that gives these options.

People like Jimi Hendrix made careers out of using new gadgets like octaving pedals. I don't think this is 'bullshit' as smirky face above thinks. He's the one who hasn't thought it through.

Post

Here's a nice set of free stompboxes from my site. There's an octive pedal in the set.

http://www.ele4music.com/vst/stompers.zip

Regards

Post

greendoor wrote:Thanks Shaman - that makes more sense. Is there any VST plugin that does waveset transposition?
None that I know of, but as far as I know it's usually an off-line process, so DirectX would be more likely. Maybe try searching the web. I'm fairly sure there are Csound opcodes that would do it, and you can run those as VST with Silence.

I doubt the results would be significantly better than other pitchshifters, though. Maybe have a look at Jackly&Hyde's Transponator, Delaydots' Pitchworx, tBt's Octaver, Bram's Madshifta and Octavo, Spectral Monkeyage, and Richard Dobson's pvoc utilities. There are also several offline pitch processors around, mostly based either on the phase vocoder or PSOLA.

All of these are free, and use several different methods for pitch shifting, with results varying from quite clear to quite noisy. To be sure, the octave effects that started this thread are desired for the distortion, so some of the dirtier pitchshifters (like Bram's Octavo, which uses a granular pitchshifting technique and makes a lot of great noise) may be a good substitute. Pitchshifters, as opposed to octave effects, will work more like harmonizers/voice doublers. One thing to note, phase vocoders add latency, so will be inefficient as mixed effects, unless they have a wet/dry built-in.

There are commercial pitchshifters around, too. My favourite is Audio Damage's delay-based Discord, which is good for mixing with dry sounds and odd musical effects, maybe less good for detailed pitchshifting work. Here's a quick demo I made with it for another thread a little while ago. There's no downloadable demo for Discord mind you, but they do offer a "no question's asked" return policy.

Cheers,
Steve

Post

greendoor wrote:I see we are going to disagree - that doesn't matter. I guess by your same logic (or lack of it) you probably don't believe that half or full wave rectification could work either (which is what this topic started off from). This idea is related, and I would expect it to sound better.

I don't trust the skill level of anyone who spells 'research' as 'resurch'.

Don't worry about it.
Your "lack" of knowledge is in that case significant higher than mine. I am still waiting for your prove... :hihi:

.

Post Reply

Return to “Effects”