![]() | All Advertisers |
| | #31 |
| Lives for gear Join Date: Dec 2003 Location: Calgary, Alberta
Posts: 815
Thread Starter | Ok, I think I understand what you're looking for here. I haven't tried anything other than a sinusoidal chorus on the AL3201 so this will be interesting. I've used 37 cycles out of 105 available so far, the AL3201 doesn't do support math except for a sinusoid or triangle chorus, so the 9S08 will have to do the modulation unless it's a sinusoid or triangle. Unfortunately, I can't read or write the chorus offset registers in the AL3201. It can also only update one instruction per wordclock plus a bit of a safety delay. Can I just fade in one tap as the other one fades out or should I glide between the taps like the LXP15 'glide delay' function? I'd guess that it should be a 'glide'. I think I can come up with random numbers pretty easily. I might have to experiment with how quickly I move taps around, too. |
| | |
| | #32 |
| Lives for gear Join Date: May 2003 Location: Cambridge MA USA
Posts: 1,078
| Yes, I think this is a way to look at it. In that each tap is really two taps next to each other. The value that should be summed to the output will be a linear combination of the two neighboring taps ie. 27/32*mem[n] + 5/32*mem[n+1], then 26/32*mem[n] + 6/32*mem[n+1], then 25/32*mem[n] + 7/32*mem[n+1]... then a memory address change occurs when the sequence reaches this point: 1/32*mem[n] + 31/32*mem[n+1], then 0/32*mem[n] + 32/32*mem[n+1], then 31/32*mem[n+1] + 1/32*mem[n+2]... if you use 32 steps between each sample. It's of course OK if a tap doesn't move during a given sample time, if it takes multiple sample times to set up the new move. The lead sample will be either n+1 or n-1 depending on which direction the tap is moving. ![]() -Casey
__________________ cdowdell@bricasti.com www.bricasti.com My love shall hear the music of my hounds. - Shakespeare |
| | |
| | #33 | |
| ValhallaDSP Join Date: Feb 2009 Location: Pacific NW
Posts: 1,536
| Quote:
"Alternatively, any gain can be changed by slowly moving its value, which does not require interpolation. Typically, a randomizer gradually fades the gain of a path between two values, or reduces its gain to zero, moves the path, and then gradually increases the gain up to full value." Also, why modulate the output taps, and not the ends of the combs? I would have thought that this would result in an overly chorused sound, but I haven't tried delay length interpolation of the output taps. Dale: For random modulation, can you have the 9S08 change the frequency of the sine/triangle LFO to a random value + fixed offset every N samples? For the triangle LFO, this would produce a result similar to randi, the linearly interpolated low frequency noise generator found in most computer music languages since the 1960's. A sine LFO would be similar, but smoother. The random update of LFO frequency can happen at a VERY slow rate - 3 times a second has worked well for me in the past. Nice thread. The fun little reverb project has gone from Schroeder 101 to some very cool concepts, in very easily digestible form. Sean | |
| | |
| | #34 | |
| Lives for gear Join Date: May 2003 Location: Cambridge MA USA
Posts: 1,078
| Quote:
We can go there after establishing a working reverb that can be tuned to sound pretty good. There are lessons to be learned in working with a complete reverb and then taking the next steps. Like you said, nice digestible steps. | |
| | |
| | #35 |
| Lives for gear Join Date: Dec 2003 Location: Calgary, Alberta
Posts: 815
Thread Starter | I guess what I was asking was weather Sean's approach would be ok or if interpolation (gliding) was the way to do it. Sounds like either approach would work ok. The 'easiest' way to do a gliding delay on a 3201 is to use the chorus instructions, set them to sine or triangle or something like that, and either run them or don't run them for some random amount of time. Essentially, rather than having the random number generate a tap offset, that random number will generate an integration time (at a fixed rate so the 'chorus' effect is controlled), which will be randomly run. I'll try that first. By ramping the integration rate from, say, 1Hz to 0Hz, then back up randomly over a period of a few seconds, that should result in tap movements that sort of 'move' once in a while. I found it interesting how well adding just a couple of allpasses on the outputs would result in such an improvement. |
| | |
| | #36 | |
| Lives for gear Join Date: May 2003 Location: Cambridge MA USA
Posts: 1,078
| Quote:
Sean, could you elaborate on the specifics of your approach? ![]() -Casey | |
| | |
| | #37 | |
| ValhallaDSP Join Date: Feb 2009 Location: Pacific NW
Posts: 1,536
| Quote:
- Crossfade between a pair of taps that are separated by many samples, up to the maximum modulation width. - When the volume of one of the taps is at a minimum, randomly change the tap location, within a range specified by modulation width. This also works with individual taps, each with their own volume envelope, which is closer to most granular synthesis approaches. The tap rate can be constant, or can be randomly varied each time the volume is at zero. Working with pairs of taps would help to create a more constant tap density, as you could use some form of equal power panning. You could also crossfade between more than two taps, using a multiphase oscillator. My guess is that this technique has been used before in reverbs before (and possibly some old pitch shifters), and it seems similar to what Blesser describes in his book. The AL3201 could probably do this if the modulation is driven by the microcontroller. Sean | |
| | |
| | #38 |
| Lives for gear Join Date: May 2003 Location: Cambridge MA USA
Posts: 1,078
| It seems like you would hear the varying comb filter coloration of crossfading taps that are within a couple of ms of each other? ![]() -Casey |
| | |
| | #39 | |
| ValhallaDSP Join Date: Feb 2009 Location: Pacific NW
Posts: 1,536
| Quote:
I see your point, though. Perhaps there should be a minimum distance between taps that are crossfaded. In this situation, the corresponding time-invariant case would be 2 output taps from the example reverb, rather than a single tap. Sean | |
| | |
| | #40 |
| Lives for gear Join Date: Dec 2003 Location: Calgary, Alberta
Posts: 815
Thread Starter | I'm going to try using the 'gated chorus oscillator' approach this morning. If you had not three, but maybe twenty taps in each loop, could you not just fade one out, then fade another in? That tap would disappear briefly but missing one of twenty for a few milliseconds might not be as noticeable as missing one of three. |
| | |
| | #41 |
| Lives for gear Join Date: Dec 2003 Location: Calgary, Alberta
Posts: 815
Thread Starter | Ok, I tried this out. It does prevent 'buildup' or 'cancellation' on average. While running vocals or percussion through it, I don't really hear buildup. With a pure-sounding tone (clarinet, in this case, but the test oscillator on the console pinpoints this in an annoying way), buildup or cancellation happens but after a fraction of a second it goes away. What is noticeable when it comes to switching then staying at a particular tap is that the cancellation or reinforcement 'sticks around' then goes away. Perhaps running a very low-speed chorus in parallel with switching taps would help? ie. Rather than freezing the taps, then moving them a bit, you move them around at very low speeds, maybe a couple samples per second, then you randomize a faster move on top of that. Or is there something else you have in mind for this? I am guessing that in 'Lexicon' terms this would be kinda-sorta like the 'Wander' parameter? Also, by using a 5ms tap movement, that works but I probably need to lower the tap movement if I lower the size of the loops (for a smaller room). Does that sound right? It would have to, I guess. Right now my 'room 'totals 416 ms, but divided down, the smallest dimension is 100ms or 33 metres. A 5ms chorus is equivalent to 1.6 metres, but if the room is scaled down in size (from 33 x 45 x 58 metres) the distance the taps move is quite a bit relative to the room size. Since I'm doing this with the LFO's, I notice a tap movement rate where the tap movement becomes noticeable. A tap rate movement of about 100 samples per second can be noticed on pure tones or during the tail decay. Under about 50 isn't easy to notice - the more output diffusion, the less noticeable it is. In a busy song, much faster tap movements are possible unless they happen to fall in a bad time where you might hear them. When you have drum leakage into other mics, you get a funny 'whoosh' effect when a tap moves - I guess a modulation of the drum leakage, what you want to actually have reverb on, and the LFO. I'm still curious as to how to get rid of the tape looping effect more completely, but I guess we'll get to that. The rest of the algorithm is sounding pretty good. Still some cleanup in the tap movements and further improving (actually, reducing) the tape looping should make it possible to use this in a mix. I think I'll do a mix of some kind of song in a few days so people can hear this. It'll be a mix with way too much reverb, so you can hear the processing. So far I have 44 free instructions after adding the chorus, but I also have another 100 instructions left in the other chip. The two chips are in series (a true cascade arrangement) with only left and right audio between them. I would probably put input conditioning - predelay, input filters, maybe some allpasses on the inputs - in that part. I actually have a module written with those functions in there, but I have not put those into this algorithm yet. |
| | |
| | #42 | ||
| ValhallaDSP Join Date: Feb 2009 Location: Pacific NW
Posts: 1,536
| Quote:
It seems like you would want to have constant motion in the taps, with randomly changing amount of motion, and/or direction of motion. Quote:
Sean | ||
| | |
| | #43 |
| Lives for gear Join Date: Dec 2003 Location: Calgary, Alberta
Posts: 815
Thread Starter | Yes, what I'm doing is running one of the four LFO's at any given time with the other three frozen. The times I switch the LFO's vary with a pseudo-random value. I actually read the executable code from start to finish to get that randomized value. Perhaps a better approach is to use that random value to multiply the average tap movement rate and keep all of the taps moving, though at randomized rates, which should, when integrated by the LFO, result in randomized locations. I changed the coding of the host software so the LFO sizes vary with the master loop size parameter. I might add, scaling the loop size parameter really does make the room size change from a pretty decent-sized hall to a pretty small room. It actually sounds more like a finished reverb in the 5-10 metre region (sizing 332 m/s and the shortest loop), above that is where the looping sound happens. I've gotten it pretty close by messing with the output tap amplitudes. I am thinking that it would be better to have a loop gain multiplication between each tap, spending another six instructions over what I do already, but keeping the gains of each multiply identical, which makes the host's job trivial. The other thing is the apparent gain of one of the two output channels is quite different - the left to right level balance is a hair off. Perhaps that is intentional? In between reverb experiments, I've been coming up with digital delay patches for that mode of operation. One thing I find with the AL3201 is not enough memory. 32k just isn't enough for really big spaces. -Dale |
| | |
| | #44 |
| Lives for gear Join Date: Dec 2003 Location: Calgary, Alberta
Posts: 815
Thread Starter | I tried distributing loop gains, and that helped the tape looping a bit, so my output tap levels are obviously not right - they need to track the RT multiplier better. But by distributing that loop gain around, the length of loop, the RT becomes a bit grainy since all gains are the same. I also tried cross-coupling the loops, but at any setting that got rid of the looping I found artifacts that I didn't much care for - strange ringing between the loops. I tried this reverb with the distributed gains on some music, and it sounds pretty good - not quite as good as 'vocal magic' on the '91, but still, pretty good. I think the looping is the biggest difference between the quality of the sound of the '91 and this algorithm. |
| | |
| | #45 |
| Lives for gear Join Date: May 2003 Location: Cambridge MA USA
Posts: 1,078
| Let's save cross coupling for later. It's a great next step but it is a bit of a can of worms. Two things to accomplish before tuning this topology. Make sure that each loop RT and high frequency reduction is identical. Keep the modulation moving. Just simplify the design and use a standard chorus on each tap. This is just an artifact of your implementation. There is nothing wrong with that. Work with something between 10 and 50 samples per second. And split the chorus phases exactly into 40 degrees between each tap. If it sounds a bit to chorused, well that can be randomized better when you go to the 56k, for now just call it a feature! What you have now is the topology of the EMT 250. If you have access to an IR set of the 250 then you have something to tune against. I encourage you to tune your current design until you can beat the 250 IRs. To be fair, vocal and snare would be the most useful comparisons, as these are where the 250 is most often used. The thing that will seperate this topology from the others is the snare reverb will have a tail that sounds like "cawhhhh" and not "chchshssssss". The next steps will change this, and this is a downside! In the next step we will look at ways to further eliminate the tape loop sounds. But for now, the tuning steps I mentioned will help the tape loop problem and the left right balance. Adjust the tap gains/slope to help in both of these issues as well. ![]() -Casey |
| | |
| | #46 | ||
| ValhallaDSP Join Date: Feb 2009 Location: Pacific NW
Posts: 1,536
| Quote:
Quote:
One question: Should there be any modulation of the comb lengths, in addition to the modulation of the comb tap outputs? Sean | ||
| | |
| | #47 | ||||
| Lives for gear Join Date: Dec 2003 Location: Calgary, Alberta
Posts: 815
Thread Starter | Quote:
Quote:
Quote:
Quote:
To me one obvious cure for looping is simply to put a loop allpass in each loop, k=0.4 to 0.5, maybe 1/3 the length of the loop or so. That should smear the 'impulse' looping at very long RT's when a sharp something happens just before silence and all you hear is the tail. -Dale | ||||
| | |
| | #48 | ||
| Lives for gear Join Date: May 2003 Location: Cambridge MA USA
Posts: 1,078
| Quote:
Quote:
I think that getting everything possible through tuning this topology, though possibly frustrating, will establish a level of intuition as to what can and cannot be achieved with this most simple use of a couple of basic building blocks. ![]() -Casey | ||
| | |
| | #49 | ||
| Lives for gear Join Date: May 2003 Location: Cambridge MA USA
Posts: 1,078
| Quote:
Quote:
One other note, we are using linear interpolation rather loosely in this design. This will act as a moving filter which at it's deepest cut will reduce the frequencies that are roughly at 1/4 of your sample rate. I mentioned earlier that a 2 pole input filter should be used. This is to sort of cover up this effect. If the frequency wavering becomes too audible, just reduce the input filter down from 12k to say 8k or 9k to help mask it further. ![]() -Casey | ||
| | |
| | #50 |
| ValhallaDSP Join Date: Feb 2009 Location: Pacific NW
Posts: 1,536
| |
| | |
| | #51 |
| Gear addict Join Date: Sep 2004 Location: Denmark
Posts: 400
| |
| | |
| | #52 | |
| Lives for gear Join Date: Dec 2003 Location: Calgary, Alberta
Posts: 815
Thread Starter | Quote:
The 12dB filter was easy to add, and yes, I also heard the filtering artifact from the chorus with the EQ turned off. But you also hear a high frequency reverb that you just don't hear in real life. Another option would be to use allpass interpolation, though I've not determined if it is possible to implement this on the AL3201. The other thing I need to do is work on the output tap locations a bit. But with pretty close to equal spacing and the slight chorus (I set it to 0.3 Hz, which means the chorus will randomly set 5ms amplitude at between 0.02 and 0.3 Hz), it sounds pretty good to me. It shrinks with lowering room sizes. The 'looping' that remains - and there's not that much of it any more - I think is simply the content of the input signal recirculating throughout the loop. At lower RT's (effective audible RT less than maybe two or three passes through the loop), you don't really notice it. You only notice it at the end of a song with a long RT setting, when everything else stops and you only hear reverb tail. Without increasing density and sort of 'smearing' the sound, I think you're going to hear that. Adding a few allpasses before the loop seemed to help the 'looping' dramatically, and it really smoothed out the sound in general. That would mean that in this modified algorithm there are a total of seven allpasses - two in each output, and three on the input. I can't necessarily put it in the same class as the PCM91, but I would certainly not be ashamed to use it as a vocal reverb on a mix. I find it a bit dark for snare, but I like a crisp snare sound. I should try it with more bandwidth on the input filter. I now see how a few more of the parameters in the PCM91 relate to constants in the DSP portion, but what I'd like to know is if there is a way to get a constant density sound on it. I don't see a 'constant density' algorithm in the '91, though I might have missed it. I would guess cranking up the diffusion and cranking up definition might do that, but I don't really know how the host processor in the '91 converts a knob setting into the gains used by the Lexichip. | |
| | |
| | #53 | |
| Gear addict Join Date: Sep 2004 Location: Denmark
Posts: 400
| Quote:
| |
| | |
| | #54 | |
| Lives for gear Join Date: May 2003 Location: Cambridge MA USA
Posts: 1,078
| Quote:
But it sounds like what you have is working for you, so just stick with that. When do we get to hear it? ![]() -Casey | |
| | |
| | #55 |
| Lives for gear Join Date: Dec 2003 Location: Calgary, Alberta
Posts: 815
Thread Starter | Maybe I do have three on each output, I forgot about the little ones. I don't have the code at work. But things smoothed out with more allpasses - I put them on the input. I'll do a quick mix with 'way too much' reverb tonight, including a 'stop' so you can hear the tail. I'll try two RT settings, too, one is 'reasonable', and the other is 'RT of a canyon with a size of a high school gym. I'll also do it with and without the input allpasses. -Dale |
| | |
| | #56 |
| Lives for gear Join Date: May 2003 Location: Cambridge MA USA
Posts: 1,078
| Just leave them in. It sounds like you have a nice sound now. I think it would be more interesting to here differing amounts of chorusing using the method you came up with. A little chorusing can sound nice. I think it would be interesting to see peoples comments on how much you can "get away with" for different sources. I would also include some mixes with a "tasteful" amount of reverb, since this is what many folks are used to judging. I assume this thread will be around for a while, and I would hate to miss this chance to showoff what you have now, before the next steps are taken. ![]() -Casey |
| | |
| | #57 |
| Lives for gear Join Date: Dec 2003 Location: Calgary, Alberta
Posts: 815
Thread Starter | All of these are a size of 33 metres (100 ms shortest delay). New Page 1 2 = just some random settings, input diffusion set on 3 = super long RT 4 = super long RT with chorus at 3.25 Hz (default is 0.27 Hz) 5 = similar to 4, chorus adjusted 6 = no input diffusion, chorus at 1 Hz 7 = no input diffusion but a 3-tap multitap at around 0, 18, 25, 32, 45ms ahead of reverb 8 = reasonable RT and level, 'close' settings 9 = what we're starting with (dry) You probably want to be on DSL or other highspeed, I left them as WAV so you would not hear any of the funny MP3 processing that's pretty obvious. The input diffusion is covering up a ringing that I don't like. I think I was battling the 'loop' sound and didn't quite catch that. I have to move a tap or two in the output section, I would like to try 5 again after some more tuning of the output tap locations. A problem I have is moving an output tap on the fly and doing a chorus at the same time. It can be a bit tricky. Usually I take an output tap and just have a separate chorus delay line area, it's much easier to deal with resizing in the user interface to DSP interface. |
| | |
| | #58 |
| ValhallaDSP Join Date: Feb 2009 Location: Pacific NW
Posts: 1,536
| Hi Dale: I listened to most of your settings, and it sounds pretty good to me. The main flaw that I heard is probably inherent with a 3 comb system: not enough modal density. I have been playing with a similar system today, using 4 combs (I cheated and cross-coupled them). No matter what type of modulation I use, it just doesn't sound as good as my larger reverbs that use at least twice as much delay memory. As far as the ringing, you should see if it is from the combs, versus the output allpasses. I found that putting the allpasses on the output seems to magnify any ringing in them, versus having the allpasses on the inputs to the combs. Not sure why this is. It might make sense to tune the comb taps first, then work on the output allpasses delay lengths. Sean |
| | |
| | #59 | |
| Lives for gear Join Date: May 2003 Location: Cambridge MA USA
Posts: 1,078
| Wow Dale, very impressive. What is that, just one week of part time work! I agree with Sean there does seem to be some needed tuning of those output allpasses, I'm sorry my sizes were probably not ideal. Quote:
Now your modal density is greatly improved and the modal peaks and valleys of your feedback loop will be much softer. This is because the amplitude of the modal peaks is proportional to the overall gain in the feedback loop. The gain will be less as the feedback path now moves through three gain reductions around the loop. This change also tilts the design to a more balanced feed forward/feed back design as the loop now has 3 feedforward paths as well as the feed forward paths of the taps. Each of the 3 feed forward paths in the loop will provide its own modal pattern on top of the single feedback modal pattern. ![]() -Casey | |
| | |
| | #60 |
| Lives for gear Join Date: Dec 2003 Location: Calgary, Alberta
Posts: 815
Thread Starter | I checked out a frequency response, and this is probably what I hear, and what the input diffusion seems to cover up quite a bit. Below about 200 Hz, there are some peaks and valleys but generally ok. There's one buildup at 81 Hz that's a bit higher than I'd like to see. At 315 Hz there is a 20dB notch, and at about 630 Hz there's the top again. At 960 Hz, it's another notch, and again at 1545 and 2206 Hz and 2842 Hz. A classic comb. But I don't see anything that many samples apart, that's with the output allpasses turned off. Turning on the chorus changes the average so over a 20 second spectrum plot it's pretty flat. Also, without the chorus but with more allpasses on the input, it flattens that out pretty well. It seems to me that the depth of the comb response is the problem, not that there is a comb response. It's pretty dramatic. When listening to a test tone, sometimes the output signal just up and disappears, returning in a fraction of a second. But where do I look if I can't see anything that is that many samples of delay? I think it should be a 76 sample delay to generate that pattern at 48 kHz Fs. |
| | |
New Reply
Facebook
Twitter
LinkedIn
| Thread Tools | Search this Thread |
| Similar Threads | ||||
| Thread | Thread starter | Forum | Replies | Last Post |
| Not liking convolution reverb so much these days...recommoned me a reverb plugin? | danbronson | So much gear, so little time! | 19 | 16th June 2008 07:12 PM |
| IK Multimedia Classik Classic Reverb Plug-In Bundle or TL Space for first reverb? | Sean Sullivan | Music computers | 23 | 22nd February 2008 04:45 PM |
| Fender Twin Reverb (1971) Reverb noise/Power tube recommedations? | wthiessen | Geekslutz forum | 6 | 27th January 2007 06:19 PM |
| Fender Twin Reverb (1971) Reverb noise/Power tube recommedations? | wthiessen | Geekslutz forum | 0 | 24th January 2007 09:31 PM |
| |