Sooooo I'm remaking the sound library...

Release and discuss things you've made, including mods.
User avatar
Lemaki
Posts: 9
Joined: Sun Aug 16, 2015 1:03 pm UTC
Location: France

Sooooo I'm remaking the sound library...

Postby Lemaki » Sat Aug 11, 2018 6:43 pm UTC

...and I have some questions about Daemon's sound system and other stuff

Hi everyone!
I bought a nice little mic and a sweet synth a few months ago and I thought I would attempt what we've all been waiting for: making a complete CC sound library for Unvanquished. :smile: This is still little more than an idea in my head at this point, but I've already got a glimpse of how I would proceed:
  • Use CC0 sounds in priority, remaster them and keep track of where I got them.
  • Record my own sounds when needed. Voices are an example I have in mind.
  • Do footsteps first. They're the thing we hear most in the game, and could provide a solid basis to what we would like Unvanquished to sound like.
  • Do voices last, cause it's gonna be hard.

Question time

  • Regarding Github repos, it seems like sounds ought to be included in different repos, based on what their purpose is (models, ui...) instead of being all in a specific "sounds" repository. Am I correct in that assumption or did I miss something?
  • How are footsteps managed exactly and where can I find this in the code? Specifically, I'm looking at how different characters on different surfaces make a different sound, if it's hard-coded in the map or the textures or something else, and what would the steps be to implement a more diverse and specific set of sounds, i.e. human on metal, human on dirt, default human, dretch on metal, dretch on dirt, etc.
  • Is FLAC OK?
Thanks in advance for your answers and let's just hope I stay motivated for this. :tongue:

Bonus question: Have you considered adding in-engine effects for underwater, like an ambient low sound + a low pass filter on other sounds? Is it technically possible? If yes, and if you're up for it, I could consider coding it myself. Approaching the code is kind of overwhelming for someone who've never read it like me, but I trust I could contribute given some insight on where to look.
User avatar
illwieckz
Project Head
Posts: 457
Joined: Sat Aug 11, 2012 7:22 pm UTC
Location: France
Contact:

Re: Sooooo I'm remaking the sound library...

Postby illwieckz » Sun Aug 12, 2018 5:27 pm UTC

Hey Lemaki, that's very good to hear that! Awesome! :thumbup:

Lemaki wrote:This is still little more than an idea in my head at this point, but I've already got a glimpse of how I would proceed:
  • Use CC0 sounds in priority, remaster them and keep track of where I got them.
  • Record my own sounds when needed. Voices are an example I have in mind.
  • Do footsteps first. They're the thing we hear most in the game, and could provide a solid basis to what we would like Unvanquished to sound like.
  • Do voices last, cause it's gonna be hard.

Yeah, that's the best way to do it. Footsteps first is a very good decision. CC0 is perfectly fine.

Just an advice: for jump sound please avoid the hop voice sound absolutely! :tongue: Those hop voices in some other games are so annoying… The current jump sounds give a great idea of what is a correct jump sound: sound of clothes being mussed and accessories tinkling.

Question time
  • Regarding Github repos, it seems like sounds ought to be included in different repos, based on what their purpose is (models, ui...) instead of being all in a specific "sounds" repository. Am I correct in that assumption or did I miss something?

Correct. By the way if this gonna be a one-man-effort you can probably start as one-repository-to-fit-them-all, and it will help us to ship preview packages at first. This repository can be split-up lately. I basically did something like that for models: I first did a models repository then split it in three (I have some skills to do it keeping git history and I can help for that).

  • How are footsteps managed exactly and where can I find this in the code? Specifically, I'm looking at how different characters on different surfaces make a different sound, if it's hard-coded in the map or the textures or something else, and what would the steps be to implement a more diverse and specific set of sounds, i.e. human on metal, human on dirt, default human, dretch on metal, dretch on dirt, etc.

Footsteps are managed as a surface flag, it's literally a flag in the bitwise operation meaning if you know what I mean.

In the bsp format the texture list is a list of two integer numbers and one string (the texture picture). Each bit of those integers means something: is it wallwalkable? is it buildable? does the soundstep must be a metalstep? etc. With each surface is associated the index of one of this {flags, flags, texture path} triplet. So the engine renders a texture on a surface and if someone walks on this surface the engine plays the footstep related to the flag that is set: common step, metal step, organic (alien creep) step…

So, the map hardcode which kind of sound effect to play (metal, organic…) not the sound path to play. The engine plays the common step, metal step or organic step related to the player model walking on the surface. So you have to produce all those steps for the battlesuit, for the naked human, for the aliens (and you can probably do it for each alien form if you feel very productive :tongue: but that's clearly not a priority, replacing the existing sound effects is).

  • Is FLAC OK?

FLAC is very OK. FLAC is so OK it's the recommended format to be stored in repository. Unfortunately the FLAC format is not parsed by the engine so sounds must be converted to something else (vorbis or opus) before packaging but yes, FLAC please. As a widely and good lossless format it fits perfectly the need for in-repository storage format. It can be good to avoid storing metadata in FLAC file directly because git is not very happy with blob file formats, a good idea would be to store a sidecar file using the vorbis comment format (see this example).

CDDA format (44Hz, 16bit) is good enough. This is the minimal quality level (please don't do less than that) and you can do more. Keep in mind it's to be stored in repositories so it will converted to something else before shipping so please do not sacrifice quality to save file space.

Note that positional sounds (i.e. everything but soundtracks) must have only one channel (mono).

Bonus question: Have you considered adding in-engine effects for underwater, like an ambient low sound + a low pass filter on other sounds? Is it technically possible? If yes, and if you're up for it, I could consider coding it myself. Approaching the code is kind of overwhelming for someone who've never read it like me, but I trust I could contribute given some insight on where to look.

Underwater effect would be very cool. One sound effect I'm really waiting for is an environmental snowy attenuation for chasm :tongue:.

Oh and well, since I talk about snowy sounds and you are talking about soundstep: please do some awesome snow step please (I already collected some free and libre snowy sounds I can sent you for that purpose :wink: ) please please please :grin:.

If you wanna code it would be very useful to lay the foundation stone for sound shaders: a text file that would tell the engine which effect to apply on a particular sound when played any time this particular sound path is called to be played. The most important sound effect (and the most basic one) that would be very useful to have even if there is only one sound effect implemented would be amplification effect: being able to tweak a sound volume just by setting a number in a text file would be awesome and would allow us to not have to store a whole new FLAC file in repository just because we need to tweak the loudness.

Let's build an awesome sound library for Unvanquished! :bsuit:

:advgranger: :beer: :granger:
This comment is licensed under cc ​​by 4 and antecedent.

Return to “Community Development”

Who is online

Users browsing this forum: No registered users and 2 guests