Context: I am coming at this from a game dev / game engine background, and I am trying to build an extremely general-purpose system for defining how objects sound.

With visual/rendering materials in game engines, a very popular system for this is PBR. Materials made using PBR may define properties like albedo color, normal maps, emission, roughness, metallic, specular, etc. This allows creating objects that interact with light in a realistic way, using general-purpose parameters.

With physics materials in game engines, it's common for them to define friction, restitution/bounciness, absorbency, etc. This allows defining how objects react to each other when sliding against each other or impacting each other in the physics engine, using general-purpose parameters.

With audio materials, such as those used for calculating footstep sounds, impact sounds, bullet hole sounds, etc, as far as I know most games just use a hard-coded list of sounds. For example a game may define an object as sounding like "wood", so you walk on that object and it plays the wood footstep sound.

However, I am interested in building an engine-agnostic representation of audio materials, so a hard-coded list of sounds is not ideal. I would prefer to have a series of parameters like PBR provides for visual materials. For example if game engine A has "wood" and "birch wood", and game engine B has only "wood", I would like to be able to convert "birch wood" into parameters, then game engine B can play the closest equivalent sound to those parameters, or possibly interpolate between sounds, or procedurally generate sounds.

Is there a PBR-like material system for audio? Is there a way to define how objects sound using a series of parameters instead of a hard-coded list of strings? Some set of parameters to define audio resonance, brittleness, impact response, thermal response, moisture response, hollowness, reverberation, etc? Do any existing apps have this, such as professional audio software, movie making software, game engines, etc?

If such a thing does not yet exist, what parameters should it have? I don't really have a good idea myself since I am relatively clueless when it comes to sound design.

  • 1
    In terms of how sound bounces off of surfaces, that is already parametrized and procedurally generated in the form of reverb. In terms of how a surface sound when you walk on it, that might have too many variables to make it reasonable to procedurally generate it. But if you could synthesize that with a fairly simple synth engine then that would accomplish parameterization and procedural generation. Perhaps FM synthesis would be a good engine to use. Nov 17 at 19:53
  • It's almost into the physical modelling side of synthesis. idk anything that does modelling of arbitrary materials in this kind of way - but it's a very long time since I was directly involved in physical modelling [early/mid 90s]; sampling & impulse response modelling/shaping kind of took over for the most part.
    – Tetsujin
    Nov 18 at 17:51
  • Alright, let's ignore procedural generation then. How can I quantify parameters of how materials sound, and assign these values to audio samples? It does not need to be a perfect physical model of the object, just something roughly correct. Nov 25 at 9:29
  • Be aware that as in CG you can allow for hours and days of rendering, there still isn't an analog feature in sound design. Out of the gate, you could get by with impulse responses and physical modelling. Look at CCRMA for Synthesis Toolkit and Faust STK, to begin with. Then play with some reverb impulse responses. Worth noting that spatialization is a major component, so AmbiSonics or similar (which I think you already have with SDL) Nov 28 at 22:32
  • It is also about how much work you are prepared to do. You won't get any faster in the sound design realm, and you might even need to do some programming. Some actual, physical, programming. Nov 28 at 22:39


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.