How can I programmatically get a list of all keys in the master bank audio table?

The reason I need to do this is to implement custom multi sounds.

I am working on a game which features a time-rewind mechanic (think Braid), and we wanted to be able to have sounds that can be dynamically played in reverse and at a variable speed. This was not supported by the FMOD Studio front-end, so we’ve written a low-level implementation of FMOD in C# to handle this.

I’ve organized our sounds into folders, so the keys look like this:

If I can get the list of keys I can implement multi sounds without re-writing the database myself and ending up with a tonne of boiler-plate code that I have to revisit every time I want to add some sounds.

It might be possible to implement rewindable sounds in a way that would let us keep nice front-end features like multi sounds, but my co-worker has already implemented things this way, so (thanks for reading but) please don’t answer with “Why do you want to do it this way?”

Making things go backwards is hard, that’s why. I got deadlines man. The wolves are at ol’ Gils’ door.

There isn’t a way to get the Audio Table keys directly out of a bank.
However you are able to change and store keys in a keys.txt file:

You could then use that to read from the file and create a list of keys in game.