Does anyone have ideas regarding progression in developing proficiency in simulated room acoustics?

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

Does anyone have ideas regarding progression in developing proficiency in simulated room acoustics?

I have an okay background (master's level) for understanding numerical methods and algorithms, but I started viewing this paper for example:

https://www.researchgate.net/publicatio ... vironments

Physically Based Real-Time Auralization of Interactive Virtual Environments
January 2011
Thesis for: PhD
Authors:
Dirk Schröder

And I thought that I can recognize most of the algorithms there, but understanding the wholeness seemed like requiring quite a bit of effort. I also don't have the background to understand, how advanced this paper is and in what kind of "hierarchical" ordering the methods for simulating room acoustics might be. I.e. I don't have a background in the study field itself.

So any ideas, how could I build up the knowledge so that e.g. the above paper would seem more intuitive?

The paper also seems to argue its methods as a kind of universal way to treat sound for CAD models, but I'm not sure if this is so.

As a further note, I'm not sure if this particular paper reads well. It seemed like it has quite a bit of "bloat". Compared to just extracting the crucial parts.
Last edited by soundmodel on Sat Jan 22, 2022 5:54 pm, edited 1 time in total.

Post

I'd say physically accurate acoustic simulation is one of the few things that makes physically accurate light transport look easy. It's basically the same problem as global illumination, except your "light speed" is very slow (so can't simplify it as "infinite") and your bandwidth (about 10 octaves) is very wide, so can't really treat all frequencies the same (ie. the lower the frequency the more it behaves like a wave that diffracts around obstactles, while the higher frequencies might behave more like particles that just bounce around).

In short, it's like pow(terrible, 42).

Post

It seems that there are also easier papers around:

https://www.researchgate.net/publicatio ... _for_games

But the question was about understanding the paper linked in the first message.

Post

soundmodel wrote: Sat Jan 22, 2022 9:39 am Does anyone have ideas regarding progression in developing proficiency in simulated room acoustics?

And I thought that I can recognize most of the algorithms there, but understanding the wholeness seemed like requiring quite a bit of effort.

So any ideas, how could I build up the knowledge so that e.g. the above paper would seem more intuitive?
"Quit a bit of effort," indeed. This dissertation is at an advanced level, pretty much at the frontiers at the time of writing, or so it appears to me.

The most basic assumption of this dissertation is that the reader have quite a bit of familiarity with acoustics, for example on the level of:

Philip M. Morse and K. Uno Ingard. Theoretical Acoustics. Princeton, 1968. A classic. Morse is co-author with Herman Feshbach of one of the most famous mathematical physics book(s) in history - two volumes.

Allan D. Pierce. Acoustics: An Introduction to Its Physical Principles and Applications. Acoustical Society of America and American Institute of Physics, 1989. Originally published by McGraw-Hill.

Lawrence E. Kinsler et al. Fundamentals of Acoustics. Fourth edition, Wiley, 2000. Seemed to me to be more accessible, but I don't own a copy - had to borrow it.

The dissertation you referenced has a very simple review of some of the key elements, and the review of each topic usually goes very quickly from basics to advanced consideration. This dissertation is not the place to learn acoustics.

The chapters move quickly on to more advanced topics covering moving sources, including sources such as musicians with moving parts. This can be extremely complicated; a moving, rotating rod is hard enough. Arrays with lots of microphones also gets complicated.

The chapter on room acoustics is somewhat gentler, proceeding more slowly to advanced topics, but here again, this is not the place to learn room acoustics. The final destination here is to simulate not only a room, but connected rooms and everything in them, including moving boundaries and moving sources and other objects. One needs to have some understanding of duct theory, elements of diffraction, reflection, sound absorption, etc. Then come stochastic methods, Monte Carlo simulation, and so on. This is a kind of everything including the kitchen sink. Entire books have been written about each of these subjects. MC starts out simple, but for practical reasons, optimizations are necessary (such as variance reduction).

Ray-tracing is something that you already may know about. I haven't used this technique myself, but the developer QuikQuak who sometimes posts has utilized this and may be able to help.

----------------------------

It's very difficult to suggest how to get a sense of the "wholeness" you talk about of this dissertation because there is no real "wholeness." I also don't think that you would ever develop a sense of intuition about this dissertation without familiarizing yourself with every single subject I have mentioned so far, and then some. Each of the subjects is taken to a high degree of detail and/or requires a detailed understanding for it to be intuitive.

If all you want to do is to understand and perhaps simulate an empty room, which is probably where you should start anyway, you don't need this dissertation; you need to study the basics, for example Section 9.5 of Morse and Ingard (plus whatever prerequisites you lack) or Chapter 6 of Pierce. The chapter in Kinsler is probably "Cavities and waveguides," but as I said I don't own this one. I myself developed a room acoustics simulator for rectangular parallelepipeds after studying (in addition to the aforementioned references):

Gabriel Barton. Elements of Green's Functions and Propagation: Potentials, Diffusion, and Waves. Oxford, 1989.

Post

DaveClark wrote: Sat Jan 22, 2022 7:28 pm It's very difficult to suggest how to get a sense of the "wholeness" you talk about of this dissertation because there is no real "wholeness." I also don't think that you would ever develop a sense of intuition about this dissertation without familiarizing yourself with every single subject I have mentioned so far, and then some. Each of the subjects is taken to a high degree of detail and/or requires a detailed understanding for it to be intuitive.

If all you want to do is to understand and perhaps simulate an empty room, which is probably where you should start anyway, you don't need this dissertation; you need to study the basics, for example Section 9.5 of Morse and Ingard (plus whatever prerequisites you lack) or Chapter 6 of Pierce. The chapter in Kinsler is probably "Cavities and waveguides," but as I said I don't own this one. I myself developed a room acoustics simulator for rectangular parallelepipeds after studying (in addition to the aforementioned references):

Gabriel Barton. Elements of Green's Functions and Propagation: Potentials, Diffusion, and Waves. Oxford, 1989.
Yeah well, starting from near zero computational acoustics experience, it would make some sense to build simpler models first and then in some future point come to the point, where what's argued in the paper of the first post would be revealed as "the next logical step". However, which literature may in fact assist in developing this kind of progression?

I've seen similar progressions in e.g. how one would be led to MC methods. So one would e.g. first study different sorts of statistical models, then stochastics, and then perhaps at some point think about the combination of these things.

Post

soundmodel wrote: Sat Jan 22, 2022 8:04 pm Yeah well, starting from near zero computational acoustics experience, it would make some sense to build simpler models first..
i would probably start with simulating the wave equation in 2D first and then treat 3D (or, in fact, nD) as the obvious generalization. i think 2D is the sweet spot for learning PDE stuff because it does expose the complexities of having to deal with multiple spatial dimensions in the simplest possible scenario - in 1D, you would not yet see them at all and in 3D it would be just more of the same (edit: well, at least when we are talking only about scalar fields). the 1D and 2D case is nicely presented in the book "numerical sound synthesis". here is a sort of..."pre-print" - i guess:

https://ccrma.stanford.edu/~bilbao/nssold/booktoplast

a while ago, i was dabbling myself a little with implementing the 2D case:

https://github.com/RobinSchmidt/GNUPlotCPP/issues/4

i rendered this using this code:

https://github.com/RobinSchmidt/RS-MET/ ... quations.h
https://github.com/RobinSchmidt/RS-MET/ ... ations.cpp

which is totally not ready for public consumption - and perhaps never will be - it's just some playing around. maybe also check out this youtube channel:

https://www.youtube.com/c/NilsBerglund

he does all sorts of numerical simulations there and the code to render these is also available on github. of course, i'm kinda assuming here, that you actually want to do a simulation based on the wave equation - which is perhaps not what you want because it's impractical in 3D due to the insane computational requirements.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

For non-realtime implementation (good luck with real-time is all I can say) the "insane computational requirements" are the least of your worries for full bandwidth wave simulation with a regular grid, because the algorithm is embarassingly parallel and really GPU friendly, yet the real problem you run into is the stupid amount of memory required.

Basically at 10kHz you need a bare minimum of one sample every 15mm (on diagonals, so divide by sqrt(3) for the axial sampling rate) and practically you need more to combat numerical dispersion so you're probably looking at something like 3mm or less on the axials. Should be rather obvious that this is bit of a problem except for the smallest of environments.

There are more workable approaches though, which generally involve only doing the wave equation for low frequencies and either inferring or ray-tracing the higher frequencies (eg. image source is tried and true and simple enough; it's obviously trivial in a shoebox, but generalizations aren't that bad either, though it's still quite a bit of computation). There's also some stuff that combines analytical methods in clever ways... but honestly I'm a bit out of touch with this stuff.

Here's one interesting paper for example:

https://www.youtube.com/watch?v=FDL39J-i0yQ

Post

Also for what it's worth, my entirely real-time acoustic simulation in my toy game engine consists of tracing a couple of "random" (well, about evenly distributed on a sphere) rays around the listener and using these to estimate the size of the space to dynamically adjust the RT60 for an algorithmic reverb using Sabine's formula (+ how the reverb is panned in the mix).

Then for each source, I trace rays from listener to source and source to listener (if there was a collision) and use these two rays to estimate how much of the total distance is blocked, which is used to set the cutoff of a lowpass filter for direct sound (so "thin walls" block less high frequencies than a mostly obscured path that barely passes anything except the lowest bass).

On top of that I do quadratic distance attenuation for direct sound, exponential for the reverb send + dynamic distance delay (with interpolation for doppler) and a very approximately spatialized 4-channel ambisonic mix of the whole thing.

This won't win any awards for realism, but even such a completely fake approach works surprisingly well in an interactive environment. Sure, it does produce complete garbage in certain situations (if you pay attention), but... yeah... I basically came to the conclusion that even trying to produce accurate 1st order reflections in a "realistic" environment (ie. not a shoebox) is a bit excessive to try to do in real-time (though I might think of a precompute approach for that at some point, it's theoretically doable, I think).

Post

I am also interested if there is alternative literature for the things mentioned in the first post's paper.

I haven't read very much of it, but it seems that while the information might be there, the paper is perhaps not organized very clearly w.r.t. to the essential technical parts. Or also, as suggested earlier, perhaps the paper is not the place to learn.

Post

Here the level seems nicer, but again I'm not sure if the paper is well-written for learning:

https://citeseerx.ist.psu.edu/viewdoc/d ... 1&type=pdf

Room acoustics modeling using the raytracing method: implementation and
evaluation
Licentiate Thesis
University of Turku
Department of Physics
2005
David Oliva Elorza

Post

Everyone learns differently, so what works for one person might not work for another person.

That said, scientific publications rely heavily on references and in general it's common practice to very briefly state the previous results you are relying on and then just provide a reference to the original publication (or sometimes a related text-book; there's also the odd reference once in a while that just refers to another reference, but that's typically the author's being lazy). If you're a subject matter expert, then you can often skip most of these (because you've already read them, or otherwise know the information by heart), but if you're trying to learn something by reading scientific publications, then you're actually supposed to lookup the references whenever you need more information about something.

