Coder Social home page Coder Social logo

cotlsoundextract's Introduction

A guide on how to extract sound effects from Cult of the Lamb's FMOD soundbanks, with a script to automate the process!

Disclaimer: All of the content in COTL's FMOD soundbanks is copyrighted. I do not endorse using these sounds for anything that doesn't fall under fair use.

Cult of the Lamb uses FMOD for all of its music and sound effects. FMOD .fsb/.bank files are normally encrypted, but there are a few tools dedicated to to extracting sounds from them.

If you want to skip to the instructions on how to use the LambExtract.bat script to extract all sounds, click here!

About .Bank Files

All of Cult of the Lamb's sounds are stored in FMOD .bank files. Those are all encrypted.

I've tried a lot of the popular tools though, from python-fsb5 to fsbext, and none of them seem to work with Cult of the Lamb's FMOD files. They seem to work fine for other games, so I can only assume this must be a particularity of COTL's .bank files themselves.

Fortunately, VGMStream seems to work fine with COTL'S FMOD soundbanks! FMOD .bank files are a little quirky: Each bank file can contain any number of subsongs inside of it. VGMstream does a wonderful job of extracting each subsong separately, though sadly the task is extremely repetitive to do with VGMStream's CLI decoder, as you have to specify the index of a subsong in order to extract it individually (otherwise only the first subsong is extracted).

Because of this, I wrote a little Batch script that does all the work for you, extracting all the SFX from Cult of the Lamb's FMOD soundbanks separately as .wav files! Guidance on how to use the script (and a FAQ) are going to be below this.

Another alternative you have is to use VGMstream's Foobar2000 component. You will have to download Foobar2000 and follow the instructions on how to install the VGMSstream component for it, however. Though it isn't hard!

The Script

You can quickly extract all the sounds at once with the LambExtract.bat script, provided you're on Windows and you have Cult of the Lamb installed through Steam (though a non-Steam workaround is provided in the FAQ).

All you have to do to use the script is:

  1. Download the release package.
  2. Extract "COTLSoundExtract.zip" to its own folder.
  3. Run the LambExtract.bat script. Double-clicking on it should be enough.

And that's about it. All of the .wav files will be exported to a folder called "output" in the same directory as the script.

A small note: Extracting all of the sounds can take a few minutes. Be patient!

A few important notes about the script:

  1. My script intentionally skips over music files. This is done out of respect to the developers, as the game's music is currently purchasable on Steam.
  2. This script looks for the Steam installation path for Cult of the Lamb. If you don't have the game installed through Steam, this script will not find the music files. See the FAQ for guidance on how to set your own path.

If you find any issues with the script, please read the FAQ section.

FAQ

Q: "The script can't find the .bank files!" / "Cult of the Lamb is installed in a different path on my computer!"

A: You can manually change the path the script uses. To do so, all you have to do is open the script in any text editor (such as Notepad) and change the contents of line 12 from this:

call :ExtractMusic "%fullPath%" "%thisPath%"

To this:

call :ExtractMusic "InsertYourPathHere" "%thisPath%"

Where in place of InsertYourPathHere you should put the full path to the Cult of the Lamb\Cult Of The Lamb_Data\StreamingAssets folder, wherever that is on your computer.

Remember: Your path should be between the quotation marks!

Q: "I got an error that says the VGMStream folder couldn't be found!"

A: Please be sure you downloaded the proper package. The COTLSoundExtract.zip file should contain not only the LambExtract.bat script, but also the vgmstream-win folder, which the script needs.

Also: Do not move the LambExtract.bat script to another folder without moving the vgmstream-win folder alongside it. Again, the script needs that.

If you really want to have the script in a folder, just make a shortcut for it. (Though I don't see why you would.)

Credits

This project uses VGMStream to extract sounds from the FMOD soundbanks. VGMStream's license can be found here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.