# Editing compression settings via script

**URL:** <https://qa.fmod.com/t/editing-compression-settings-via-script/21399>\
**Category:** FMOD Studio\
**Created:** [March 22, 2024, 10:20pm UTC](https://qa.fmod.com/t/editing-compression-settings-via-script/21399 "2024-03-22T22:20:08Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![thatgamecompany](https://avatars.discourse-cdn.com/v4/letter/t/c6cbf5/32.png) [@thatgamecompany](https://qa.fmod.com/u/thatgamecompany)\
**Post date:** [March 22, 2024, 10:20pm UTC](https://qa.fmod.com/t/editing-compression-settings-via-script/21399/1 "2024-03-22T22:20:08Z")

</div>

Is there a way to script changing compression settings on individual waves via FmodScript?

---

<div class="post-metadata">

**Author:** ![Connor\_FMOD](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/connor_fmod/32/3685_2.png) [@Connor\_FMOD](https://qa.fmod.com/u/Connor_FMOD)\
**Post date:** [March 25, 2024, 1:39am UTC](https://qa.fmod.com/t/editing-compression-settings-via-script/21399/2 "2024-03-25T01:39:20Z")

</div>

Hi,

I create a script to attach a new Encoding Settings to a wav file

> **Studio Script**
>
> ```auto
> studio.menu.addMenuItem({
> name: "Custom Scripts\\Change Enccoding",
> execute: function() {
> var audioFilesArr = studio.window.browserSelection();
> var platform = studio.project.workspace.projectSettings.activePlatform;
> 
> if (audioFilesArr.lenth != 0)
> {
> if (audioFilesArr[0].isOfType("AudioFile"))
> {
> for (var i = 0; i < audioFilesArr.length; i++)
> {
> var encodingValue = studio.system.getNumber("Set Encoding Setting for: " + audioFilesArr[i].assetPath + " Options 0 - 3","0");
> var settings = studio.project.create("EncodingSetting");
> settings.platform = platform;
> settings.encodable = audioFilesArr[i];
> settings.encodingFormat = encodingValue;
> settings.dump()
> if (settings.isValid)
> {
> audioFilesArr[i].relationships.encodingSettings.add(settings)
> }
> }
> }
> else
> {
> alert("Please select audio file(s)");
> }
> }
> }
> })
> 
> ```

This will give you access to all the settings variables, which you can change as needed.

Let me know if this is the functionality you are looking for.

---

<div class="post-metadata">

**Author:** ![thatgamecompany](https://avatars.discourse-cdn.com/v4/letter/t/c6cbf5/32.png) [@thatgamecompany](https://qa.fmod.com/u/thatgamecompany)\
**Post date:** [March 27, 2024, 7:01pm UTC](https://qa.fmod.com/t/editing-compression-settings-via-script/21399/3 "2024-03-27T19:01:10Z")

</div>

Thanks! This is great 🙂 But if I already have an encoding setting for that audio file, this script creates another encoding settings xml and then I have two conflicting encoding settings for the same audio file in the Metadata/EncodingSetting folder. Is it possible to grab a previously existing setting for that audio file if it exists?

Edit: Oh maybe I need to iterate through the event’s relationships.encodingSettings.

---

<div class="post-metadata">

**Author:** ![thatgamecompany](https://avatars.discourse-cdn.com/v4/letter/t/c6cbf5/32.png) [@thatgamecompany](https://qa.fmod.com/u/thatgamecompany)\
**Post date:** [March 28, 2024, 4:18am UTC](https://qa.fmod.com/t/editing-compression-settings-via-script/21399/4 "2024-03-28T04:18:18Z")

</div>

Ok I was able to get what I needed by parsing through audioFile.relationships.encodingSettings.destinations and looking for the right platform. If I didn’t find the platform encoding settings I would create a new encoderSetting as you did, except I grab the defaults from platform.encodingSettings. I can look up specific waves using studio.project.lookup(“asset:/phoo.wav”) so I should now be able to batch up some sample rate changes!
