DSP algorithms

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

Post

Maybe a 2 dimensional array of virtual musicians who's tuneing reacts proportionaly to the 2 dimensional distance of the virtual musicians around them all set within a 2 dimensional or maybe even 3 dimesional surround sound sound environment!

I must stop taking theses pills!

Joe

Post

That would be "fat" though!

Post

joer wrote:Maybe a 2 dimensional array of virtual musicians who's tuneing reacts proportionaly to the 2 dimensional distance of the virtual musicians around them all set within a 2 dimensional or maybe even 3 dimesional surround sound sound environment!

I must stop taking theses pills!

Joe
this can't be beaten :D :D :D

Post

I think the fourth dimension maybe rearing it's ugly head!

Post

What?
Did now all come down to delay lines to modify the pitch? Again?
Isn't that a multi chorus or pitch shifter then finally? Again? :hihi:

The concepts you are looking for, are EXISTING already.

Look at Vocal Harmonizers, Multi Chorusses, Ensemble Pitch Shifters and similar. There are allots, as digital hardware or even as VST plugins.

You would not invent anything new. Merely reimplement some well known (and hundereds of times used) algorithms of DSP.

(Btw: Some of those concepts introduce latency, by the way.)


A DSP tip:
TDHS (I am sure, you Gurus are able to google the meaning of those four letters by yourselfes) could be an alternative. There are different implementations (and descriptors) used for doing similar techniques - it is merely the base principle.
At least it would not do any demage to take a look at those concepts to somehow "enlighten you"...


But that all leads finally NOT to Unisono.
But interesting stuff never the less.

.

Post

No, I suggested a phase vocoder.

I'm not sure if Time Domain Harmonic Scaling is suited for this effect as it's not clear what kind of input material is gonna be used. With some bad luck you end up with a higher latency for TDHS than for any FFT based approach.

TDHS is basically about looking for repetitive patterns within the signal so that cycles can be omitted or repeated. This increases/decreases the length of the material, so you can play it back faster or slower at a constant rate. This of course needs caching for look ahead, thus introduces latency.

Think of it as counting zero crossings until a sample range of 2, 4, 6, 8 whatsoever looks mostly like the range of 2, 4, 6, 8 before. If they look more or less similar, you have found something that you could either repeat to create more cycles or discard to get rid of cycles.

As far as I know this method is mostly used in conjunction with non-realtime effects, i.e. audio files get analyzed offline, to mark the repetitive elements in kinda table and played back at variable speed / pitch in realtime based upon that table. I could imagine that ACID, Live etc. use this method. An example for a realtime effect could be Autotune which is more or less limited to monophonic signals. Thus I can imagine that it's rather difficult to do TDHS on signals from polyphonic sources in realtime.

A phase vocoder is basically the algorithm shown at Mr. Prosoniq Stephan M. Bernsee's dspdimension.com - it FFTs the material, redistributes the location of the frequency bins according to a frequency factor and adjusts the phase location in order to "get the frequencies between the bins" before it inverse transforms them into actual samples. Like every FFT based method, this introduces latency, but unlike former approach the latency is fully predictable. Full source code is available. It's not so much dependent on the nature of the input material but it's known to "smear". However, I think the smearing gets worse with more extreme scaling factors, thus a little detune of a few cents might sound okay.

Example implementation: http://www.kvraudio.com/get/978.html

Cheers,

;) Urs

Post

Well.
The phase vocoder has some other problems. Especially when pitch scaling is applied, right?

And Mr. Bernsee is not the only one presenting (implementing) that algorithm, by the way.

I realized the J&H Audiopitch (was offered for download here at kvr some time ago) with a phase vocoder technology (FFT/iFFT). So believe me, there are some heavy latencies and always a strange result with low frequencies, you know?
And the higher the frequency resolution is, the more signal smearing and latency you would earn (in realtime) then. This lies in nature ot that process ...

A very common problem with the phase vocoder is also phase drifting if you perform stereophonic signals and shift the pitch.

And it takes (even if applied pitch scaling) an enormous amount of processor power due to required larger window overlapping - otherwise you get the typical transient repeation (granular scattering) with higher amounts of pitch scaling. That performance usage would also *multiply* proportional with each synthesized "cloned voice" this way. Merely the analysis step needs to be performed ones. The (intense) resynthesis step must be repeated for each single clone of the original input then ...


It may be possible. But limited and with some of the difficulties above. And the amount of latency would not be applicable to especially synthesizers for some reasons.


Otherside I also wrote J&H OmniVox (a PSOLA based realtime multi channel voice harmonizer), which was also available for download here at kvr. That effect (basicly TDHS) introduces allot of latency too as you said and requires "monophonic" input with certain frequency range and well defined fundamental frequency. But produces excellent result with cloning of human voices (due to the implementation of formant correction / formant shifting).

But I never would get even the "idea" to call that "Unisono"! (Althought the sonic result may be very equal to Unisono if all voices have the same fundamental frequency and merely slightly detuned ...)

But would be very appliable to multiplicate a single (solistic) voice, because it actually performs in realtime without any problems and relatively low CPU usage. But latency (which compensates whith human vouice processing better). Demonstrates very practical, what's possible with that TDHS technology ...