Now, personally I like to learn stuff directly from scientific literature, but it's not something you can do the same way you'd read a text-book where you expect the author to provide you with all the relevant details. Rather, if you want to learn from publications, you need to be prepared to search further information and spend time working through whatever it is that you're reading. If you'd like a self-contained "tutorial" on pretty much any subject, you really should get a relevant text-book instead.

Post

What about this:

https://www.win.tue.nl/~sjoerdr/papers/boek.pdf

An Introduction to Acoustics
S.W. Rienstra & A. Hirschberg
Eindhoven University of Technology
23 Dec 2021

Post

soundmodel wrote: Sat Jan 22, 2022 8:04 pm However, which literature may in fact assist in developing this kind of progression?
Did you not see the literature I listed?

As I wrote, this is what I myself used to "assist in developing this kind of progression."

Post

I skimmed through the thesis in the original paper, and if I (as someone who knows some of the basics of acoustics and computational geometry, but isn't truly an expert in either) got the big picture right they are basically doing image source method for specular ER, MC path-tracing to estimate properties of the diffuse reverb field (which is then used to synthesis the reverb tail), some interesting "hacks" to deal with diffraction (those are something I'd never seen before, need to look that stuff up more carefully at some point), with BSP and spatial hashing as acceleration structures, probably some fancy scheduling to take advantage of temporal coherence (that's the part I kinda skipped 'cos it's mostly engineering) to make it run in real-time ... that's my take on the big picture anyway.

I don't see how any of that would ever become "intuitive" unless you plan on doing a PhD on it.

Post

Well, perhaps look at these notes for Wayverb: https://reuk.github.io/wayverb/introduction.html

They should at least help with terminology and give you an idea of some of the better known methods .. and it's all describing an actual implementation that's open source too.

Post Reply

Return to “DSP and Plugin Development”