Gearslutz.com

All Advertisers
Go Back   Gearslutz.com > The Forums > Geekslutz forum


New Reply New Reply Thread Tools Search this Thread
Old 30th May 2009   #91
Lives for gear
 
Casey's Avatar
 
Join Date: May 2003
Location: Cambridge MA USA
Posts: 1,078

You are really going to town with your new designs.

248k words is still a little short for the best quality at 48kHz. Why not SRC down to 16kHz? Now you have the internal memory to do a really nice reverb. I think this is a reasonable tradeoff.



-Casey
__________________
cdowdell@bricasti.com

www.bricasti.com

My love shall hear the music of my hounds. - Shakespeare
Casey is offline   Reply With Quote
Old 30th May 2009   #92
Lives for gear
 
Michael Carnes's Avatar
 
Join Date: Mar 2008
Location: Salt Lake Valley
Posts: 514

Quote:
Originally Posted by dale116dot7 View Post
NS: That's enough RAM to do some sampling like the 480L SME. Any programs like that on the '96?
A few people liked the SME board on the 480, but it was never a good seller. I think there are many superior solutions for sampling and sample replacement. Don't think you'll be seeing it on the PCM96.
Michael Carnes is online now   Reply With Quote
Old 30th May 2009   #93
Lives for gear
 
Join Date: Dec 2003
Location: Calgary, Alberta
Posts: 815

