Reaktor - schroeder allpas
This is a schroeder allpas taken from a max msp tutorial
For those unfamiliar with max , the tapin~tapeout~object is basically a delay , where tapin~ is equivalent to reaktor dely audio input , and tapeout~ reaktor's delay audio output.
In the max msp implementation you can see that the negative feedback coeeficient(red quare) is mutliplying the tapout ( reaktor delay out ) =feedback comb
THe positive feedforward comb = green
And this is the reaktor implementaion
BUt here is the adsr tutorial , which actually reverses the feedforward and feedback comb
where g=feedback coeef
Which would be like this
SO is the adsr tutorial wrong when it comes to schroeder allpas ??
Comments
-
Hmm , but then this diagram , the negative coefficient '-g' is fter the adder , where the diagram in the first post it's reversed .
0 -
And this is the reaktor implementaion
This is reminiscent of a diffuser delay circuit
0 -
Well it's a schroeder allpas in series
0 -
iirc, the 'Schroeder Allpass' that everyone uses - the one in your first pic - is a refinement of Schroeder's original (maybe by gardner? can't remember offhand).
EDIT:
Although this is not relevant to your initial post, sorry :)
ADSR tutorials are great, but they are not always 100% correct, or best practice. Go to academia if you want that!
0 -
I build some schroeder reverb in reaktor and it's sounds ..hm well interesting
3 allpass in series going into 4 parallel combs
THere are some online papers about combfilters into all pass , which makes it confusing
I thought the original was ap into comb
0 -
I am till confused which one is behaving as a schroeder allpas becasue the results are different depending where I put the explicit unit delay .
On the schroeder allpass it doesn't show but since it's digital it has to be somehwere .
First example shows without a manually inserted z-1 , reaktor places it in front of the delay module .
Seconde example , the z-1 is placed before the feedback
input audio =1 unit sample
0 -
You don't need a unit delay because there is already a delay line in there. Unit delay is only necessary where not having one would require a significant revision to the laws of physics.
This might be problematic in Primary (dunno?), but in Core it just works, assuming the delay has been correctly built with the solid parameter deactivated in the properties pane.
If you need a unit delay in Primary, make the main delay one sample shorter, and stick the unit delay immediately after it, then pretend the output of the unit delay is the output of the main delay line
0 -
I am well aware that I don't need to put a unit delay in there .
I was stating that WHEN I do , the result is different becasue of the phase cancelation (feedforward-feedback gain coeff.) occurs depending on where the unit delay is inserted .
I also realised that the schroeder allpas is just a diffuse delay line ( already mentioned earlier in the thread by Z gabr )
It's a bit confusing jumping back and forth between reaktor and pure data .
reaktor diffuse delay = allpass in pure data ( delay line with feedback coeff , and feedforward coeff ) , and ofcourse reaktor diffuse delay is an allpass when delay=0
Now , depending on what the feedforward coeff is multiplying ( see my verry first post about the 2 possible schroeder allpass iplementations ) is equivalent to the negative or positive gain coeff.in primary diffuse delay
0 -
"I am well aware that I don't need to put a unit delay in there"
why are you using one then?
0 -
Because then you can decide WHERE to put it in the feedback loop when creating the schroeder allpas .
I have already explained that 4 posts backThere is a difference between the upper ( automaticially inserted by reaktor beefore the delay ) and lower structure (manually inserted after the delay )
Both receive an impulse file , yet the output is different because of the placement of the unit delay , unipolar versus bipolar output
And here's the file0 -
The point I'm making is that in core you absolutely do not need one because there is not implicit one. This is due to there being a delay line.
I'm not sure about Primary, but if Primary does generate an implicit z (which would be quite strange, and should be considered a bug in the context), then the only place to put an explicit one is directly after the delay line.
0 -
you need to treat the unit delay as part of the delay. if the delay for the feedback path is different to the delay for the feedforward path it's not an allpass anymore.
2 -
I see that pesky z in there. It really shouldn't be necessary, and wouldn't exist in core (you should really be using core for low level DSP like this IMO)… anyway, here is what I would consider to be a more correct version:
In your version, the delay time in the feedforward path is 22, but the delay time in the feedback path is 22+1/SR. In the lower edited version, the feedforward and feedback paths have the same delay time.
For a completely accurate response, You need to adjust the delay time by subtracting 1/SR to account for that unit delay.
Same thing in core. No need for a z^-1 unit delay. Core knows that the delay line means it will just work.
0 -
hehe, you beat me to it while I was busy trying to promote core
1 -
yeah, core is the way to go here.
0
Categories
- All Categories
- 19 Welcome
- 1.3K Hangout
- 59 NI News
- 671 Tech Talks
- 3.5K Native Access
- 14.8K Komplete
- 1.7K Komplete General
- 3.9K Komplete Kontrol
- 5.1K Kontakt
- 1.5K Reaktor
- 347 Battery 4
- 771 Guitar Rig & FX
- 398 Massive X & Synths
- 1.1K Other Software & Hardware
- 5K Maschine
- 6.5K Traktor
- 6.5K Traktor Software & Hardware
- Check out everything you can do
- Create an account
- See member benefits
- Answer questions
- Ask the community
- See product news
- Connect with creators