Skin Deep: Blendo Wav Tool


Skin Deep will be released April 30, 2025! Some wonderfully talented folks and I have been cooking up Skin Deep together for a while, and are thrilled people will be playing the game soon.

In the following weeks, I’ll be writing about the processes and development of Skin Deep.

Wishlist Skin Deep here!

To view all posts in this series, click here.


Blendo Wav Tool

Today I’ll be writing about the Blendo Wav Tool. Here’s what it looks like:

Skin Deep has a lot of sound effects, a lot of music, and full voice acting (VO). There’s a lot of audio. As a result of this increase in scale, it became challenging to manage this amount of assets – and so, I made this Blendo Wav Tool.

To set expectations: this is all very low-tech straightforward stuff. There’s nothing here that can’t be done with Regex or a Python script. But having a specific tool for our specific workflow was something hugely helpful.

If you think you can make use of this, the Blendo Wav Tool’s source code and binaries are available here.

Here’s the various contexts in which this tool was used.

Finding/Sorting

Finding/sorting was what the tool was mostly used for in day-to-day usage.

Let’s say you…

So: you want to find and open the audio asset. But you…

This was Blendo Wav Tool’s original purpose: to make it easy to find audio assets in the project. This is handled via these 2 search boxes:

The file list automatically filters itself to your search parameters. So as you type each letter, you’ll see the file list curate itself down shorter and shorter.

There is an additional feature here that makes searching easier:

Example:

In short: this allows you to type a few loose un-ordered fragments to quickly find the asset.

This is very un-fancy stuff, but combined with folder filter, results in being able to find anything in a few seconds. Your mileage may vary! But I get a crazy amount of usage out of this functionality, and would love to see this approach in more tools.

Credit where it’s due: using the space as an AND operator was part of how level design tools worked at Pandemic Studios, where I used to work as a designer. It was a good idea then and it’s a good idea now!

Tools

The Tools menu has various miscellaneous audio-related helpers.

Suffix duplicate check

Some audio assets have a 6-digit suffix. This tool does a check to see what assets share the same suffix number.

Vosk speech recognition

This does speech recognition to print what words are being said in VO files.

This ended up not really being used, as we ended up making a localization tool (that I’ll write about later) that served a similar purpose to this.

Compare wav files to scripts

This scans the game’s level scripting files and sees what audio assets are NOT being used. This was made to identify what audio assets we were and weren’t using.

Scan suffix numbers

This was to help us find filename suffix numbers that weren’t currently being used.

File differ

This tool allowed us to paste in a big list of filenames, and then compare this list to what files we actually currently have in the game. The use case was:

This tool allowed us to find:

Copy all files into a folder

Sometimes you want to filter the audio assets to a specific category, and then copy them into a separate folder (i.e. to send it off to an audio engineer, or to send to marketing folks, etc). This tool just copied the currently-filtered files into a separate folder.

Display Max Amplitudes

We had an issue where some audio files were very very very quiet. This tool just printed the maximum amplitudes of each audio asset, so we can identify assets that had this low-volume issue.

Detect silence (at file start)

This filters audio assets that have a period of silence at the beginning of the file. This was for audio asset bug-fixing.

Detect silence (at file end)

This filters audio assets that have a period of silence at the end of the file. This was for audio asset bug-fixing.


File drag

Additionally, dragging .wav files into the window will attempt to copy and overwrite existing project .wav files with the new ones.

The use case is if you receive updated/revised audio assets, this is a quick way to instantly plug these assets into the game without having to manually drill into various folders.


Nuts and Bolts

Blendo Wav Tool was made with Winforms. It was written in C# with Visual Studio 2015.

Libraries used include:

If you think any of this is useful, please feel free to adapt it to your own project. The Blendo Wav Tool is available here:


Et al

As I said above, this is all low-tech stuff. Sometimes that’s all you need.

It takes time to make tools, but I believe that time spent automating a little thing is time well-spent. Any time a process requires a lot of fiddly time-consuming error-prone bits that can be automated, my brain slightly melts and I think “why am I doing this???”

Tools… they’re good!

This page is based on the Journal theme by Damien Caselli.