Batch resize to contents length...

For some reason a bunch of events have defaulted to 1 minute in length on the timeline. These events (Multi-sounds) are actually only between 1 and 6 seconds long… Will they register in game as 1 minute long audio files?

If so, is there a way to multi select events and “resize to contents length”?

Cheers,

Oli

Hi Oli,

That is rather strange, it’s certainly not behaviour we have seen in house.

When you say the events are defaulting to 1 minute long, are you referring to being zoomed out to see 1 minute worth of the timeline, or have your multi-sounds been extended to 1 minute?

Events will “finish” when there is no more sound being output. So if your multi-sound stops outputting audio, the event will be considered “finished”. If there is a reverb tail or a delay effect anywhere in the event, it will keep it alive until it has finished.

The length of an event isn’t dependent on how long the timeline appears in the event view, nor are they “baked out”. The length of an event’s timeline depends on the audio assets, sound modules, and effects used.

Also, it is not possible to bulk edit events the way you described. “Resize to Contents Length” only works on valid sound modules.

Could you provide a screenshot of an affected event for me to see?

Thanks,
Richard

1 Like

Would it be possible to create a script to bulk resize to contents length? The multi-sounds have been extended to 1 minute on import and it is affecting playback in-game… Otherwise I am going to have to go through and manually resize hundreds of multi-sounds.

Hi Oliver,

Yes, you can use scripting to batch resize multi-sounds on different events. Here is a quick example made on the assumption your events only have one track that contain one multi-sound:

/* -------------------------------------------
   FMOD Studio Script Example:
   Batch Resize
   -------------------------------------------
 */

var multiSoundSounds;
var longestSound;
var currentEvents

studio.menu.addMenuItem({
    name: "Bulk Resize",
    
    // Check that the current selection is an Event
    isEnabled: function() { return studio.window.browserCurrent().isOfType("Event"); },
    
    execute: function() {
        // Place all selected events into an array
        currentEvents = studio.window.browserSelection();
        
        for (var i = 0; i < currentEvents.length; i++) {
            
            // Ensure working on Events and not folders in selection
            if (currentEvents[i].isOfType("Event")) {
                // Put all assets in the multi sound into an array and find the longest one
                multiSoundSounds = currentEvents[i].groupTracks[0].modules[0].sounds;
                longestSound = multiSoundSounds.sort(function (a, b) { return b.length - a.length; })[0];

                // Resize the multi sound to the longest asset
                currentEvents[i].groupTracks[0].modules[0].length = longestSound.length;
            }

        }
    }
});

.

You need to place this script as a Javascript (.js) file in “%localappdata%/FMOD Studio/Scripts” on Windows, or “~/Library/Application Support/FMOD Studio/Scripts” on Mac OS.

Let me know if you need more information.

Thanks,
Richard

1 Like