Should we add allpass_comb_stretched somewhere in the librairies ? What you think Julius ?
Stéphane > Le 9 juin 2021 à 18:14, Gary Worsham <gary.wors...@gmail.com> a écrit : > > Thanks Julius! > > I also found a Faust definition of a stretched all pass in this reverb > published by Julian Parker in 2013. What's funny is that the stretched > allpass is defined but not used. I'll be giving it a whirl before too long. > > https://github.com/supercollider/sc3-plugins/blob/main/source/DEINDUGens/faust_src/JPverbRaw.dsp > > By the way I made a VST and Windows standalone app from Julian's code: > > https://github.com/HolyCityAudio/Plugins/tree/main/ParkerReverb > > Thanks, > > GW > > On Wed, Jun 9, 2021 at 5:12 AM Julius Smith <julius.sm...@gmail.com> wrote: > > I think that most likely, Faust does not include a library function which > > is a "stretched" allpass and a fixed delay line with an interpolating > > allpass on the end doesn't quite give the same thing... does it? > > I think it does if you use an allpass-interpolating delay line, e.g., > > allpass_comb_stretched(maxN,N,aN,strf) = (+ <: > de.fdelay1a(maxN,N-1+strf),*(aN)) ~ *(-aN) : mem,_ : +; > > (compare to allpass_comb in filters.lib) > > Cheers, > Julius > > On Thu, Jun 3, 2021 at 11:29 PM Julius Smith <julius.sm...@gmail.com> wrote: > Hi Gary, > > I had to google "stretched allpass filters" and found this: > > https://dsp.stackexchange.com/questions/46221/real-time-implementation-of-cascaded-all-pass-filters-from-given-transfer-functi > > They appear to be a special case of what I normally would call "nested > allpass filters". In any case, Faust can certainly do this as well, and it's > a great opportunity for a recursive definition using pattern matching. Take > a look at allpassnt() in filters.lib for an example. (The two-multiply > lattice filter is a nested allpass.) > > Due to negative free time, I will keep a star on this in gmail and circle > back when I can, as I am definitely interested in this project. Quick urgent > questions always welcome, however. > > Cheers, > Julius > > > On Tue, Jun 1, 2021 at 7:22 AM Gary Worsham <gary.wors...@gmail.com> wrote: > Hi Julius, > > I made a brave attempt to read these articles. I only ever got as far as > EE263 and that was more than 40 years ago! Anyway, a few questions regarding > direct form biquad allpasses vs. "stretched" allpass blocks as proposed by > Julian Parker. > > I think that most likely, Faust does not include a library function which is > a "stretched" allpass and a fixed delay line with an interpolating allpass on > the end doesn't quite give the same thing... does it? > I could probably take the Faust library definition of an interpolating > allpass and add the stretching internally. > Only the stretched allpass blocks give that "imaging" effect where the phase > delay maximum is repeated up the spectrum, resulting in the need to low pass > filter to just keep the lowest one. However, now that I think of it with > another cup of coffee, even a single all-pass is going to have that phase > delay peak, meaning that above that transition frequency, the chirp would go > from high to low, while below it, it would go low to high. So you still want > to low pass filter the result so you only get the upward going part of the > chirp. > Looks like calculating the coefficients for these filters requires Matlab and > Newton's method? eeek! That doesn't sound like something that would be too > easy to modulate in real time. > > Let me give a little more background on my actual goal here. A few years ago > I got pretty good at the Spin FV-1 and tried to drum up some consulting > business among guitar amp manufacturers. One of the amp builders I talked to > said "hey can you do that "Vinnie Bell" sound as evidenced on the Ferrante > and Teicher version of "Midnight Cowboy" and "Airport Love Theme""? If > nothing else, this stuff really has to take you back! > > https://www.youtube.com/watch?v=payWL0Y8Dd4 > https://www.youtube.com/watch?v=OsTne8nT8BI > > At first, listening, especially to the Airport one, I thought, well that's a > VCF with a really fast trigger going down and what we are hearing is the > upward sweep of the envelope decay - going into a short delay with a little > feedback. So I tried and tried to replicate that sound but I always heard > the initial sweep down. It's still a cool sound but it's not this. So then > I did my best to isolate some of the notes in Airport Love Theme and > generated a spectrogram using Audacity. That's when I saw the chirps. > Having read the Parker paper previously, but not having understood what his > images meant, it all suddenly made sense! They are about 50 msec apart, > there is no discernable sweep down at the beginning, and each successive > chirp per note is more and more flattened out. The transition frequency is > about 1750 Hz. As I understand it, that is VERY LOW for a typical spring > reverb. > > <image.png> > > I was talking to Jim Thomas, guitarist and composer for The Mermen, once a > few years back and played this sound for him, and he immediately said "oh > that's a spring reverb". I never got the sound with an FV-1 although I did > make some chirp blocks just to see what would happen. Exactly HOW Vinnie > Bell got this sound has been the subject of much debate since Vinnie invented > many of his own effects (and the electric sitar). Vinnie was always > reluctant to share his secrets and he passed away a couple years back. Joe > Gore concluded it was "really fast phasing" > https://tonefiend.com/live-looping/midnight-cowboy/ but I don't think the > spectrogram bears that out. I've wondered how he did it as well, considering > he was just one guy, not Bell Labs, working in the mid 60's. So it probably > WAS a spring reverb with just a single spring. As far as how he got the > transition frequency down to 1750 Hz, he either used a custom spring, or > (how's this for a wild guess) recorded it at 15 IPS and played it back at 7.5 > IPS? I mean, there's no evidence that this sound was ever created live on > stage anywhere. > > Phew! Sorry. So that's the kind of sound I am going for, and it being > really true to any real spring is not really a design goal. If anything I > would like to take that chirp into the outer limits by making it really long, > changing the transition frequency independent of the delay time (to the > extent possible), etc. It might also be interesting to see what happens if > you were to vary some of the aspects of the chip with the guitar's envelope. > > Thanks, > > GW > > > > Virus-free. www.avast.com > > On Fri, May 28, 2021 at 9:10 PM Julius Smith <julius.sm...@gmail.com> wrote: > HI GW, > > I would use this method (simple fi.tf2() biquad allpasses in series): > > https://www.researchgate.net/publication/224106863_Robust_Efficient_Design_of_Allpass_Filters_for_Dispersive_String_Sound_Synthesis > > @ARTICLE{AbelAndSmithDAFX06, > AUTHOR = "Jonathan Abel and Julius O. " # Smith3, > TITLE = "Robust Design of Very High-Order Allpass Dispersion Filters", > JOURNAL = dafx06, > MONTH = sep, > YEAR = 2006 > } > > Cheers, > - Julius > > > On Fri, May 28, 2021 at 1:00 PM Gary Worsham <gary.wors...@gmail.com> wrote: > Sorry if this is a repeat but I've just signed up for the mailing list again, > and previous submissions said "you're not registered"... maybe I'm in some > sort of limbo at the moment. > ================================= > I'm interested in messing with some structures suggested by Julian Parker's > work on spring reverb emulation. > https://acris.aalto.fi/ws/portalfiles/portal/13004391/art_10.1155_2011_646134.pdf > > This paper suggests an "interpolating all-pass delay". Initially, I don't > think I would care about modulating these in real time, but of course, > everything is better with envelope modulation so I'd probably try that > eventually. > > The library includes a handful of all passes and of course I can try all of > them, but wondering if a particular one would be particularly swell for this > kind of thing. > > https://faustcloud.grame.fr/doc/libraries/index.html#thiran-allpass-interpolation > > https://faustcloud.grame.fr/doc/libraries/index.html#fi.allpass_comb > > https://faustcloud.grame.fr/doc/libraries/index.html#fi.allpass_fcomb > > https://faustcloud.grame.fr/doc/libraries/index.html#fi.allpass_fcomb5-and-fi.allpass_fcomb1a > > Note that I did some experiments in the past with this sort of thing on a > Spin FV-1 and found that chirp block lengths in the 12 to 20 samples range > (at 32768 Hz fs) seemed to work well for this sort of thing. However, the > FV-1 doesn't have enough instructions to generate a very long chirp. I am > really looking to emphasize the dispersion "chirp" in this particular > exercise. > > Thanks! > > GW > > Virus-free. www.avast.com > _______________________________________________ > Faudiostream-users mailing list > Faudiostream-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/faudiostream-users > > > -- > "Anybody who knows all about nothing knows everything" -- Leonard Susskind > > > -- > "Anybody who knows all about nothing knows everything" -- Leonard Susskind > > > -- > "Anybody who knows all about nothing knows everything" -- Leonard Susskind > _______________________________________________ > Faudiostream-users mailing list > Faudiostream-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/faudiostream-users _______________________________________________ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users