Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- studio.menu.addMenuItem({ name: "Normalize All Events", execute: function normalizeAllEvents() {
- const events = studio.project.model.Event.findInstances(); //Find all events, add to array.
- const eventVolumes = []; //Create empty array for Volumes.
- for (var i = 0; i < events.length; i++) { //For each event in project, add volume to volumes array.
- eventVolumes.push(events[i].masterTrack.mixerGroup.volume);
- }
- var maxVolEvent = indexOfMaximumValue(eventVolumes); //Find the array index of the highest volume event.
- var volumeIncreaseAmount = difference(events[maxVolEvent].masterTrack.mixerGroup.volume, 0); //Find difference between max volume event and 0db.
- for (var i = 0; i < events.length; i++) { //For each event in project, increment volume.
- events[i].masterTrack.mixerGroup.volume += volumeIncreaseAmount;
- }
- alert("Normalized");
- }
- });
- function difference(num1, num2) { //Function to calculate difference between two numbers.
- return Math.abs(num1 - num2);
- }
- function indexOfMaximumValue(my_array) { //Function to find the index of highest value item in array.
- if (my_array.length === 0) {
- return -1;
- }
- else{
- var maximumValue = my_array[0];
- var maxIndex = 0;
- for (var i = 1; i < my_array.length; i++) {
- if (my_array[i] > maximumValue) {
- maxIndex = i;
- maximumValue = my_array[i];
- }
- }
- return maxIndex;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement