DSP algorithms

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

birrbits wrote:
pustekuchen wrote: It simply collects short delay buffers, and playes back with different sample rate...... It tends clearly to scatter with higher amounts of pitch shifting. And it produces Aliasing then (which has to be additionally handled).
have you tried a LPF prior to resampling?
I did say: "which has to be additionally handled". Which meaned in fact: filtering.

.

Post

tl wrote:
pustekuchen wrote:How do you find the Idea of switching a plugin internally automatically off an on, regarding silent (zero) input?

All possible available audio effects consume permanently processor power with silent input for some reasons ...

I tend to use it generally when building processing intensive plugins.
I think that's a good idea...

Being "neugierig" I tested Omnivox and Audiopitch with 'bs.wav' in Audiomulch:
same crackles...

... Könnte es sein...?

Strange that I never came across
this behavior using those plugs in the past...

It would be great if you could fix Omnivox & Audiopitch the same way you fixed Detunator.

And again great thanks for yr work...

Cheers,
tl.
No, that isn't strange.
Because I also did not come across while testing.

I merely used constant playing audio files for testing (which is just more "normal").

The reason for the crackle is, that if you have some unexpected silence between the audio parts, then the internal "Auto Suspender" works, but I did forgot to consider, that the effect has a constant latency of certain block size.


Thus, I must ensure, that the effect switches not off too early.... because if input is zero, so there may be some content in the internal processing buffers never the less, which are then cutted off badly ...

That was the problem.

I will update AudioPitch and OmniVox next time. But not today. I'll give you an advice if it is done.

.

Post

pustekuchen wrote:
birrbits wrote:
pustekuchen wrote: It simply collects short delay buffers, and playes back with different sample rate...... It tends clearly to scatter with higher amounts of pitch shifting. And it produces Aliasing then (which has to be additionally handled).
have you tried a LPF prior to resampling?
I did say: "which has to be additionally handled". Which meaned in fact: filtering.

.
the keyword in my question is "prior"
so I then assume that the scattering is not a byproduct of the aliasing..?

Post

Of course prior. When else?
No. the scattering is not a product of aliasing and occurs only with higher amounts of (simple) delay line based pitch shifting.

That can also happen with FFT/iFFT, if the overlapping is not dense enuff.

But there are workarounds, of course. It don't happen with PSOPLA for instance (and conceptually), which is also time domain and very similar to to the principles of delay line. But you cannot process polyphonic material with PSOLA for some reasons.


(By the way: My explaination was merely for users, not for developers. And so it was not a "paper" or any "thesis", which has to be scientificly confirmed. It should be a simple explaination.) :wink:

.
Last edited by blümchen on Fri Jul 15, 2005 8:34 pm, edited 2 times in total.

Post

What is the simplest pitchshift algorithm? apart from just changing the samplerate ,Is there some code around to have alook at? I am working on my own algorithm at the moment but I would like to have alook at how it is done "traditionaly"!

Joe

Post

I see what your saying concerning the overlapping,
no thesis necessary :)
my sig will go here

Post

joer wrote:What is the simplest pitchshift algorithm? apart from just changing the samplerate ,Is there some code around to have alook at? I am working on my own algorithm at the moment but I would like to have alook at how it is done "traditionaly"!

Joe
google SOLA or SOLAFS and pitchshifting

Post

birrbits wrote:
joer wrote:What is the simplest pitchshift algorithm? apart from just changing the samplerate ,Is there some code around to have alook at? I am working on my own algorithm at the moment but I would like to have alook at how it is done "traditionaly"!

Joe
google SOLA or SOLAFS and pitchshifting
By the way, you have to separate monophonic input processing algorithms from polyphonic input processing algorithms.

If you categorize pitch shifters, you usually have to classify them also by the kind of input they are able to process.

Therefore I left out all specialized pitch shifters in my descriptions (all which require monophonic material with well defined fundamental frequency and range), but merely described algorithms, which are able to process any kind of audio material (as the user commonly would expect from a pitch shifter).

TDHS algorithms, like PSOLA, SOLA and SOLAFS require all synchronisation driven by a pitch detection algorithm (prior).


