The Kyma Forum is no longer active. Please visit the Kyma Community.
![]() |
![]() ![]() ![]() ![]() ![]()
|
next newest topic | next oldest topic |
Author | Topic: How to create impressive reverbs with Kyma? |
paugui Member |
![]() ![]() ![]() Hi all I got a Capybara 320 last year (fortunately with all DSP expansions included), and have been thinking it would be really interesting to developed my own reverb algorithms, using delays and other basic components. The first thing I have to ask is, are there any free PDFs available explaining the basics behind some algorithms from old reverb units as well as the physics of reverberation? Second thing, are there any basic delays in Kyma without feedback option available?
Paulo IP: Logged |
Douglas Kraul Member |
![]() ![]() ![]() quote: Commercial quality professional reverb algorithms are still considered somewhat black arts and as such those secrets are closely guarded. There are though a number of academic papers available on the Internet. The seminal paper was Manfred Schroeder's "Natural Sounding Artificial Reverberation" http://www.aes.org/e-lib/browse.cfm?elib=849. There is extensive writing about this paper/algorithm, online, for example here: https://valhalladsp.com/2009/05/30/schroeder-reverbs-the-forgotten-algorithm/ and here: https://ccrma.stanford.edu/~jos/pasp/Schroeder_Reverberators.html. However, commercial reverb algorithms are very different in many respects. I also recommend poking around on this blog: https://valhalladsp.com/blog/. The author is a self-taught reverb expert whose software plugin reverb products are highly regarded. There is a lot of good information that can be gleamed from his writings, especially those written a number of years back. He has also given talks on reverbs and if I recall there is an audio recording and PDF of one presentation available on line worth exploring. Based on personal experience my recommendation is to spend a good amount of time surveying the available information online, study what Sean Costello has written, and do a lot of experimenting in Kyma. Remember that there are some good reverb examples already in the Kyma library that are worthy of study. - Doug [This message has been edited by Douglas Kraul (edited 26 May 2017).] IP: Logged |
paugui Member |
![]() ![]() ![]() Thanks for the feedback! I was hoping to do a reverb by computing the delays in the path of the sound waves (how long it would pass for them to return to the emitter), but am noticing I would end up needing way too many delays... I was checking the tap delays in which a script was used, but not sure how that would apply in this case, since I would have lots of delay times... But I can definitely compute a mathematical expression to determine those delay times that would depend on the dimensions of the space and on natural numbers... Is there any way I could put do this simply, and rather than having thousands of delays, just stick to a simple script?
Paulo IP: Logged |
Douglas Kraul Member |
![]() ![]() ![]() quote: You could approximate multiple delays by using a single long delay but have many taps to read from it. This affords the possibility to share sample memory (a precious resource in a Capybara) across multiple delay paths. To account for the 1000s of delay paths though implies many taps, plus the coefficient multipliers, and overall summing. If you pursue this type of approach you basically end up with a very large FIR filter, which of course is very closely related to a convolution process. So essentially you are creating a type of convolution reverb. The computational requirements for such an approach can be great. I suggest that you research convolution reverbs before going too far down this path. In a more traditional reverb algorithm the large number of sound-path delays are usually approximated by using a few delay lines but employing feedback. Each feedback iteration replicates previous repeats (reflections). It does not take many feedback delays to create very dense reflections. The trick is to pick the right feedback times; relative prime numbers are a good place to start. Keep in mind that every time sound encounters a surface that some of the energy is reflected, and some of it absorbed by the surface. The reflectivity/absorption characteristics are frequency-dependent depending on the surface material. I also suspect that there are some non-linearities involved with certain surface types where the reflectivity is also dependent on the sound's intensity. So regardless of how the reflections are synthesized there will need to be additional processing. Simply calculating the sound paths based on the space's enclosing geometry can provide an initial approximation but does not account for the complexity of surface interaction from elements contained within the space (think of seats with people in them in a concert hall). Researchers have explored this approach to reverb synthesis in the past with limited success. A good sounding reverb has to factor in more than the first order effects. Doug [This message has been edited by Douglas Kraul (edited 02 June 2017).] IP: Logged |
Douglas Kraul Member |
![]() ![]() ![]() [DELETED] [This message has been edited by Douglas Kraul (edited 02 June 2017).] IP: Logged |
paugui Member |
![]() ![]() ![]() Thanks for another great post Doug!
So, if I try to make a Reverb in Kyma using delays, I probably should not use the feedback that is available in the delay modules but rather an extra feedback patch that can be filtered or processed in some way, right?
I'd guess that would mean I would have to write to memory and put several delays while reading that memory content, right? The one thing that worries me on that approach is that, from what I could notice, those delays don't have a variable delay time, right? My idea is to create a reverb algorithm that is quite versatile and that can be mangled a lot in realtime, so it would be really important to get variable delay times.
Creating a reverse reverb would also be very interesting...
Actually, is there any sound available in Kyma that acts as a convolution reverb?
Paulo IP: Logged |
pete Member |
![]() ![]() ![]() Hi Paulo If you have a capybara (and only if you have a capybara) you can use Petes DSP modules and one of which is a multi tap delay. It's limited to 50 taps but you can cascade them. Another thing you may want to play with is the "Reveb Body Plus" found here http://www.symbolicsound.com/cgi-bin/forumdisplay.cgi?action=displayprivate&number=3&topic=000190
If you want to do more in the feedback path you can use the "feedback in" and "feedback out" module pair, but on the capybara this has a delay in it's self (not hot controllable) and the minimum delay is equal to the number of DSP chips in your cappy in samples. BTW the feedback in the standard Kyma delay modules is not that processor intensive un-like the feedback pair. You can get feedback with less delay if you use a memory reader and writer of some sort but this can each up processing as they have to be scheduled on the same chip. May need fiddling to get may of them working together. Another area of experimentation would the cross filter long. In this you can put a recording of an impulse response made by recording a starter gun in acoustic environment and playing it into the response input while putting normal signal into the input. This is not like other systems where you have to record the response, process it, and then assign it to the player, instead the cross filter allows the response to be played in in real time and starts processing it within one sample ( or minimum latency) of it's arrival. It can also be replaced with a new response by triggering it, and it seamlessly and gradually takes over from the first as it is being played in, all while the input signal continues being processed. You don't have to feed the response input with a sound file, you can instead synthesis your own feed on the fly. For example if you triggered the response and immediately fed three full scale pulses into the response input, all 20 ms apart, then the main signal will come out as if you had put it through a multi tap delay with three taps at 20ms intervals. If they pulses were negative, the taps would be negative and if the pulses were at all different levels, so would the taps be at the corresponding levels. So with the cross filter it is like having a multi tap delay with thousands of adjustable taps all depending what you feed into it's response input after the response is triggered. Hope this helps. Pete IP: Logged |
paugui Member |
![]() ![]() ![]() Ups... Have been away for a while and didn't even notice this reply to my original post... Any chance anyone still here? I was actually having a look at Petes DSP modules now, but seem to be unable to get any of them to run... :S That multi tap delay could definitely be really useful for my designs...
Paulo IP: Logged |
All times are CT (US) | next newest topic | next oldest topic |
![]() ![]() |
This forum is provided solely for the support and edification of the customers of Symbolic Sound Corporation.