Because the fact, that you want to apply the "Unisono" as an effect, that algoritm would be useless, because then you (or the user at least) probably would also try to pass polyphonic material thru it - which don't work for some obvious reasons then...


Then we are back at FFT/iFFT, right? Because that is able to perform polyphonic material with ease ...


Some better results probably could be a "hybrid" connection of TDHS (or PSOLA) and Phase Vocoder, as realized with DIRAC by S. Bernsee? I really dunno.


But I doubt very much, that this would be finally applicable to that "Effect" you have planned here for some reasons ...

And the complexity and DSP calculating overhead of such an effect could easiely exceed the performance usage of a REAL UNISONO PROCESSING ... :hihi:


Now we actually are back again at the starting point of that entire discussion:

Is an "Unisono Effect" (outside of chorus-like common delay line techniques) possible? And if Yes, ist then applicable (latency issues)? Does it even reduce the processor power needed to produce at least the sonic result of Unisono (in a cheep way)?

Or is it the simplest way to process Unisono directly (as in the sense of the "inventor") for some or all of those reasons? Even with synthesizers in realtime ? ...


Questions over questions...
... still after that whole brunch of pages with discussion about the topic.

.

Post

By the way, I just got the info for the website update by S. M. Bernsee per e-mail. Regarding the DIRAC licensing.

Go here: http://www.dspdimension.com/data/html/dirac.html


Well, that is because I had discovered that DIRAC thingy long time before (did very similar resurch in that area in the past years).

.

Post

1) There is someone, in this thread, who has a problem with names, things and models.
Unison is having multiple actual instruments/singers playing the same notes in sync, with unavoidable differences in tuning, delay, phase, timbre, loudness, reverberation etc. that depend on the specific case.
Digital "unison" is anything out of some digital processing that sounds like actual unison but it isn't.
An "unison effect" of the type discussed in this thread is a somewhat magic box that sounds like unison but works on a "solo" audio input, as opposed to a trivial mixer of ready-made synchronized different signals. A "chorus" effect is an unison effect implemented in a specific way that someone finds cheap.
2) As always, there are no intrinsically good or bad algorithms, only good or bad sounds; and the ground truth to compare an unison effect against is quite limited, since duplicate parts are used for choirs, strings and a few other orchestral instruments but synths and many instruments are normally played alone.
3) Feeding multitimbral input to an unison effect is nonsense: only specific instruments are to be fattened, and each differently.
In addition, most actual music has a fixed number of identical or similar instruments that play in unison, play solo, remain silent or play something different at various points in the piece; with MIDI sequences and synthesizers the only sensible representation is completely separate synth instances that are mixed down the road. An unison effect is therefore useful only in special simple cases.
4) Different algorithms for unison effects can sound good on different source material. Finding an universal solution should not be a priority, especially considering that software effects don't have complexity limits.

P.S. I might have repeated previous arguments, excuse me for not reading in full six pages of flames and long posts in German.

Post

I've been trying different methods for processing a saw wave to get a "supersaw". I've been using pitchshifting by a varying random amount. I changed the amount of pitchshift every time the read pointers for the delay line wrapped around. I ends up sounding something like a chorus effect without the periodic nature or something like a unison effect without the stacked oscillators.

Post

G-Spot It could be considered somewhat inconsiderate to jump in on a thread, rehash what has already been said, pointing out the obviouses and then excusing oneself by saying "I didn't bother reading the thread"... :)

But I'll let pustekuchen decide whether any points you've made are worth commenting :D

Doogs Does your experimentation indicate you're working on a new instrument? :) Hope it does.

Regards,

JMH
Now available with added Inherently Suspect Justification!

Post

@pustekuchen:
Gehen wir mal kurz von einem Orchester aus. Ein Großes Orchester sitzt auch in einem großen Saal (weil es anderswo keinen Platz hätte) und ein solcher Saal verursach Hall (der bei einem solchen Orchester gewollt ist).
Angenommen alle Trompeten würden unisono einen Ton spielen (also alle Trompeten spielen möglichst gleich laut mit selber Tonhöhe), dann würden trotzdem alle Trompeten in ein und dem selben Saal spielen. Der vom Saal produzierte Hall wäre also ein Effekt, der auf alle Trompeten gleichzeitig wirkt. Es bekommt nicht jede Trompete ihren eigenen Saal.

Genauso musst du das bei Synthies sehen: Auch wenn viele Oszialtoren mit gleicher Tonhöhe (zumindest beinahe, Analoge Synths haben da ja teilweise ihre problemchen, genauso, wie echte Instrumente auch nur fast perfekt aber nie wirklich perfekt gestimmt sind) und gleicher lautstärke spielen, können Sie dennoch die selben Effekte benutzen, wie z.B. einen Hall oder auch einen Filter.

Post

