Re: [music-dsp] Reverb, magic numbers and random generators
I was just about to suggest that maybe something like a low discrepancy sequence could be interesting to explore - such as the golden ratio (which strongly relates to fib of course!). On Mon, Oct 16, 2017 at 10:22 AM, Andy Farnellwrote: > > Bit late to the thread, but if you look around Pd archives you will > find a patch called Fiboverb that I made about 2006/7. As you surmise, > the relative co-primality of fib(n) sequence has great properties > for diffuse reverbs. > > Just reading about the proposed Go spacing idea, seems very interesting. > > best > Andy > > On Wed, Sep 27, 2017 at 05:00:13PM +0200, gm wrote: > > > > I have this idée fixe that a reverb bears some resemblance with some > > types of random number generators especially the lagged Fibonacci > > generator. > > > > Consider the simplified model reverb block > > > > > > +-> [AP Diffusor AP1] -> [AP Diffusor Ap2] -> [Delay D] -> > > | | > > -<-- > > > > > > and the (lagged) fibonacci generator > > > > xn = xn-j + xn-k (mod m) > > > > The delay and feedback is similar to a modulus operation (wrapping) > > in that that > > the signal is "folded", and creates similar kinds of patterns if you > > regard the > > delay length as a period. > > (convolution is called "folding" in Germand btw) > > > > For instance, if the Delay of the allpass diffusor length is set to > > 0.6 times the delay length > > you will get an impulse pattern in the period that is related to the > > pattern of the operation > > xn = xn-1 + 0.6 (mod 1) if you graph that on a tile. > > > > And the quest in reverb designing is to find relationhips for the AP > Delays > > that result in a smooth, even and quasirandom impulse responses. > > A good test is the autocorrelation function wich should ideally be > > an impulse on a uniform noise floor. > > > > So my idea was to relate the delay time D to m and set the AP Delays > > to D*(Number/m), > > where Number is the suggested numbers j and k for the fibonacci > generator. > > > > The results however were mixed, and I cant say they were better than > > setting the > > times to the arbitray values I have been using before. > > (Which were based on some crude assumptions about distributing the > > initial impulse as fast as possible, fine tuning per ear and > > rational coprime aproximations for voodoo). > > The results were not too bad either, so they are different from > > random cause the numbers Number/m > > have certain values and their values are actually somewhat similar > > to the values I was using. > > > > Any ideas on that? > > Does any of this make sense? > > Suggestions? > > Improvements? > > How do you determin your diffusion delay times? > > What would be ideal AP delay time ratios for the simplified model > > reverb above? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ___ > > dupswapdrop: music-dsp mailing list > > music-dsp@music.columbia.edu > > https://lists.columbia.edu/mailman/listinfo/music-dsp > > ___ > dupswapdrop: music-dsp mailing list > music-dsp@music.columbia.edu > https://lists.columbia.edu/mailman/listinfo/music-dsp > ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators
Bit late to the thread, but if you look around Pd archives you will find a patch called Fiboverb that I made about 2006/7. As you surmise, the relative co-primality of fib(n) sequence has great properties for diffuse reverbs. Just reading about the proposed Go spacing idea, seems very interesting. best Andy On Wed, Sep 27, 2017 at 05:00:13PM +0200, gm wrote: > > I have this idée fixe that a reverb bears some resemblance with some > types of random number generators especially the lagged Fibonacci > generator. > > Consider the simplified model reverb block > > > +-> [AP Diffusor AP1] -> [AP Diffusor Ap2] -> [Delay D] -> > | | > -<-- > > > and the (lagged) fibonacci generator > > xn = xn-j + xn-k (mod m) > > The delay and feedback is similar to a modulus operation (wrapping) > in that that > the signal is "folded", and creates similar kinds of patterns if you > regard the > delay length as a period. > (convolution is called "folding" in Germand btw) > > For instance, if the Delay of the allpass diffusor length is set to > 0.6 times the delay length > you will get an impulse pattern in the period that is related to the > pattern of the operation > xn = xn-1 + 0.6 (mod 1) if you graph that on a tile. > > And the quest in reverb designing is to find relationhips for the AP Delays > that result in a smooth, even and quasirandom impulse responses. > A good test is the autocorrelation function wich should ideally be > an impulse on a uniform noise floor. > > So my idea was to relate the delay time D to m and set the AP Delays > to D*(Number/m), > where Number is the suggested numbers j and k for the fibonacci generator. > > The results however were mixed, and I cant say they were better than > setting the > times to the arbitray values I have been using before. > (Which were based on some crude assumptions about distributing the > initial impulse as fast as possible, fine tuning per ear and > rational coprime aproximations for voodoo). > The results were not too bad either, so they are different from > random cause the numbers Number/m > have certain values and their values are actually somewhat similar > to the values I was using. > > Any ideas on that? > Does any of this make sense? > Suggestions? > Improvements? > How do you determin your diffusion delay times? > What would be ideal AP delay time ratios for the simplified model > reverb above? > > > > > > > > > > > > > > > > > > > > ___ > dupswapdrop: music-dsp mailing list > music-dsp@music.columbia.edu > https://lists.columbia.edu/mailman/listinfo/music-dsp signature.asc Description: Digital signature ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 solution?
music-dsp@music.columbia.edu wrote: > Â Â Â Â Â Â Â Â Â Â Â DÂ Â Â Â Â Â Â Â Â 2D >|Â Â Â Â 1Â Â Â Â |Â 2Â Â Â Â Â Â Â | >|Â Â Â Â |Â Â Â Â |Â |Â 1Â Â Â Â | >|_|_|__|__|_|_ > Â Â Â Â Â Â Â Â Â Â g___|Â | > Â Â Â Â Â Â Â Â Â Â {__| > > Â Â Â Â Â Â Â Â Â Â a__|Â Â Â Â | > Â Â Â Â Â Â Â Â Â Â {| > >So, why is g= ln(2) the best solution? > >So far, we haven't scaled g, the ratio of the first "broken echo" to the >initial echo, but there is no need to keep that fixed for all allpasses/ >echo generators. >In fact I believe that scaling g, possibly with ~0.382 >will lead to families of optimal results for rooms >I have no proof for this though, but again its supported by data. > >Replacing in the general formula > >ratio a = 1 / (N+1-g) > >with >ratio = 1/ (N+1-g^N) > >Instead of g=ln(2) we use the simple original Go approach again where >g=1/2, we set > >ratio= 1/ (N+1 -1/2^(N)) or ratio= 1/ (N+1 -2^(-N)) > >(wich expands with Laurent series as >1/(N(1+ln(2)) + ... ) > >and I think it is somewhere along such lines, scaling g=1/2 with each N >on a basis 1/2^x or 2^-x where ln(2) comes into play > >We now should set N, which defined both the number of echoes and the >number of the nth echo generator, independently > >1/ (N+1 -(1/2)^M) > >and set the ratio in respect to the ratio of the next echo generator > >(N+2 -(1/2)^(M+1))/ (N+1 -(1/2)^M) > >or more general > >(N+2 -g^(M+1))/ (N+1 -g^M) > >where N is the number of echoes and m is the number of the echo generator. > > >I dont have any math skills to expand on this, and I would love to see >some one doing this. >Or see any other inside or discussion points. > >Does anybody follow this? I am, with great interest. >Does any of this make sense to someone? Well, no but that's my fault. -- ScottG -- Scott Gravenhorst -- http://scott.joviansynth.com/ -- When the going gets tough, the tough use the command line. -- Matt 21:22 ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 solution?
D 2D | 1 | 2 | | | | | 1 | |_|_|__|__|_|_ g___| | {__| a__| | {| So, why is g= ln(2) the best solution? So far, we haven't scaled g, the ratio of the first "broken echo" to the initial echo, but there is no need to keep that fixed for all allpasses/ echo generators. In fact I believe that scaling g, possibly with ~0.382 will lead to families of optimal results for rooms I have no proof for this though, but again its supported by data. Replacing in the general formula ratio a = 1 / (N+1-g) with ratio = 1/ (N+1-g^N) Instead of g=ln(2) we use the simple original Go approach again where g=1/2, we set ratio= 1/ (N+1 -1/2^(N)) or ratio= 1/ (N+1 -2^(-N)) (wich expands with Laurent series as 1/(N(1+ln(2)) + ... ) and I think it is somewhere along such lines, scaling g=1/2 with each N on a basis 1/2^x or 2^-x where ln(2) comes into play We now should set N, which defined both the number of echoes and the number of the nth echo generator, independently 1/ (N+1 -(1/2)^M) and set the ratio in respect to the ratio of the next echo generator (N+2 -(1/2)^(M+1))/ (N+1 -(1/2)^M) or more general (N+2 -g^(M+1))/ (N+1 -g^M) where N is the number of echoes and m is the number of the echo generator. I dont have any math skills to expand on this, and I would love to see some one doing this. Or see any other inside or discussion points. Does anybody follow this? Does any of this make sense to someone? ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 solution?
Am 02.10.2017 um 04:42 schrieb Stefan Sullivan: Forgive me if you said this already, but did you try negative feedback values? I wonder what that does to the aesthetics of the reverb. Stefan yes... but it's not recommended for the loop unless it's part of a feedback matrix you get half the modes and basically a hollow tone by that you can use negative values an the AP coefficients as well which can sound quite different - in reality every reflection is an inversion though ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 solution?
Forgive me if you said this already, but did you try negative feedback values? I wonder what that does to the aesthetics of the reverb. Stefan On Oct 1, 2017 16:24, "gm"wrote: > and here's the impulse response, large 4APs Early- > 3AP Loop > > its pretty smooth without tweaking anything manually > > https://soundcloud.com/traumlos_kalt/whd-ln2-impresponse/s-d1ArU > > the autocorrelation and autoconvolution are also very good > > Am 02.10.2017 um 00:45 schrieb gm: > > So... > Heres my "paper", a very sloppy very first draft, several figures and > images missing and too long. > > http://www.voxangelica.net/transfer/magic%20numbers% > 20for%20reverb%20design%203b.pdf > > questions, comments, improvements, critique are very welcome. > But is it even worth to write a paper about that?, its just plain simpel: > > The perfect allpass and echo comes at *1/(N+1 -ln(2)).* > > Formal proof outstanding. > > And if you hack & crack why it's 1/(N+1 ln(2)) exactly you'll get 76.52 % > of the fame. > Or 99.% even. > > Imagine that this may lead to perfect accoustic rooms as well... > Everywhere in the world they will build rooms that bare your name, for > millenia to come! > So, yes, participate please. ;) > > I assume it has to do with fractional expansion but that paragraph is > still missing in the paper. > I have no idea about math tbh. but I' d love to understand that. > > > > ___ > dupswapdrop: music-dsp mailing > listmusic-dsp@music.columbia.eduhttps://lists.columbia.edu/mailman/listinfo/music-dsp > > > > ___ > dupswapdrop: music-dsp mailing list > music-dsp@music.columbia.edu > https://lists.columbia.edu/mailman/listinfo/music-dsp > ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 solution?
and here's the impulse response, large 4APs Early- > 3AP Loop its pretty smooth without tweaking anything manually https://soundcloud.com/traumlos_kalt/whd-ln2-impresponse/s-d1ArU the autocorrelation and autoconvolution are also very good Am 02.10.2017 um 00:45 schrieb gm: So... Heres my "paper", a very sloppy very first draft, several figures and images missing and too long. http://www.voxangelica.net/transfer/magic%20numbers%20for%20reverb%20design%203b.pdf questions, comments, improvements, critique are very welcome. But is it even worth to write a paper about that?, its just plain simpel: The perfect allpass and echo comes at *1/(N+1 -ln(2)).* Formal proof outstanding. And if you hack & crack why it's 1/(N+1 ln(2)) exactly you'll get 76.52 % of the fame. Or 99.% even. Imagine that this may lead to perfect accoustic rooms as well... Everywhere in the world they will build rooms that bare your name, for millenia to come! So, yes, participate please. ;) I assume it has to do with fractional expansion but that paragraph is still missing in the paper. I have no idea about math tbh. but I' d love to understand that. ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 solution?
Am 02.10.2017 um 00:45 schrieb gm: Formal proof outstanding. sorry, weird Germanism, read that as "missing" please ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 solution?
Am 01.10.2017 um 18:35 schrieb gm: Counterintutively, there is no solution for g=a for N =2 (except g=a=1); (the solution for g=a and N=3 is 1/golden ratio ) make that phi^2 = 0.382..ect For those who didnt follow, after all this I now postulate that *ratio = 1/ ( N - ln(2) +1) * with N = number of the allpass delay and ratio the allpass delay length ratio in respect to the loop delay gives the ideal ratios for the smoothest reverb response for allpass chains and allpass + delay loops for example like in the combined structure: [APn]->...->[AP5]-->[AP4]--+-->[AP3]-->[AP2]-->[AP1]-->[Delay]---> ^ | | | < while other ratios that follow Na mod 1 = a*g a = 1 / (N-g) (lower series) or Na mod 1 = 1- a*g a = 2 / (N + g) (upper series) with N the number of the nth impulse and g the times scaling of the impulse in respect to the first delayed impulse are still of interest, for instance with g = 1/2 and a1,2,3... = a1,2,3... *detunefactor 1,2,3... and g = 1/golden ratio squared (0.382..) where an additions of reziprokals like a = 0.5 for the g= 1/2 series or a combination lower and upper series are also possible. Can some ome explain the result for g = ln(2) and ratio = 1/ ( N - ln(2) +1) to me? Or give a better formula or value? BTW it doesnt mean it's the "best" reverb, musically, but it seems give the smoothest values For shorter reverbs other values for instance the mixed series with ~0.5, ~2/3, ~4/5 pluse detuning migt be better. ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 the Go approach
Am 01.10.2017 um 16:52 schrieb gm: So I tested a familiy of numbers based on a = ln(2) that should read g= ln(2); (a ~= 0.76597) It seems one of the best, but why? Counterintutively, there is no solution for g=a for N =2 (except g=a=1); (the solution for g=a and N=3 is 1/golden ratio ) ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 the Go approach
Am 30.09.2017 um 22:44 schrieb Stefan Sullivan: Sometimes the simplest approach is the best approach. Sounds like a good reverb paper to me. Some user evaluation and references to standard papers and That would be a paper on numerology then... I generalized a bit: Na - 1 = a*g a = 1 / (N-g) ; which gives a = 2/3, 2/5, 2/7, 2/9... für g = 1/2 g = N - 1/a N = 1/a + g And for the other side: Na - 1 = 1 - a*g a = 2 / (N + g) ; which gives a = 4/5, 4/7, 4/9... für g = 1/2 g = 2/a - N N = 2/a -g N is the number of the Nth impulse and g is the time scaling in respect to the first impulse modulo 1 and a is the ratio to the loop delay which is 1: D 2D | 1 | 2 | | | | | 1 | |_|_|__|__|_|_ g___| | {__| a__| | {| Now for some more numerology, this seems to ask for something like the Golden Ratio, or similar, but another value in a paper where they used genetic algorithms to optimize a Schroeder type reverb with nested APs one ratio is: 329 / 430 which is ~ 0.7651163 and gives a ~= 0.69309 and N=2 which is suspiciously close to ln(2)... So I tested a familiy of numbers based on a = ln(2) and they are not bad But what would that mean, if it means anything? I assume it means nothing. I also assume that there are several "best" ratio families islands and that their values are not other magic numbers. Also this doesnt take tha actual impuls values into account, nor 2nd order impulses from convolving one AP with the other(s). I also made 2D plots for the first order patterns that emerge, for some numbers for g it'spretty ordered while for others it seems rather chaotic but hat doesn't necessarily mean a thing for the sound. ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 the Go approach
Sometimes the simplest approach is the best approach. Sounds like a good reverb paper to me. Some user evaluation and references to standard papers and On Sep 29, 2017 8:51 AM, "gm"wrote: > It's a totally naive laymans approach > I hope the formatting stays in place. > > The feedback delay in the loop folds the signal back > so we have periods of a comb filter. > | | | | > |__|__|__|___ > > Now we want to fill the period densly with impulses: > > First bad idea is to place a first impulse exactly in the middle > > that would be a ratio for the allpass delay of 0.5 in respect to the comb > filter. > It means that the second next impulse falls on the period. > > | | > |||___ > > > The next idea is to place the impulse so that after the second cycle > it exactly fills the free space between the first pulse and the period > like this, > exactly in the middle between the first impulse and the period: > > | | | > | | | || > |_|_|__|__|_|___ > > this means we need a ratio "a" for the allpass delay in respect to the > combfilter loop that fulfills: > > 2a - 1 = a/2 > > Where 1 is the period of the combfilter. > Alternativly, to place it on the other side, we need > > 2a - 1 = 1 - a/2; > > > | | | > | | | | | > |___|___|___|_|_|___ > > This gives ratios of 0.5. 0.7 and 0.8 > > These are bad ratios since they have very small common multiples with the > loop period. > So we detune them slightly so they are never in synch with the loop period > or each other. > That was my very naive approach, and surprisingly it worked. > > > The next idea is to place the second impulse not in the middle of the free > space > but in a golden ratio in respect to the first impulse > > ||| > | ||| | > |___|||__|| > > 2a - 1 = a*0.618... > > or > > N*a mod 1 = a*0.618.. > > or if you prefer the exact solution: > > a = (1 + SQRT(5)) / ( SQRT(5)*N + N - 2) > > wich is ~ 0.723607 and the same as 1/ (1+ 0.382...) or 1/ (N + 0.382) > > where N is the number of impulses, that means instead of placing the 2nd > impulse on a*0.618 > we can also place the 3rd, 4th etc for shorter AP diffusors. > > (And again we can also fill the other side of the first impulse with > 0.839643 > And the solution for N = 1 is 2.618.. and we can use the reciprocal 0.381 > to place a first impusle) > > The pattern this gives for 0.72.. is both regular but evenly distributed > so that each pulse > falls an a free space, just like on a Fibonaccy flower pattern each petal > falls an a free space, > forever. > (I have only estimated the first few periods manually, and it appeared > like that > Its hard to identify in the impulse response since I test a loop with 3 > APs ) > > The regularity is a bad thing, but the even distribution seems like a good > thing (?). > I assume it doesn't even make a huge difference to using 0.618.. for a > ratio though it seemed to sound better. > (And if you use 0.618, what do you use for the other APs?) > > So it's not the solution I am looking for but interesting never the less. > > I believe that instant and well distributed echo density is a desired > property > and I assume that the more noise like the response is as a time series > the better it works also in the frequency/phase domain. > > For instance you can make noise loops with randomizing all phases by FFT > in circular convolution > that sound very reverberated. > > > > > ___ > dupswapdrop: music-dsp mailing list > music-dsp@music.columbia.edu > https://lists.columbia.edu/mailman/listinfo/music-dsp ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 the Go approach
Am 29.09.2017 um 17:50 schrieb gm: For instance you can make noise loops with randomizing all phases by FFT in circular convolution that sound very reverberated. to clarify: I ment noise loops from sample material, a kind of time strech, but with totally uncorrelated phases ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 the Go approach
It's a totally naive laymans approach I hope the formatting stays in place. The feedback delay in the loop folds the signal back so we have periods of a comb filter. | | | | |__|__|__|___ Now we want to fill the period densly with impulses: First bad idea is to place a first impulse exactly in the middle that would be a ratio for the allpass delay of 0.5 in respect to the comb filter. It means that the second next impulse falls on the period. | | |||___ The next idea is to place the impulse so that after the second cycle it exactly fills the free space between the first pulse and the period like this, exactly in the middle between the first impulse and the period: | | | | | | | | |_|_|__|__|_|___ this means we need a ratio "a" for the allpass delay in respect to the combfilter loop that fulfills: 2a - 1 = a/2 Where 1 is the period of the combfilter. Alternativly, to place it on the other side, we need 2a - 1 = 1 - a/2; | | | | | | | | |___|___|___|_|_|___ This gives ratios of 0.5. 0.7 and 0.8 These are bad ratios since they have very small common multiples with the loop period. So we detune them slightly so they are never in synch with the loop period or each other. That was my very naive approach, and surprisingly it worked. The next idea is to place the second impulse not in the middle of the free space but in a golden ratio in respect to the first impulse | | | | | | | | |___|||__|| 2a - 1 = a*0.618... or N*a mod 1 = a*0.618.. or if you prefer the exact solution: a = (1 + SQRT(5)) / ( SQRT(5)*N + N - 2) wich is ~ 0.723607 and the same as 1/ (1+ 0.382...) or 1/ (N + 0.382) where N is the number of impulses, that means instead of placing the 2nd impulse on a*0.618 we can also place the 3rd, 4th etc for shorter AP diffusors. (And again we can also fill the other side of the first impulse with 0.839643 And the solution for N = 1 is 2.618.. and we can use the reciprocal 0.381 to place a first impusle) The pattern this gives for 0.72.. is both regular but evenly distributed so that each pulse falls an a free space, just like on a Fibonaccy flower pattern each petal falls an a free space, forever. (I have only estimated the first few periods manually, and it appeared like that Its hard to identify in the impulse response since I test a loop with 3 APs ) The regularity is a bad thing, but the even distribution seems like a good thing (?). I assume it doesn't even make a huge difference to using 0.618.. for a ratio though it seemed to sound better. (And if you use 0.618, what do you use for the other APs?) So it's not the solution I am looking for but interesting never the less. I believe that instant and well distributed echo density is a desired property and I assume that the more noise like the response is as a time series the better it works also in the frequency/phase domain. For instance you can make noise loops with randomizing all phases by FFT in circular convolution that sound very reverberated. ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #3 the lagged Fibonacci
Am 29.09.2017 um 02:48 schrieb gm: Another idea is to alter the Go method as follows instead of Na mod 1 = a/2 Na mod 1 = a*0.618... and Na mod 1 = 1- a*0.382... respectively Some observations: It's the same as 1/(1 + 0.382..) for N=2 This seems to do what Fibonacci does, it fills the line evenly. This seems good for long term evolution since it's as evenly distributed as possible but bad for short term evolution since it appears as some kind of order at first so it's smooth in the long tail but takes some time to diffuse. I would prefer a random distribution between pulses at the start. Recently there where a couple of articles about distribution patterns like those of cells in the retina, and there is a WP article about that. But I can't remember what it was called and can't find it. Does anybody know what I am thinking about? Maybe that's a starting point... ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 the Go approach
And, "The simplest digital reverberator is nothing more than a delay of 30 msec." Am 29.09.2017 um 13:16 schrieb STEFFAN DIEDRICHSEN: Maybe that’s because of Hal Chamberlin, who wrote in his book “Musical Applications of Microprocessors”, 2nd ed., p. 508: “Perhaps the simplest, yet most effective, digital signal-processing function is the simulation of reverberation”. There you are. ;-) Best, Steffan On 29.09.2017|KW39, at 12:47, gm> wrote: It's interesting that there seems to be no literature about it. ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 the Go approach
Maybe that’s because of Hal Chamberlin, who wrote in his book “Musical Applications of Microprocessors”, 2nd ed., p. 508: “Perhaps the simplest, yet most effective, digital signal-processing function is the simulation of reverberation”. There you are. ;-) Best, Steffan > On 29.09.2017|KW39, at 12:47, gmwrote: > > It's interesting that there seems to be no literature about it. ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 the Go approach
Well maybe it is nonsense, I admit that. The whole approach is pretty naive and thats why I was reluctant to post it. It worked pretty well, though this might be concidence. But if you can find great ratios manually, there must be reasons why they are great and better than those you dismissed. I haven't found these ratios in other reverbs but one, but I have noticed that some work better than others - and these worked better - they diffuse faster and more randomly. It's interesting that there seems to be no literature about it. Schroeder gives 100ms/(3^n) as a guidline, and some people even suggest to distribute the lengths randomly for FDNs. Others suggest to use room aspect ratios. None of that is very satisfying. Some ratios may be "bad" but still musically interesting, for instance exhibit a pronounced echo after some time. I would like to understand and control such things completely. Am 29.09.2017 um 09:07 schrieb Martin Lind: That’s great! I haven’t been so fortunately in my work until now – so I have to go the long way with extensive tests each time. I have analyzed some reverbs, but didn’t found any overall rule regarding either delay ratios or feedback ratios – maybe I didn’t look closed enough. *From:*music-dsp-boun...@music.columbia.edu [mailto:music-dsp-boun...@music.columbia.edu] *On Behalf Of *gm *Sent:* 28. september 2017 18:41 *To:* music-dsp@music.columbia.edu *Subject:* Re: [music-dsp] Reverb, magic numbers and random generators #2 the Go approach But this ratio scheme actually /is /the result of thousands of listening tests, some years of reverb building attempts and lots of sneaking into the reverbs of others... I found the exactly same ratios +- some cents are used in a nice reverb from a well known company that was built for efficiency, whos designer I know and who tweaks them by ear only AFAIK. Coincidence? I think not. ;) You still have to invest time to detune the ratios optimally and lots of time to design your reverbs, these are just starting points. ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 the Go approach
That’s great! I haven’t been so fortunately in my work until now – so I have to go the long way with extensive tests each time. I have analyzed some reverbs, but didn’t found any overall rule regarding either delay ratios or feedback ratios – maybe I didn’t look closed enough. From: music-dsp-boun...@music.columbia.edu [mailto:music-dsp-boun...@music.columbia.edu] On Behalf Of gm Sent: 28. september 2017 18:41 To: music-dsp@music.columbia.edu Subject: Re: [music-dsp] Reverb, magic numbers and random generators #2 the Go approach But this ratio scheme actually is the result of thousands of listening tests, some years of reverb building attempts and lots of sneaking into the reverbs of others... I found the exactly same ratios +- some cents are used in a nice reverb from a well known company that was built for efficiency, whos designer I know and who tweaks them by ear only AFAIK. Coincidence? I think not. ;) You still have to invest time to detune the ratios optimally and lots of time to design your reverbs, these are just starting points. ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #3 the lagged Fibonacci
Another idea is to alter the Go method as follows instead of Na mod 1 = a/2 Na mod 1 = a*0.618... and Na mod 1 = 1- a*0.382... respectively to get rid of the detuning procedure a quick listening test seems promising, but I haven't investigated it in depth yet ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #3 the lagged Fibonacci
Now back to the orginal question, why doesn't the scheme that follows the lagged Fibonacci generator achieve better results then my "Go" method? Somehow the analogy between the simplified model +-> [AP Diffusor AP1] -> [AP Diffusor Ap2] -> [Delay D] -> | | -<-- and the (lagged) fibonacci generator x[n] = x[n-j] + x[n-k] (mod m) is flawed, they are not identical but only vaguely similar. If you see that at all, I am a pretty fuzzy thinker if you havent noticed yet But still I belive that optimal j/m and k/m exist, that achieve an even better distribution then the Go scheme, and work by a similar chaos mechanism as the RNG does. Similar to my retuned ratio for 4/5 of -1/(1-SQRT(5)), j/m and k/m are said to be related to the Golden Ratio (but not identical, and I am not sure hwo) and are somewhat similar in magnitude to the ratios usefull in a reverb. For instance 7/(2^4), 10/(2^4) gives 0,4375 and 0,625 or 1279/(2^11), 418/(2^11) give 0,62451 and 0,20410 and similar, you dont get 0.9 oder 0.1 for instance So one idea is to find ratios that meet criteria for both schemes, for example. But possibly, since the LFG is desined to give fluktuating magnitudes and the Go method is designed to give distributed pulses both approaches don't match. I am posting this mostly for inspiration, hoping that some one else will find interesting solutions and insights. I am positive that some one here knows a little bit about chaos theorie and things like that. ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 the Go approach
Now that I had to explain it I realize a few more things It has some interesting properties not just on the echo density but also on the phase delays (of course these are related somehow). the untuned pitches are [-12] -7.02. -15.86 -21.68 ... and -3.86, -9.68, -14.04 ... and inverted intervalls. But the reziprocals of the ratios before detuning which are directly related to the spacing on the comb like effect of the phase delays are: 1.5, 2.5, 3.5,... and 1.25, 1.75, 2.25,... this gives you two evenly distributed "manglings" of the phase delay maxima with regular maximum delay peaks on a frequency scale (skewed by each delay, so there is an increasing delay of the whole range, und two series superimposed) I wasn't aware of this before. The question is whether that's a good thing or a bad thing? because these are also related to the period of the loop, although this would change somehwat after retuning but not much I assume it's a good thing though, cause the alternative would be an arbitrary spacing of the delay maxima with even larger gaps, or a totally regular spacing in frequency wich results in a uniform delay ratio (identical pitch step) for all delays, which is not desired either. But it doesn't seem optimal either cause it's not regular but two series with larger and smaller distances of the delay maxima. Another possibility wouldbe to have the delay maxima distributed evenly on a log scale, maybe. But still the time evolution of the scheme seems unmatched, unless I'll find better series with the RG approach. ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 the Go approach
Am 28.09.2017 um 17:18 schrieb Martin Lind: To get a realistic (or a musical for matter) sounding reverb it will include thousands of listening tests with various test signals - I haven't seen any 'automated' or any particular strategy for tuning reverbs in the wild other than extensive listening tests. The AP delay lines gets longer for each segment when connected in series, but I don't believe I have seen an overall strategy for the ratio and it's not particular important to use primes either. It's obvious that the output taps needs a ping pong behavior. The reduction to 2 APS in the first post was mainly to match the RNG structure and for a simplfied example. I use for instance 2-3 APs in two channels with modulation and a mixing matrix etc plus early diffusion stages and / or sparse FIRS outside the loop and all these things- But this ratio scheme actually /is /the result of thousands of listening tests, some years of reverb building attempts and lots of sneaking into the reverbs of others... I found the exactly same ratios +- some cents are used in a nice reverb from a well known company that was built for efficiency, whos designer I know and who tweaks them by ear only AFAIK. Coincidence? I think not. ;) You still have to invest time to detune the ratios optimally and lots of time to design your reverbs, these are just starting points. But as I said there are strategies for that as well: For instance you can detune 0.8 by ~ 19 cents to -1/(1-SQRT(5)) which is related to the Golden Ratio and should never repeat, it's off enough to avoid beating or flanging but still close enough to 4/5 to increase the echo density immediately... And this rationale works in all sizes. Similar numbers exist for diffusion ratios, for instance 0.618... will give you the flattest response possible and 0.707.. an exponetial decay of the impulses... After lots of tweaking I have a reverb that works well for both, rooms and large spaces, I also use this as a late stage for a very nice plate reverb for instance, to me it's become a basic building block now. And I found that for some lofty reverbs only 2 APs in two channels in a late stage are sufficient to sustain the sound if its already decorrelated when it enters the loop, when you have the right ratios for the AP delay lengths. /"Don't be afraid if things because they are easy to do"/ - Brian Eno Of course there must be optimal ratios, cause there are also shitty ratios that dont work from the start. And thats why I was curious hwo the RNG approach relates to my current strategy ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 the Go approach
To get a realistic (or a musical for matter) sounding reverb it will include thousands of listening tests with various test signals - I haven't seen any 'automated' or any particular strategy for tuning reverbs in the wild other than extensive listening tests. The AP delay lines gets longer for each segment when connected in series, but I don't believe I have seen an overall strategy for the ratio and it's not particular important to use primes either. It's obvious that the output taps needs a ping pong behavior. -Original Message- From: music-dsp-boun...@music.columbia.edu [mailto:music-dsp-boun...@music.columbia.edu] On Behalf Of gm Sent: 28. september 2017 16:47 To: music-dsp@music.columbia.edu Subject: Re: [music-dsp] Reverb, magic numbers and random generators #2 the Go approach And here's how I've been doing it before the RNG approach, I present you: The Go strategy of impulse spacing If the delay loop period is 1, in a first step this places the impulses so that consecutive impulses fall exactly in between already delayed impulses within the first periods, by setting the ratio "a" according to Na mod = a/2 and Na mod 1 = 1 - a/2 for N = 2,3,4... which gives the series a = 2/(2n-1) and 2 = 4/(2n+1) : 2/3, 2/5, 2/7, 2/9... and 4/5, 4/7, 4/9, 4/11... Note that reciprocals work in a similar way. The first delay in this strategy can also be set to a = 1/2 which gives ratios of 0.5, 0.7 and 0.8, or pitch differences of -12, -7.02 and -3.86 semitones. We see the octave is neatly divided by this strategy. With rational ratios like this, the pattern would repeat quickly and impulses would fall exactly on delayed impulses after a few iterations. Therefore we now carefully detune the ratios so that consecutive repetition cycles do not coincide. There are also strategies for detuning and to avoid beating and flanging as well as certain magic numbers which fulfill this and additional criteria. Once a satisfying couple or triplet has been found the ratios can be reused on additional early diffusion stages, scaled by a matching strategy like Schröders 1/3^n scaling. Comments? ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] Reverb, magic numbers and random generators #2 the Go approach
I think, this structure you mentioned (2 AP filter + delay and a feedback node) has been investigated by Bill Gardner. I used this structure, too, but it took 4 allpass filter to make it work. But still it has a repetitive sound, which goes away, if the feedback factor approaches 1.0. So, it’s a great structure for massive reverbs, but not for simulating small rooms. Best, Steffan > On 28.09.2017|KW39, at 16:47, gmwrote: > > Once a satisfying couple or triplet has been found the ratios can be reused > on additional early diffusion stages, scaled by a matching strategy > like Schröders 1/3^n scaling. > > Comments? > > ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp
[music-dsp] Reverb, magic numbers and random generators
I have this idée fixe that a reverb bears some resemblance with some types of random number generators especially the lagged Fibonacci generator. Consider the simplified model reverb block +-> [AP Diffusor AP1] -> [AP Diffusor Ap2] -> [Delay D] -> | | -<-- and the (lagged) fibonacci generator xn = xn-j + xn-k (mod m) The delay and feedback is similar to a modulus operation (wrapping) in that that the signal is "folded", and creates similar kinds of patterns if you regard the delay length as a period. (convolution is called "folding" in Germand btw) For instance, if the Delay of the allpass diffusor length is set to 0.6 times the delay length you will get an impulse pattern in the period that is related to the pattern of the operation xn = xn-1 + 0.6 (mod 1) if you graph that on a tile. And the quest in reverb designing is to find relationhips for the AP Delays that result in a smooth, even and quasirandom impulse responses. A good test is the autocorrelation function wich should ideally be an impulse on a uniform noise floor. So my idea was to relate the delay time D to m and set the AP Delays to D*(Number/m), where Number is the suggested numbers j and k for the fibonacci generator. The results however were mixed, and I cant say they were better than setting the times to the arbitray values I have been using before. (Which were based on some crude assumptions about distributing the initial impulse as fast as possible, fine tuning per ear and rational coprime aproximations for voodoo). The results were not too bad either, so they are different from random cause the numbers Number/m have certain values and their values are actually somewhat similar to the values I was using. Any ideas on that? Does any of this make sense? Suggestions? Improvements? How do you determin your diffusion delay times? What would be ideal AP delay time ratios for the simplified model reverb above? ___ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp