Add impulse response stuff

This commit is contained in:
2021-11-05 18:15:07 +01:00
parent 7d24304b46
commit db78cae144
13 changed files with 74 additions and 2 deletions

View File

@@ -4,7 +4,6 @@ import Resonator from '../framework/resonator';
export default class Sound {
constructor() {
this.res = new Resonator();
this.res.setEnvironmentImpulse(`assets/Greek7EchoHall.wav`);
this.ambience = null;
this.music = null;
this.previousAmbience = null;
@@ -15,4 +14,34 @@ export default class Sound {
const sound = this.res.loadImmediate(file);
sound.play();
}
async setAmbience(file) {
if (this.ambience) {
this.previousAmbience = this.ambience;
this.ambience = null;
setTimeout(() => this.previousAmbience.fadeOut(6), 1500);
// setTimeout(() => this.previousAmbience.destroy(), 6000);
}
if (!file) return;
this.ambience = this.res.stream(file, 0);
this.ambience.play();
this.ambience.loop(true);
this.ambience.fadeIn(3);
}
setMusic(file) {
if (this.music) {
this.previousMusic = this.music;
setTimeout(() => this.previousMusic.fadeOut(2), 500);
setTimeout(() => this.previousMusic.destroy(), 2000);
}
if (!file) return;
this.music = this.res.stream(file, 1);
this.music.play();
this.music.fadeIn(2);
}
setImpulse(file) {
this.res.setEnvironmentImpulse(file);
}
}