Advertisement
Guest User

FMOD Studio Script: Normalize All Events

a guest
Jan 31st, 2023
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 1.87 KB | Software | 0 0
  1. studio.menu.addMenuItem({ name: "Normalize All Events", execute: function normalizeAllEvents() {
  2.     const events = studio.project.model.Event.findInstances();                                      //Find all events, add to array.
  3.     const eventVolumes = [];                                                                        //Create empty array for Volumes.
  4.  
  5.     for (var i = 0; i < events.length; i++) {                                                       //For each event in project, add volume to volumes array.
  6.         eventVolumes.push(events[i].masterTrack.mixerGroup.volume);
  7.     }
  8.  
  9.     var maxVolEvent = indexOfMaximumValue(eventVolumes);                                            //Find the array index of the highest volume event.
  10.    
  11.     var volumeIncreaseAmount = difference(events[maxVolEvent].masterTrack.mixerGroup.volume, 0);    //Find difference between max volume event and 0db.
  12.  
  13.     for (var i = 0; i < events.length; i++) {                                                       //For each event in project, increment volume.
  14.         events[i].masterTrack.mixerGroup.volume += volumeIncreaseAmount;
  15.     }
  16.     alert("Normalized");
  17.     }
  18.     });
  19.  
  20. function difference(num1, num2) {                                                                   //Function to calculate difference between two numbers.
  21.     return Math.abs(num1 - num2);
  22. }
  23.  
  24. function indexOfMaximumValue(my_array) {                                                            //Function to find the index of highest value item in array.
  25.     if (my_array.length === 0) {
  26.         return -1;
  27.     }
  28.     else{
  29.       var maximumValue = my_array[0];
  30.       var maxIndex = 0;
  31.  
  32.       for (var i = 1; i < my_array.length; i++) {
  33.           if (my_array[i] > maximumValue) {
  34.               maxIndex = i;
  35.               maximumValue = my_array[i];
  36.           }
  37.       }
  38.       return maxIndex;
  39.     }
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement