Adding Custom Audio - EverestAPI/Resources GitHub Wiki

Adding Custom Audio

Setting Yourself Up

You'll need:

  • FMOD Studio 1.10.* (Don't use FMOD Studio 2.*, as it is incompatible with Celeste and will break projects made in 1.*. Also note that despite them being labeled as unsupported you can still download these versions, and they should still work fine for you.). You will find it on the FMOD downloads page 🔗 (you need to create an account, but the program is free).
  • The Celeste FMOD project: you will also find it on the FMOD downloads page 🔗, in the Learning Resources section. Make sure to read the EULA.

FMOD Studio is compatible with WINE.

Important

Don't modify and share modified music, sfx, ui and master banks.

If you have any further questions regarding audio mods, ask for help in the #modding_help channel on the Discord server.

Audio Compression Options

This is a optional trivial setup that will reduce your filesizes for all future banks significantly.

  1. Open the Celeste FMOD project in FMOD Studio: fmodstudio20000celeste-project/FMOD Studio Celeste Project/celeste_audio.fspro.
  2. On the dropdown at the top, select Edit > Preferences.
  3. Click on Build, then on Desktop in the "Project Platform" section.
  4. Scroll down until you can see the "Quality" parameter. This should be at 80 by default, but changing it to 50 will reduce filesizes significantly. Build Preferences

Creating Banks

Here is a step-by-step guide to create a bank with music you have as sound files:

  1. Open the Celeste FMOD project in FMOD Studio: fmodstudio20000celeste-project/FMOD Studio Celeste Project/celeste_audio.fspro.
  2. On the left panel, switch to the Banks tab, and create a new bank for your mod. You need 1 bank per mod: if you have multiple tracks for the same mod, you can fit them all in one bank. Name it, for example, yournickname_mapname.

  1. Select File > Import Audio Files... then browse to your song. This brings up a new "Audio Bin" window. You'll want to right click on your song, then select "Create New Event":

image

Choose "2D Event", hit Create, then close the Audio Bin window.

  1. On the left panel, switch to the Events tab: you'll find your song there. Drag it into a directory with your nickname and rename it so that the name doesn't contain symbols / spaces / etc.

  2. Assign your song/sound to your bank:

image

  1. Re-route your new event to the right bus:

    • Open the mixer window.

    • Right-click your event and reroute the event to the mains group. Don't create a new group.

    • You can now close the mixer window.

  2. Add the fade parameter to your music:

    • Add the shared fade parameter by clicking the (+) tab.

    • Add automation to the master volume in the fade parameter tab.

    • Add two points at the 2 edges of the graph: -∞ dB to 0.00 dB

    • You now have a "fade" cursor on top of the screen, adjusting now will control the music volume. This is what music fade triggers use to adjust the music volume as well.

  3. Make your music loop:

    • Switch back to the Timeline tab, then right click the black logic track above your audio track, and select "Add Loop Region".

    • Extend the loop region to however you see fit.

  4. Right-click your bank and press Build. When this is done, you will find your bank in fmodstudio20000celeste-project/FMOD Studio Celeste Project/Build/Desktop.

    • Take only the .bank file that has the name of the bank you created earlier, for example yournickname_mapname.bank (don't take Master Bank.bank and other ones, those are the vanilla banks) and copy it to your mod's folder, in Mods/yourmod/Audio.
  5. Generate the GUIDs.txt:

Once generated, you'll find it in fmodstudio20000celeste-project/FMOD Studio Celeste Project/Build/GUIDs.txt. Copy it to your mod's folder, in Mods/yourmod/Audio and rename it to yourbankname.guids.txt:

  1. In Lönn, you can use your music by typing its event name manually. For example, if you have this in the Events tab:

You can use this in Lönn:

Type the path manually, it does not appear in the dropdown. That's normal!

Custom Sounds

The procedure to add custom sounds is similar to this, but sounds need to be redirected to another bus and you can skip the "make it loop" and "add a fade parameter" steps. For gameplay sounds, use the gameplay_sfx/game/general/yes_pause bus.

Overwriting Vanilla Events

If you would like to overwrite vanilla music/sounds, e.g. for use in a global skinmod:

  1. Go to the Event in the FMOD sidebar that you'd like to replace, right click on the Event name and select Move into New Folder (you can Ctrl+Click multiple events if they are in the same folder to save time). You can name the resulting folder in any way you like, but something like "vanilla backup" will help keep your project easier to understand for future reference.
  1. Right click the Event in that new folder you just created, select Copy, then paste into the exact same location that the Event was in originally. This is the most important part - the Event path must remain exactly the same in order for it to be overriden and your changes to appear in-game. So in my example, I've pasted the event dash_red_left back under the folder path char/madeline:
  1. Right click the newly pasted Event, select Assign to Bank and select the bank for your mod (see Step 2 of the above tutorial for creating new banks). This means you will not redistribute the entirety of the vanilla banks with your mod, which is probably violating some copyright laws and will save you from including well over 100mb of unnecessary data in your mod.
  1. You are now free to make whatever edits you like to the audio in this new Event. Once you're finished, follow Steps 9 and 10 above to build your mod's bank, export the GUIDs and add them to the Audio folder in your mod. If your mod is loaded by Everest and no other loaded mod tries to overwrite the same Event, you should now hear the changes in audio.

Warning

This process is only viable as of Everest version 3014, so be sure to set this as the minimum required version to install your mod in your everest.yaml. On versions below this, if two separate mods try to overwrite the same event, the game will crash.

⚠️ **GitHub.com Fallback** ⚠️