G-Spot wrote: P.S. I might have repeated previous arguments, excuse me for not reading in full six pages of flames and long posts in German.
Yes. You definately should have done that (reading all). :)
G-Spot wrote: 1) There is someone, in this thread, who has a problem with names, things and models.
Unison is having multiple actual instruments/singers playing the same notes in sync, with unavoidable differences in tuning, delay, phase, timbre, loudness, reverberation etc. that depend on the specific case.
But can you please say, who that actually is in your opinion: "who has a problem with names, things and models"? Because that kinda hidden advice may lead into just more confusion right now ...

Obviously some people have difficulties to know, who here was right and who not so much ...
G-Spot wrote: Digital "unison" is anything out of some digital processing that sounds like actual unison but it isn't.
An "unison effect" of the type discussed in this thread is a somewhat magic box that sounds like unison but works on a "solo" audio input, as opposed to a trivial mixer of ready-made synchronized different signals. A "chorus" effect is an unison effect implemented in a specific way that someone finds cheap.
There *is no* such categorizing of "analog" or "digital" unisono. And a chorus is even quite different. :wink:

And it is possible to process Unisono inside the digital world. By multiple processing of synthesizer voices (or any other synthesized tone sources playing Unisono), where finally all incoming notes will be multiplied and are playing together with same fundamental pitch with various variations ...

That is in fact realized already with several software synthesizers right. Better or less.

Thus, there is virtually no difference between the analog and the digital processing of Unisono. The accent lies on "processing" here ...

G-Spot wrote: 2) As always, there are no intrinsically good or bad algorithms, only good or bad sounds; and the ground truth to compare an unison effect against is quite limited, since duplicate parts are used for choirs, strings and a few other orchestral instruments but synths and many instruments are normally played alone.
Doubling is quite another theme (but conceptual very similar to the most simple Unisono). :)

It is not a question about "good or bad" here. But we search for an applicable way to do that in the digital domain without any large latency and a resonable sonic result this way (simmulating possible?).
G-Spot wrote: 3) Feeding multitimbral input to an unison effect is nonsense: only specific instruments are to be fattened, and each differently.
In addition, most actual music has a fixed number of identical or similar instruments that play in unison, play solo, remain silent or play something different at various points in the piece; with MIDI sequences and synthesizers the only sensible representation is completely separate synth instances that are mixed down the road. An unison effect is therefore useful only in special simple cases.
Right. :)
Yes, it is nonsense, but do the users of such an effect know that?

I mean, they probably do expect an effect, which "transforms" their synthesizer's output (polyphonic) then into "Unisono" if you actually tell them, that you have "Made The Ultimate Unisono Effect" ...

That was also the reason, why I skipped into that entire discussion here. Because that is of course nonsense. And misleading.

G-Spot wrote: 4) Different algorithms for unison effects can sound good on different source material. Finding an universal solution should not be a priority, especially considering that software effects don't have complexity limits.
No doubts about the sound. :)
But doubts about the fact, whether that are "Unisono effects" or simply some improved "Chorus Effects" ...

.
Last edited by blümchen on Tue Jul 12, 2005 12:54 pm, edited 2 times in total.

Post

Borogove wrote: A delay line is a comb filter - or rather, dry signal plus delayed signal is a comb filter.
at least that's what i heard. i don't really know anything about dsp. comic book artist, me.
Your kidding right?

Post

helium wrote:@pustekuchen:
Gehen wir mal kurz von einem Orchester aus. Ein Großes Orchester sitzt auch in einem großen Saal (weil es anderswo keinen Platz hätte) und ein solcher Saal verursach Hall (der bei einem solchen Orchester gewollt ist).
Angenommen alle Trompeten würden unisono einen Ton spielen (also alle Trompeten spielen möglichst gleich laut mit selber Tonhöhe), dann würden trotzdem alle Trompeten in ein und dem selben Saal spielen. Der vom Saal produzierte Hall wäre also ein Effekt, der auf alle Trompeten gleichzeitig wirkt. Es bekommt nicht jede Trompete ihren eigenen Saal.

Genauso musst du das bei Synthies sehen: Auch wenn viele Oszialtoren mit gleicher Tonhöhe (zumindest beinahe, Analoge Synths haben da ja teilweise ihre problemchen, genauso, wie echte Instrumente auch nur fast perfekt aber nie wirklich perfekt gestimmt sind) und gleicher lautstärke spielen, können Sie dennoch die selben Effekte benutzen, wie z.B. einen Hall oder auch einen Filter.
Nonsense. Then you actually have an effect (a reverb effect regarding your description). And nothing else.
A reverb is in fact an effect, which can be applied afterwards and to polyphonic material and whatsoever...


A synthesizer plays Unisono only then, if it playes the voices together in real Unisono mode. Like the different instruments in the orchestra, which play "Unisono" regarding the partiture.

But that synthesizer playes simply a chorus effect, if that effect is applied afterwards. Then it isn't Unisono anymore.

We discussed that already excessively.

There is also a contradiction in your thesis: You talk about "equal pitch" and the at same time about "detuning". So what? :hihi:

I mean, begin to read all the thread from beginning, because what you have said is all quite clear to us at this moment ...

.
Last edited by blümchen on Tue Jul 12, 2005 1:00 pm, edited 1 time in total.

Post Reply

Return to “DSP and Plugin Development”