Thread Starter
Quote:
Originally Posted by Casey View Post
You are really going to town with your new designs.
248k words is still a little short for the best quality at 48kHz. Why not SRC down to 16kHz? Now you have the internal memory to do a really nice reverb. I think this is a reasonable tradeoff.
Could do that, I guess. Or what I was thinking is putting longer stuff - long delays - into an external SDRAM, and keep shorter things in internal RAM. There's a bit of overhead there, but not so bad if I manage memory movement. I guess another approach, actually, would be to daisy-chain two 56721's (actually, it's the 56720 with external SDRAM interface - the 56721 has no external memory interface but you can get it in an 80-pin LQFP which is relatively trivial to solder). Anyways, two daisy-chained units with a couple of serial lines between them should work, although you have to design the algorithms to keep that in mind. But there's a lot of serial I/O ports available, so shuffling data back and forth wouldn't be that bad. I know that the PCM8x, PCM9x, 480L, and REV7 all used two (or more) DSP cores and passed some amount of data back and forth. The REV7 uses a serial line between the two cores, so it can't be that much data there. Given that the 563xx family really isn't that quick, perhaps using two of them isn't such a bad idea with that amount of memory on each chip. The parts are $14 in 1k quantities, so popping a pair of them on there really isn't such a bad thing.

I like to design things, and I usually like to have a jumperless design, so I do one layout and get it about right, then I do one 'final' layout, then make maybe half a dozen of them, then I move on to the next project. With the reverbs, the host software seems like the majority of the work. The actual DSP software is relatively trivial in terms of building blocks. Including init code, the DSP code sits in just under 512 words. The host code is in 'C' and compiles so far into about 49000 bytes - and I only have the basic effect editor, preset fetch, and reverb setup stuff in place. I don't have any MIDI code yet, nor storing effects into EEPROM, nor a way to fetch them from EEPROM. I can only do presets so far. My wife just can't believe how much effort goes into one of these boxes. She was mostly surprised that it only took me about a week to go from a concept to having a prototype built in a box, then several months of intense work on software before it even makes a squeak.
dale116dot7 is offline   Reply With Quote
Old 30th May 2009   #94
Lives for gear
 
Join Date: Dec 2003
Location: Calgary, Alberta
Posts: 815

Thread Starter
Quote:
Originally Posted by Nobody Special View Post
A few people liked the SME board on the 480, but it was never a good seller. I think there are many superior solutions for sampling and sample replacement. Don't think you'll be seeing it on the PCM96.
Yea, I guess that's probably right. I'm still a bit of a luddite in that I don't have a PC or Mac anywhere near my studio, so for sampling I need hardware to do that. But even in the hardware world, there are boxes made specifically for sampling. I guess if I wanted to do it, I could just write up some more software.
dale116dot7 is offline   Reply With Quote
Old 30th May 2009   #95
ValhallaDSP
 
seancostello's Avatar
 
Join Date: Feb 2009
Location: Pacific NW
Posts: 1,536

Quote:
Originally Posted by Casey View Post
248k words is still a little short for the best quality at 48kHz. Why not SRC down to 16kHz? Now you have the internal memory to do a really nice reverb. I think this is a reasonable tradeoff.
Ahhh, you kids nowadays, with your 30+ seconds of fast delay memory, and your Blackfins, and your bang bang music!

In all seriousness, isn't 248k x24bits about 5 seconds of fast delay memory @ 48 kHz? Older reverb designs got by just fine with about 1 second of delay memory; double or triple that and things can sound really nice. I would doubt that a single Freescale DSP would have the cycles to fill up 15 seconds of memory with enough taps / allpasses / whatever to get the required echo density.

Quote:
Originally Posted by Casey View Post
You are really going to town with your new designs.
Dale is a sharp guy.

Sean
seancostello is offline   Reply With Quote
Old 31st May 2009   #96
Lives for gear
 
Join Date: Dec 2003
Location: Calgary, Alberta
Posts: 815

Thread Starter
Quote:
Originally Posted by seancostello View Post
In all seriousness, isn't 248k x24bits about 5 seconds of fast delay memory @ 48 kHz? Older reverb designs got by just fine with about 1 second of delay memory; double or triple that and things can sound really nice. I would doubt that a single Freescale DSP would have the cycles to fill up 15 seconds of memory with enough taps / allpasses / whatever to get the required echo density.
That, and memory bandwidth, too. I'm not sure what the performance of some of these ADI DSP's are, but the 56k seems slow. The only reason that I am sticking to it is relative ease of programming, cheapness of dev tools, and not insignificantly, ease of soldering a prototype together. BGA's offer great packaging density but prototyping is a bit of a bear. I'm actually having a problem finding 1.8V SDRAM in TSOP packaging - I can find 90-ball BGA's but I don't want to solder those down. Level-shifting takes too long on a high-speed bus and I don't want the extra time delays.

I just did up a brute-force reverb using two strings of about 25 or so allpasses in a row followed by a single-pole HF rolloff filter. Eight of the allpasses modulate. It's a bit unnatural but huge sounding. About 50 allpasses and eight modulations take about 10 microseconds and I'm running the processor at 96 MHz, and one wait state to delay RAM. Cascaded allpasses could be written more efficiently, because I wrote my allpass to assume that take a delay line and run the input into the allpass, then write the output back to RAM. I think cascaded allpasses could have about double the throughput if I optimized things for cascading without delays between them.

The processor can run at 120 MHz but I run it a bit slower because at 120 MHz I run out of setup time for the SRAM address and I would have to add one wait state which would slow things down. The 56720 would not have that problem as with that much RAM on-chip, I could run full-tilt and not worry about wait states. Ahh, the life of the hardware designer.

-Dale
dale116dot7 is offline   Reply With Quote
Old 5th June 2009   #97
Lives for gear
 
Join Date: Dec 2003
Location: Calgary, Alberta
Posts: 815

Thread Starter
I've been playing around with various gain multipliers, and what I've managed to figure out is that it is relatively easy to make a set of tap spacings and gains sound good, but resizing it or changing the RT makes everything have to change - just doing a linear (or log or power - depending on what is being changed) ratio doesn't seem to work quite right.

Is there a better approach than going to every size and RT combination and tabulating a couple dozen gain and tap locations - resorting to massive lookup tables? Or is it a case of needing to work harder at getting 'optimum' tap spacing and gains that work well for a wide range of size and RT settings? That is my biggest struggle now - I can tweak things to sound good but then I change the size from 18 metres to 25 metres and everything sounds horrible until I tweak almost every gain and tap location in the loop. It's like you get combing come in and out at some sizes. I've checked tap locations and gains being calculated (a debug screen), and so far I can't see anything being calculated wrong.
dale116dot7 is offline   Reply With Quote
Old 5th June 2009   #98
Lives for gear
 
Casey's Avatar
 
Join Date: May 2003
Location: Cambridge MA USA
Posts: 1,078

Quote:
Originally Posted by dale116dot7 View Post
Is there a better approach than going to every size and RT combination and tabulating a couple dozen gain and tap locations - resorting to massive lookup tables?
What are you modulating?

Are any taps in the feedback portion of an allpass?

Or are you first getting your basic loops set up with out allpasses?

It is certainly possible to have a single set of taps with constant ratios that are scaled with size, or used with any number of RT values.



-Casey
Casey is offline   Reply With Quote
Old 5th June 2009   #99
Lives for gear
 
Join Date: Dec 2003
Location: Calgary, Alberta
Posts: 815

Thread Starter
Quote:
Originally Posted by Casey View Post
What are you modulating?
I've done a bit on various portions - taps, allpasses, loop size. But if I turn modulation off, I don't get nearly as smooth of a response as, say, any of the algorithms on my PCM91 with their chorus functions also turned off. I check for chorus being turned off by watching for modulation with a tone. Sometimes strange things will cause chorus enabling like using spread and shape in the random hall algorithm.

I can modulate up to eight taps at once. I have not set up a queue structure, though, to allow modulation or glides of more than eight taps 'in turn' - where eight things modulate simultaneously, then you sub out something that is modulating with another tap that is frozen - rotating the modulations. I could do that, I just haven't written the code to do that because I thought that eight modulating taps should be enough.

Quote:
Are any taps in the feedback portion of an allpass?
I've done it both ways. With high allpass gains (any higher than about 0.6) the signal in the feedback portion appears a bit odd. But at allpass gains less than about 0.4, the audio in the feedback portion of a lattice allpass appears pretty useable - it doesn't really sound odd to me.

Quote:
Or are you first getting your basic loops set up with out allpasses?
Yes, and I do find that the combing comes and goes with or without allpasses. It has to be created by interference between tap locations. At high gains, the allpasses have a 'grainy' or 'ringy' sound to them with impulses. It doesn't sound allpass but it measures that way. You can hear them get 'excited'. With real audio, that mostly goes away. But if I run the same test with the PCM91, there is still a repeating pattern, but the grain goes away and that makes the excited frequencies not sound so much. It does even without chorus turned on. Should I be changing the feedback gains on the allpasses based on the allpass length or size?

Would a valid way of figuring out reasonable allpass gains would be to change the allpass into a comb by imbalancing the feedback and feedforward terms, then adjust the gains to flatten the frequency response of the combined combs? I have a feeling that if I can manage to get a flatter allpass response, I should have a better sounding algorithm. Or perhaps feed an impulse in it and do an FFT of the result and adjust the gains to flatten it?

Quote:
It is certainly possible to have a single set of taps with constant ratios that are scaled with size, or used with any number of RT values.
I would have guessed that it should be done that way - the RT should change the recirculation gains, and size should be able to just resize the array linearly. But I've been struggling a bit to get it all to work - not from a technical perspective because that is just plain coding - but from an sound point of view - something that sounds good.

For reference, I set up the 'infamous' Dattorro/Lexicon algorithm, and that algorithm does sound pretty good using the same building blocks as what I am using for the newer algorithms. I did that just as a sanity check to make sure that the base building-block algorithms are doing what I expect them to do. It sounds similar to (though not exactly like) a PCM91 'Room' setting.

-Dale
dale116dot7 is offline   Reply With Quote
Old 5th June 2009   #100
Lives for gear
 
Casey's Avatar
 
Join Date: May 2003
Location: Cambridge MA USA
Posts: 1,078

Quote:
Originally Posted by dale116dot7 View Post
I can modulate up to eight taps at once. I thought that eight modulating taps should be enough. Yes, and I do find that the combing comes and goes with or without allpasses. It has to be created by interference between tap locations.

At high gains, the allpasses have a 'grainy' or 'ringy' sound to them with impulses. It doesn't sound allpass but it measures that way.

Should I be changing the feedback gains on the allpasses based on the allpass length or size?
How are you modulating the taps? How many taps do you have. What is your tap spacing in msecs?

An allpass is flat. The ringing comes from the frequency dependent delay of an allpass. So some frequencies stick around longer than others. This is particularly noticable at higher RTs because the same signal goes through the same allpass multiple times. If you can change the allpass before the same signal hits it again, then the ringing can be reduced.

Generally longer allpasses will ring more because they have longer delay vs frequency times. So reducing the gain on larger allpasses is useful.



-Casey
Casey is offline   Reply With Quote
Old 6th June 2009   #101
Lives for gear
 
Join Date: Dec 2003
Location: Calgary, Alberta
Posts: 815

Thread Starter
Quote:
Originally Posted by Casey View Post
How are you modulating the taps? How many taps do you have. What is your tap spacing in msecs?
Triangle with random (or maybe not random enough) direction changes, amplitude of maybe 1ms, at about 1/2 Hz. The tap spacing of my larger tap count algorithm - three loops but lots of taps per loop - varies as per the room size, so it will vary from maybe a millisecond up to maybe 30 or 40 milliseconds at larger room sizes.

Quote:
An allpass is flat. The ringing comes from the frequency dependent delay of an allpass. So some frequencies stick around longer than others. This is particularly noticable at higher RTs because the same signal goes through the same allpass multiple times. If you can change the allpass before the same signal hits it again, then the ringing can be reduced.
So perhaps I have to make sure that the triangle ramp rate and the loop time don't make a pattern so that the allpass times aren't ever the same one pass through - even maximize the difference if possible. Would putting a small modulated allpass within the feedback of another allpass break up that one ring? I know putting a modulated tap for the feedback tends to reduce ringing, but would another small allpass help more, or just hurt things more? I would think that it should break up the 'mode' into three or maybe four different frequencies.
Quote:
Generally longer allpasses will ring more because they have longer delay vs frequency times. So reducing the gain on larger allpasses is useful.
I should do that. I guess I could turn each allpass off in turn and adjust each gain to get the same length of ring time. That should mask the ringing.

I'm playing shows most of this weekend, so I doubt I'll get much work done on the 'verb. I'm playing upright bass with a folk/bluegrass group tonight.
dale116dot7 is offline   Reply With Quote
Old 6th June 2009   #102
Lives for gear
 
zmix's Avatar
 
Join Date: Jan 2005
Location: NY, NY
Posts: 671

Send a message via AIM to zmix
Dale,
Something that Barry Blesser and others did back in the 1970s with the EMT and also Lexicon is to add random amplitude modulations, particularly in the feedback loops...
zmix is offline   Reply With Quote
Old 6th June 2009   #103
Lives for gear
 
Casey's Avatar
 
Join Date: May 2003
Location: Cambridge MA USA
Posts: 1,078

Quote:
Originally Posted by zmix View Post
Dale,
Something that Barry Blesser and others did back in the 1970s with the EMT and also Lexicon is to add random amplitude modulations, particularly in the feedback loops...
Uhhhh, No.



-Casey
Casey is offline   Reply With Quote
Old 6th June 2009   #104
Lives for gear
 
Casey's Avatar
 
Join Date: May 2003
Location: Cambridge MA USA
Posts: 1,078

Quote:
Originally Posted by dale116dot7 View Post
Triangle with random (or maybe not random enough) direction changes, amplitude of maybe 1ms, at about 1/2 Hz.
Try 10ms at 2 Hz

Quote:
Originally Posted by dale116dot7 View Post
The tap spacing of my larger tap count algorithm - three loops but lots of taps per loop - varies as per the room size, so it will vary from maybe a millisecond up to maybe 30 or 40 milliseconds at larger room sizes.
Tap spacing should be such that there is a good chance that the delay between taps can be seen as enough to assure decorrelated signals. Statistically it turns out that 50ms or more will work on average over many tap pairs. Without statistical deccorelation you will have, as you have found, very strong comb filtering effects.

Quote:
Originally Posted by dale116dot7 View Post
So perhaps I have to make sure that the triangle ramp rate and the loop time don't make a pattern so that the allpass times aren't ever the same one pass through
Yes!

Quote:
Originally Posted by dale116dot7 View Post
Would putting a small modulated allpass within the feedback of another allpass break up that one ring?
No! The larger allpass will dominate.



-Casey
Casey is offline   Reply With Quote
Old 6th June 2009   #105
ValhallaDSP
 
seancostello's Avatar
 
Join Date: Feb 2009
Location: Pacific NW
Posts: 1,536

Quote:
Originally Posted by Casey View Post
Uhhhh, No.
I had thought the same thing (that the loop feedback had random amplitude modulation), when looking at the Blesser patent, as well as a 1978 book chapter that he wrote. In the book chapter, Blesser shows a chorus, with several delay taps that are randomly modulated both in delay length and in amplitude. In his 1980 patent (I think that's the date), it seems as though the feedback taps are modulated in amplitude. However, I think that was Blesser's way of describing linear interpolation, or at least some random cross fading between two taps which may or may not be contiguous to each other, as opposed to a single tap that is randomly amplitude modulated. That part of the patent is confusing to me.

The patent does describe random amplitude mixing of the tap outputs, but this is different than random amplitude in the feedback loops. Plus, I am not confident that the EMT-250 is really that close to the patent, although I would think that at least a few of the claimed ideas were used in the EMT-250.

I have tried random amplitude modulation in the feedback loops, and the result is a very uneven decay. It doesn't sound good, IMO. Delay length modulation sounds good in feedback loops. Other types of modulation can sound good, but you want to maintain as flat a magnitude response as you can with the modulation, and also avoid building up enough energy to make the system unstable. You want to preserve the total energy of the system, and be specific with your losses - i.e. have the losses controlled as a factor of RT60.

Sean
seancostello is offline   Reply With Quote
Old 6th June 2009   #106
Lives for gear
 
Join Date: Dec 2003
Location: Calgary, Alberta
Posts: 815

Thread Starter
Quote:
Originally Posted by Casey View Post
Try 10ms at 2 Hz Tap spacing should be such that there is a good chance that the delay between taps can be seen as enough to assure decorrelated signals. Statistically it turns out that 50ms or more will work on average over many tap pairs. Without statistical deccorelation you will have, as you have found, very strong comb filtering effects.
Perhaps that is why an algorithm that sounds good at as big of a setting as possible may sound good, but as the size goes down, the combing gets worse? Would I be smart to fade taps out (so they drop out gradually) at small sizes? A tap spacing of 50-80ms at canyon size becomes 5ms in a smallish living room. Keeping the same amount of chorus becomes much more noticeable in a small size. A 50ms tap spacing would result in a 20 Hz peak which is nice and low. At 5ms it gets to be 200 Hz - mudfest.

Or should I be looking at changing the tap gains - rather than trying to get a smooth decay, try to reduce combing by alternating and modifying tap gains somehow? I've been adjusting them for a smooth decay at canyon sizes so far. I would think that alternating tap gain signs would change the combing but maintain the density - maybe to half the frequency? What about applying acoustical diffusor patterns to the tap gains, spacings, and signs? Those equations are pretty well known, and I think I have them in an acoustic design book I have somewhere.
dale116dot7 is offline   Reply With Quote
Old 6th June 2009   #107
Lives for gear
 
zmix's Avatar
 
Join Date: Jan 2005
Location: NY, NY
Posts: 671

Send a message via AIM to zmix
Quote:
Originally Posted by seancostello View Post
I had thought the same thing (that the loop feedback had random amplitude modulation), when looking at the Blesser patent, as well as a 1978 book chapter that he wrote. In the book chapter, Blesser shows a chorus, with several delay taps that are randomly modulated both in delay length and in amplitude. In his 1980 patent (I think that's the date), it seems as though the feedback taps are modulated in amplitude. However, I think that was Blesser's way of describing linear interpolation, or at least some random cross fading between two taps which may or may not be contiguous to each other, as opposed to a single tap that is randomly amplitude modulated. That part of the patent is confusing to me.

The patent does describe random amplitude mixing of the tap outputs, but this is different than random amplitude in the feedback loops. Plus, I am not confident that the EMT-250 is really that close to the patent, although I would think that at least a few of the claimed ideas were used in the EMT-250.

I have tried random amplitude modulation in the feedback loops, and the result is a very uneven decay. It doesn't sound good, IMO. Delay length modulation sounds good in feedback loops. Other types of modulation can sound good, but you want to maintain as flat a magnitude response as you can with the modulation, and also avoid building up enough energy to make the system unstable. You want to preserve the total energy of the system, and be specific with your losses - i.e. have the losses controlled as a factor of RT60.

Sean
Sean, Both from papers that Dr Blesser has sent to me and the reading of the original patents I have seen references to amplitude modulations. I have had good results with small random amplitude fluxuations in the feedback loop (very small, less than a dB).

Casey, care to elaborate with something more insightful than "no"? (please...? )
zmix is offline   Reply With Quote
Old 7th June 2009   #108
Gear addict
 
Warp69's Avatar
 
Join Date: Sep 2004
Location: Denmark
Posts: 400

Quote:
Originally Posted by zmix View Post
Dale,
Something that Barry Blesser and others did back in the 1970s with the EMT and also Lexicon is to add random amplitude modulations, particularly in the feedback loops...
What do you mean by amplitude modulations in the feedback loop? Amplitude modulation of what? Gains? Taps? Coefficients?
Warp69 is offline   Reply With Quote
Old 7th June 2009   #109
Lives for gear
 
zmix's Avatar
 
Join Date: Jan 2005
Location: NY, NY
Posts: 671

Send a message via AIM to zmix
According to Dr Blesser's patent, quoted below from column 4 line 67 on:
Quote:
FIG. 3 shows in more detail a part of the loop which is shown in FIG. 2, including the delay circuit 4 or tA.

Outputs from the delay circuit 4 or tA are fed back to the summing circuit 6 at the input of the delay circuit through a plurality of damping elements, of which two damping elements gz1 and gz2 are shown.

These damping elements are operated by known random noise generators or random signal generators which are not shown.

Control of the damping elements by signals from the random noise generators is schematically represented by Z1 and Z2 for the two damping elements fz1 and Fz2 shown. In the same way as in FIG. 2, a further damping element g1 is provided in the feedback line.

The outputs of the damping elements fz are furthermore connected to the summing circuit 8 at the output 9 of the loop, though this is not shown in FIG. 3. The circuit arrangement shown in FIG. 3 provides a random-controlled length variation of the delay times.
Attached Thumbnails
Reverb Subculture-fig-2-fig-3.jpg  
zmix is offline   Reply With Quote
Old 7th June 2009   #110
Lives for gear
 
Join Date: Dec 2003
Location: Calgary, Alberta
Posts: 815

Thread Starter
Quote:
Originally Posted by zmix View Post
According to Dr Blesser's patent, quoted below from column 4 line 67 on:
It may be in a patent, but how is it implemented, or is it even in a product? The only ways to tell are to either ask him (and he may not remember), or read the ROMs and disassemble the code and figure out what it does - and I would guess for an EMT250 that might take three to five months after you have a copy of the ROMs. A schematic would be useful here. Having an EMT250 and a logic analyzer hooked up to its guts is an alternative, though I don't know many people with logic analyzers lying around in their basements.

As he refers to variable damping in the text, to me that would imply to me that he is likely talking about the variable frequency response of a gliding tap using linear interpolation - that provides close-to-random damping, and essentially, a random amplitude variation of high frequency content, though practically no variation at low frequencies.

If the main processor is not synchronized with the DSP and can't update the chorus coefficients fast enough, there will be an amplitude variation some of the time, when the two values (1-x) and (x) are not correct. If you have this happening, you can't chorus very quickly before you get nasty modulation noise.
dale116dot7 is offline   Reply With Quote
Old 16th June 2009   #111
ValhallaDSP
 
seancostello's Avatar
 
Join Date: Feb 2009
Location: Pacific NW
Posts: 1,536

Quote:
Originally Posted by dale116dot7 View Post
If the main processor is not synchronized with the DSP and can't update the chorus coefficients fast enough, there will be an amplitude variation some of the time, when the two values (1-x) and (x) are not correct. If you have this happening, you can't chorus very quickly before you get nasty modulation noise.
This is assuming that (1-x) is being calculated on the host, and not on the DSP. For that matter, the modulation signals might be generated on the DSP as well. I always generated my modulation signals on the DSP, although this was due to being limited to generic hardware - the EZ-KITs didn't have embedded microcontrollers of any note.

Sean
seancostello is offline   Reply With Quote
Old 18th June 2009   #112
Lives for gear
 
Join Date: Dec 2003
Location: Calgary, Alberta
Posts: 815

Thread Starter
Yes, that is the assumption there. If the AES Blesser paper (the one describing the hardware of an audio processor) describes the EMT250 processor, then the DSP does have the primitives needed to make an oscillator and fiddle with addresses. Something like the M200/PCM70/480L, also the Lexichip1 and 2 requires the host to do it. Since the service manuals for the 480L and LXP15 tell you that the slave Z80 is used to implement the pitch shift and chorus functions, as well as ramped coefficient adjustments, I'll take the manuals at their word.

I've done my LFO's on the host, though I plan on moving that over to the DSP when I get around to it. I did it on the host because it was just faster for me to write it that way. The only problem I have with that approach is that for a single chorus, the update rate is fine, when you have half a dozen of them, I can only update them at about 2kHz or so - and at high chorus rates, you get modulation noise at that frequency. I used the serial host interface, and that is the limiting factor. Had I used the faster parallel host interface and a processor with DMA, I could have easily done the chorus functions on the host, with a 1WC or maybe at most 2WC update of all of the chorus values.
dale116dot7 is offline   Reply With Quote
Old 18th June 2009   #113
ValhallaDSP
 
seancostello's Avatar
 
Join Date: Feb 2009
Location: Pacific NW
Posts: 1,536

Quote:
Originally Posted by dale116dot7 View Post
I've done my LFO's on the host, though I plan on moving that over to the DSP when I get around to it. I did it on the host because it was just faster for me to write it that way. The only problem I have with that approach is that for a single chorus, the update rate is fine, when you have half a dozen of them, I can only update them at about 2kHz or so - and at high chorus rates, you get modulation noise at that frequency.
Is this due to the inability to update x and (1-x) at the same time, or due to quantization of the modulation signal? I used to perform chorusing at 1/10 to 1/16th of the sample rate, and it sounded fine. However, maybe my ears weren't as good. If the problem is due to sync errors with the 2 linear interpolation coefficients, a few ideas:

- Calculate x on the microcontroller, and 1-x on the DSP. It will take an additional cycle or two per interpolation, but it might fix the problems.

- Use 1st order allpass interpolation. This works with a single coefficient - read Dattorro pt. 2 for details. Sounds nice for reverb modulation, not good for pitch shifting.

Sean
seancostello is offline   Reply With Quote
Old 18th June 2009   #114
Lives for gear
 
Join Date: Dec 2003
Location: Calgary, Alberta
Posts: 815

Thread Starter
I calculate x and x-1 on the micro, then send it to the DSP - into a buffer. The DSP waits until the end of the reverb loop, then copies any queued coefficient and address updates from the buffer into the main parameter memory. It is carrier noise, and is only audible at high chorus rates, large chorus excursions, and with a tone input. Normally in audio, I don't hear it. I want to move the chorus function entirely into the DSP, I just haven't been motivated enough to do it since I have a lot more support code to do - editing titles, storing effect settings, and, not insignificantly, some amount of MIDI support. It's all of this support code that takes forever to write!!!
dale116dot7 is offline   Reply With Quote
Old 21st June 2009   #115
Lives for gear
 
zmix's Avatar
 
Join Date: Jan 2005
Location: NY, NY
Posts: 671

Send a message via AIM to zmix
Reverb Modulation Examples

I've been working with the Lexicon PCM 96 for the last week and I am pretty surprised by how oddly the modulation is implemented in these algos..

Here are several audio examples, dry piano on the left, reverb return on the right.
All reverbs were set to the same size (34m), diffusion, level and decay time (2.5s)

I have also included comparable settings on the PCM-70, Ursa Major SST-282 Space Station and a simple 3 tank reverb I cooked up last week:
Attached Files
File Type: mp3 Piano PCM96 Hall.mp3 (488.7 KB, 582 views)
File Type: mp3 Piano PCM96 Random Hall.mp3 (488.7 KB, 558 views)
File Type: mp3 Piano PCM96 Concert Hall.mp3 (488.7 KB, 566 views)
File Type: mp3 Piano PCM70 Concert Hall.mp3 (488.7 KB, 576 views)
File Type: mp3 Piano Ursa Major SST-282.mp3 (488.7 KB, 579 views)
File Type: mp3 Piano zmix BT50 verb.mp3 (488.7 KB, 314 views)
zmix is offline   Reply With Quote
Old 21st June 2009   #116
Lives for gear
 
zmix's Avatar
 
Join Date: Jan 2005
Location: NY, NY
Posts: 671

Send a message via AIM to zmix
As an added bonus, here are exactly the same tests as above, but using a 100hz square wave oscillator as a signal source:

The modulation incorporated in the PCM96 algorhythms sounds to me like several allpass filters tuned to the lower audible end of the spectrum. The effect is not unlike a Bode frequency shifter, or a Phase shifter with the dry path muted (listening to the swept allpass outputs only) or an FM synthesizer. It imparts a disturbing ''wowowowow" to the 'running' reverb and makes the tail jump around unnaturally.
Attached Files
File Type: mp3 TONE PCM96 Hall.mp3 (488.7 KB, 312 views)
File Type: mp3 TONE PCM96 Random Hall.mp3 (488.7 KB, 529 views)
File Type: mp3 TONE PCM96 Concert Hall.mp3 (488.7 KB, 528 views)
File Type: mp3 TONE PCM70 Concert Hall.mp3 (488.7 KB, 532 views)
File Type: mp3 TONE Ursa Major SST-282.mp3 (488.7 KB, 540 views)
File Type: mp3 TONE zmix BT50 verb.mp3 (488.7 KB, 531 views)
zmix is offline   Reply With Quote
Old 22nd June 2009   #117
ValhallaDSP
 
seancostello's Avatar
 
Join Date: Feb 2009
Location: Pacific NW
Posts: 1,536

Nice sound files! Thanks!

To me, the 100 Hz tones all sound like delay modulation is used, even the PCM96 algorithms. The PCM96 Concert Hall has a very repetitive chorusing sound when heard this way. Random Hall sounds more random, and the PCM70 Concert Hall sounds somewhat random as well, although this might just be a more complex modulating waveform.

I am surprised how different the PCM70 Concert Hall and PCM96 Concert Hall sound. The PCM96 is very obviously chorused on the piano example - not just chorused in the recirculation, but chorused outputs. Did the 224 Concert Hall sound like this? If so, it sounds like the PCM70 Concert Hall is considerably different than the 224 algorithm of the same name. Huh.

The Space Station sounds like my old implementation of this algorithm - the sound decays away into a hellscape of tormented voices. I like modulated reverbs, but that is just spooky. Good for Dario Argento soundtracks.

Sean
seancostello is offline   Reply With Quote
Old 22nd June 2009   #118
Lives for gear
 
zmix's Avatar
 
Join Date: Jan 2005
Location: NY, NY
Posts: 671

Send a message via AIM to zmix
Hi Sean,
Quote:
Originally Posted by seancostello View Post
Nice sound files! Thanks!
To me, the 100 Hz tones all sound like delay modulation is used, even the PCM96 algorithms.
Have you ever listened to a Bode Frequency shifter? There is a fair example in the Logic built in plugins calld "Ringshifter" if you set the modulation oscillator to 1.5hz or so the effect is very close to the what the modulation on the PCM96 "Hall" and "Random Hall" sounds like. In the examples above I find that the Piano sounds like DX-7 when run through the PCM96. This is quite different from the delay modulation you can hear in the PCM96 and PCM-70 "Concert Hall" example.

Quote:
The PCM96 Concert Hall has a very repetitive chorusing sound when heard this way. Random Hall sounds more random, and the PCM70 Concert Hall sounds somewhat random as well, although this might just be a more complex modulating waveform.
Yes! In the PCM-70 the oscillator is a mixture of a 2.3hz triangle wave and a much slower random waveform (around 0.5hz) This creates a magical quality in the tail of the reverb that I cannot duplicate in the PCM96. The chorusing LFO in the PCM96 sounds like a square wave and has a maximum rate of 1.5hz. It is not randomized.

Quote:
I am surprised how different the PCM70 Concert Hall and PCM96 Concert Hall sound. The PCM96 is very obviously chorused on the piano example - not just chorused in the recirculation, but chorused outputs. Did the 224 Concert Hall sound like this? If so, it sounds like the PCM70 Concert Hall is considerably different than the 224 algorithm of the same name. Huh.
I spent DAYS trying to get the PCM96 to create the lush magic of the 224 "Concert Hall" algo. It's the only reason I bought the PCM96. The 224 "Concert Hall" sounds virtually identical to the PCM-70 and sadly not so much like the PCM96. I borrowed a PCM-70 and had the results I sought in seconds. I have a later generation 224xl on it's way here and shall post my results when that arrives so that you can hear the difference.

There is certainly a very important difference in the where the modulation occurs in the PCM96 and in the 224 / PCM-70. In the PCM-70, for example the modulation becomes much more pronounced when the taps are spread out by increasing the 'attack' parameter.

I posted these files because I would like to open a dialog with those here who share my obsession with all things reverb (i.e. Dale, Sean and Casey, etc).

Let's discuss!
zmix is offline   Reply With Quote
Old 22nd June 2009   #119
Gear addict
 
Warp69's Avatar
 
Join Date: Sep 2004
Location: Denmark
Posts: 400

Quote:
Originally Posted by zmix View Post
The chorusing LFO in the PCM96 sounds like a square wave and has a maximum rate of 1.5hz. It is not randomized.
It would be extremely strange to use a square wave for a chorusing LFO. I don't think that Lexicon (or any one else) would use that for chorus modulation.
Warp69 is offline   Reply With Quote
Old 22nd June 2009   #120
Lives for gear
 
zmix's Avatar
 
Join Date: Jan 2005
Location: NY, NY
Posts: 671

Send a message via AIM to zmix
Quote:
Originally Posted by Warp69 View Post
It would be extremely strange to use a square wave for a chorusing LFO. I don't think that Lexicon (or any one else) would use that for chorus modulation.
Not as strange as you think. Roland's JC-120 and CE-1 used such modulation. Try it and you'll see it's not as extreme as you imagine.
zmix is offline   Reply With Quote
New Reply New Reply Submit Thread to Facebook Facebook  Submit Thread to Twitter Twitter  Submit Thread to LinkedIn LinkedIn 



Thread Tools Search this Thread
Search this Thread:

Advanced Search

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


All times are GMT +1. The time now is 10:36 PM.

 
 
Powered by vBulletin®
Gearslutz.com Limited - UK Company Number 7597610.
Registered Office: 35 Ballards Lane, London, N3 1XW.

SEO by vBSEO ©2010, Crawlability, Inc.