That are not the simplest algorithms, but the most complex (even if used for realtime processing) in my opinion ...

So the simplest pitch shifting algorithm is the delay line based pitch shifter, which for instance is also used in a chorus.
Because it needs no pitch detection, can process even polyphonic input without any problems, has very little latency and processes fast in comparsion to any of the others.

Detunator uses that for some obvious reasons.

.

Post

joer wrote:What is the simplest pitchshift algorithm? apart from just changing the samplerate ,Is there some code around to have alook at?
Joe, that one sounds nice and comes with full source code: http://www.dspdimension.com/data/html/pshiftstft.html

--th
I'm the stereo chancellor

Post

pustekuchen wrote:So the simplest pitch shifting algorithm is the delay line based pitch shifter, [...] because it needs no pitch detection, can process even polyphonic input without any problems...
You must be deaf, pustekuchen...

--th
I'm the stereo chancellor

Post

Ah, much obliged. I managed to find it eventually - it is the little downward pointing arrow on the left side of the plug-in wrapper. I was looking under system settings, and it wasn't there. Nor in the help, and even Google couldn't assist :( Nice plug in too ! Thanks

Wolf

pustekuchen wrote:
wolf_of_badenoch wrote:Where about is the setting for "use constant blocksize" in FL Studio ?

Wolf
Answer already made:
And the crackles disappear if you choose 'use fixed size buffers' from the dropdown menu under the icon on the left corner.

Regards,

JMH

Post

tahome wrote:
pustekuchen wrote:So the simplest pitch shifting algorithm is the delay line based pitch shifter, [...] because it needs no pitch detection, can process even polyphonic input without any problems...
You must be deaf, pustekuchen...

--th
What?
Even you (who obviously did not understand the simplest things regarding that entire theme - see the DIRAC topic here) must call me deaf? :x

To the others: That actually is the guy claimed, that time stretching could be performed in realtime with a plugin ...

.
Last edited by blümchen on Sat Jul 16, 2005 3:38 pm, edited 2 times in total.

Post

tahome wrote:
joer wrote:What is the simplest pitchshift algorithm? apart from just changing the samplerate ,Is there some code around to have alook at?
Joe, that one sounds nice and comes with full source code: http://www.dspdimension.com/data/html/pshiftstft.html

--th
By the way: That is FFT pitch scaling, my friend.
And thus, it is probably one of the most complex algorithms, not the simplest ...

And it is NOT even "traditionally" for some obvious reasons.

Obviously you are deaf...


PS: Try to perform that with 16 instances of pitch shifters in realtime to provide a stereo "unison effect" with 8 voices ... :hihi:

Cheers.

.

Post

pustekuchen wrote:TDHS algorithms, like PSOLA, SOLA and SOLAFS require all synchronisation driven by a pitch detection algorithm (prior).
SOLAFS requires pitch detection? since when?
or are you refering to the correlation function used to realign the samples? that is NOT a pitch detection algorithm, its just crosscorrelation.

The problem with merely modulating to shift pitch is that all frequencies shift by the same amount, this is far from musical. So if your talking realtime audio input with decent 'musical' pitchshifting (that can shift more than an octave) and a low CPU hit an algorithm like SOLAFS is the easiest thing to implement that I am aware of.

Post

birrbits wrote:
pustekuchen wrote:TDHS algorithms, like PSOLA, SOLA and SOLAFS require all synchronisation driven by a pitch detection algorithm (prior).
SOLAFS requires pitch detection? since when?
or are you refering to the correlation function used to realign the samples? that is NOT a pitch detection algorithm, its just crosscorrelation.

The problem with merely modulating to shift pitch is that all frequencies shift by the same amount, this is far from musical. So if your talking realtime audio input with decent 'musical' pitchshifting (that can shift more than an octave) and a low CPU hit an algorithm like SOLAFS is the easiest thing to implement that I am aware of.
Intresting. :)
I'll take a closer look at that (maybe I mismatched something).


Could you actually post some code here, so that we can see, how simple it is?

.

Post Reply

Return to “DSP and Plugin Development”