mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-05-07 05:30:06 +02:00
133 lines
No EOL
3.9 KiB
JavaScript
133 lines
No EOL
3.9 KiB
JavaScript
//
|
||
// largeHall.js
|
||
// examples
|
||
//
|
||
// Created by Freidrica on 4/1/16.
|
||
// Copyright 2016 High Fidelity, Inc.
|
||
//
|
||
// This entity script invokes reverb upon entering an entity acting as a trigger zone
|
||
|
||
//
|
||
// Distributed under the Apache License, Version 2.0.
|
||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||
//
|
||
(function() {
|
||
var _this = this;
|
||
|
||
Script.include("http://public.highfidelity.io/scripts/utilities/tools/cookies.js");
|
||
print("EBL PRELOADING NEW VERSION ")
|
||
var audioOptions = new AudioEffectOptions({
|
||
bandwidth: 7000,
|
||
preDelay: 80,
|
||
lateDelay: 0,
|
||
reverbTime: 3,
|
||
earlyDiffusion: 100,
|
||
lateDiffusion: 100,
|
||
roomSize: 50,
|
||
density: 100,
|
||
bassMult: 1.5,
|
||
bassFreq: 250,
|
||
highGain: -12,
|
||
highFreq: 3000,
|
||
modRate: 2.3,
|
||
modDepth: 50,
|
||
earlyGain: -12,
|
||
lateGain: -12,
|
||
earlyMixLeft: 20,
|
||
earlyMixRight: 20,
|
||
lateMixLeft: 90,
|
||
lateMixRight: 90,
|
||
wetDryMix: 90,
|
||
});
|
||
|
||
|
||
|
||
var panel = new Panel(10, 160);
|
||
|
||
var parameters = [
|
||
// { name: "bandwidth", min: 1000, max: 12000, units: " Hz" },
|
||
// { name: "preDelay", min: 0, max: 333, units: " ms" },
|
||
// { name: "lateDelay", min: 0, max: 166, units: " ms" },
|
||
// { name: "reverbTime", min: 0.1, max: 10, units: " seconds" },
|
||
// { name: "earlyDiffusion", min: 0, max: 100, units: " percent" },
|
||
// { name: "lateDiffusion", min: 0, max: 100, units: " percent" },
|
||
// { name: "roomSize", min: 0, max: 100, units: " percent" },
|
||
// { name: "density", min: 0, max: 100, units: " percent" },
|
||
// { name: "bassMult", min: 0.1, max: 4, units: " ratio" },
|
||
// { name: "bassFreq", min: 10, max: 500, units: " Hz" },
|
||
// { name: "highGain", min: -24, max: 0, units: " dB" },
|
||
// { name: "highFreq", min: 1000, max: 12000, units: " Hz" },
|
||
// { name: "modRate", min: 0.1, max: 10, units: " Hz" },
|
||
// { name: "modDepth", min: 0, max: 100, units: " percent" },
|
||
// { name: "earlyGain", min: -96, max: 24, units: " dB" },
|
||
// { name: "lateGain", min: -96, max: 24, units: " dB" },
|
||
// { name: "earlyMixLeft", min: 0, max: 100, units: " percent" },
|
||
// { name: "earlyMixRight", min: 0, max: 100, units: " percent" },
|
||
// { name: "lateMixLeft", min: 0, max: 100, units: " percent" },
|
||
// { name: "lateMixRight", min: 0, max: 100, units: " percent" },
|
||
// { name: "wetDryMix", min: 0, max: 100, units: " percent" },
|
||
]
|
||
|
||
|
||
function setter(name) {
|
||
return function(value) {
|
||
audioOptions[name] = value;
|
||
AudioDevice.setReverbOptions(audioOptions);
|
||
}
|
||
}
|
||
|
||
function getter(name) {
|
||
return function() {
|
||
return audioOptions[name];
|
||
}
|
||
}
|
||
|
||
function displayer(units) {
|
||
return function(value) {
|
||
return (value).toFixed(1) + units;
|
||
}
|
||
}
|
||
|
||
|
||
function scriptEnding() {
|
||
panel.destroy();
|
||
AudioDevice.setReverb(false);
|
||
print("Reverb is OFF.");
|
||
}
|
||
|
||
_this.enterEntity = function(entityID) {
|
||
print('EBL I am insiude');
|
||
// create a slider for each parameter
|
||
for (var i = 0; i < parameters.length; i++) {
|
||
var p = parameters[i];
|
||
panel.newSlider(p.name, p.min, p.max, setter(p.name), getter(p.name), displayer(p.units));
|
||
}
|
||
|
||
Controller.mouseMoveEvent.connect(function panelMouseMoveEvent(event) {
|
||
return panel.mouseMoveEvent(event);
|
||
});
|
||
Controller.mousePressEvent.connect(function panelMousePressEvent(event) {
|
||
return panel.mousePressEvent(event);
|
||
});
|
||
Controller.mouseReleaseEvent.connect(function(event) {
|
||
return panel.mouseReleaseEvent(event);
|
||
});
|
||
|
||
AudioDevice.setReverbOptions(audioOptions);
|
||
AudioDevice.setReverb(true);
|
||
print("Reverb is ON.");
|
||
|
||
|
||
// Messages.sendMessage('PlayBackOnAssignment', 'BowShootingGameWelcome');
|
||
};
|
||
|
||
_this.leaveEntity = function(entityID) {
|
||
print('EBL I am outsidee');
|
||
panel.destroy();
|
||
AudioDevice.setReverb(false);
|
||
print("Reverb is OFF.");
|
||
|
||
|
||
// Messages.sendMessage('PlayBackOnAssignment', 'BowShootingGameWelcome');
|
||
};
|
||
}); |