Prop Reverb, is it possible for this application?
Wurlitzer
Posts: 237
I have a real and a virtual pipe organ using 2 Props to handle all the digital signal processing for keyboards (4-61 notes), pedal board (2-32 notes [first and second touch]), stop tabs (96), and driving the actual pipes (1000+) . Works perfectly. The console prop handles all the inputs and then generates MIDI messages for the PC and the Prop in the pipe chamber to drive the pipes.
I know some of you have incorporated reverb in some of your projects and I would value your opinion regarding the feasibility of the following.
There are some new PC based virtual pipe organ programs with audio samples that are so close to real it is amazing but they lack any reverb.
These samples were taken of each individual pipe in a given organ and the amount of PC RAM required is huge. The program loads the sample for EVERY pipe into RAM. For the organ I want to run 32 GB (yes GB) min. is recommended. While adding reverb via software is the normal approach, it starts to tax the system resources such that you can hear the degradation. I would like to off load the reverb processing from the PC to ideally a Propeller based hardware solution.
Also, in my configuration, there are 10 audio channels which need reverb added.
I can purchase some off the shelf hardware reverb units at substantial costs but cost is not the issue. I want a new Propeller project and even if it required one Prop per audio channel I would have no problem doing so.
Digital control via the Prop is easy in my mind but I have zero experience programming audio processing.
Below are my requirements.
1) Each audio channel should have 3, programmable delay times. Usually they do this to simulate reverb from left, right and rear. (values sent PC to Prop via serial comm.)
2) Each of the 3 programmable delays need to have audio level adjustment (values sent PC to Prop via serial comm.)
3) The virtual organs use 24 bit values and ideally the reverb would equal that but some latitude is tolerable.
4) While I would like to use the Prop for the ADC and DAC, external ADCs and DACs would be OK if that is the only way to achieve quality sound.
5) The 3 individual delays need to be combined into a single audio stream.
6) Then the combined delayed audio needs to be combined with the original signal (this can be via an external mixer or done in the prop)
One thing going for me is that I find programming in assembly easier than any of the other languages so I can make the best use of multiple cogs at maximum speed.
Doable??????
I know some of you have incorporated reverb in some of your projects and I would value your opinion regarding the feasibility of the following.
There are some new PC based virtual pipe organ programs with audio samples that are so close to real it is amazing but they lack any reverb.
These samples were taken of each individual pipe in a given organ and the amount of PC RAM required is huge. The program loads the sample for EVERY pipe into RAM. For the organ I want to run 32 GB (yes GB) min. is recommended. While adding reverb via software is the normal approach, it starts to tax the system resources such that you can hear the degradation. I would like to off load the reverb processing from the PC to ideally a Propeller based hardware solution.
Also, in my configuration, there are 10 audio channels which need reverb added.
I can purchase some off the shelf hardware reverb units at substantial costs but cost is not the issue. I want a new Propeller project and even if it required one Prop per audio channel I would have no problem doing so.
Digital control via the Prop is easy in my mind but I have zero experience programming audio processing.
Below are my requirements.
1) Each audio channel should have 3, programmable delay times. Usually they do this to simulate reverb from left, right and rear. (values sent PC to Prop via serial comm.)
2) Each of the 3 programmable delays need to have audio level adjustment (values sent PC to Prop via serial comm.)
3) The virtual organs use 24 bit values and ideally the reverb would equal that but some latitude is tolerable.
4) While I would like to use the Prop for the ADC and DAC, external ADCs and DACs would be OK if that is the only way to achieve quality sound.
5) The 3 individual delays need to be combined into a single audio stream.
6) Then the combined delayed audio needs to be combined with the original signal (this can be via an external mixer or done in the prop)
One thing going for me is that I find programming in assembly easier than any of the other languages so I can make the best use of multiple cogs at maximum speed.
Doable??????
Comments
24-bit (mono?) samples at, I assume, a CD-quality sample rate of 44.1KHz:
24 * 44,100 = 1,058,400 bits/second or 132,300 bytes/second of sample storage required for the delay buffer to accomplish the reverb effect. If you want cathedral-style reverb, you're looking at maybe 15 seconds of buffering. For a music hall or similar, maybe 10 seconds or less of buffering.
You will need external RAM of some kind. The speed of your RAM solution will need to be enough to accommodate reading many samples (essentially taps of an FIR filter) and writing a result. Part of that solution could be keeping the first N bytes of the delay buffer (and maybe FIR filter coefficients) in the Propeller's internal RAM. That depends on the size of your FIR filter and if you choose to use a convolution reverb or not.
This assumes one Propeller per channel. You might be able to use one Prop on multiple channels if serial RAMs are fast enough to do that. I don't know if they are or not.
The guy who made the KickStomp might have some insight.
I will admit this is not the best application for the Prop but I'd have fun pushing the envelope and in my little corner of the world I have run out of applications for the Prop but don't want to stop programming for it.