'Spatialization'
i repeat this aint Atmos
This commit is contained in:
parent
691a592d8c
commit
acf66945c3
4 changed files with 57 additions and 2 deletions
1
index.js
1
index.js
|
@ -23,6 +23,7 @@ const configSchema = {
|
||||||
"quality": "990",
|
"quality": "990",
|
||||||
"seamless_audio": true,
|
"seamless_audio": true,
|
||||||
"normalization": false,
|
"normalization": false,
|
||||||
|
"spatial" : false,
|
||||||
},
|
},
|
||||||
"visual": {
|
"visual": {
|
||||||
"theme": "",
|
"theme": "",
|
||||||
|
|
|
@ -3,7 +3,8 @@ var CiderAudio = {
|
||||||
source : null,
|
source : null,
|
||||||
audioNodes : {
|
audioNodes : {
|
||||||
gainNode : null,
|
gainNode : null,
|
||||||
compressorNode : null,
|
spatialNode : null,
|
||||||
|
spatialInput: null,
|
||||||
},
|
},
|
||||||
init: function (cb = function () { }) {
|
init: function (cb = function () { }) {
|
||||||
//AudioOutputs.fInit = true;
|
//AudioOutputs.fInit = true;
|
||||||
|
@ -21,6 +22,7 @@ var CiderAudio = {
|
||||||
off: function(){
|
off: function(){
|
||||||
try{
|
try{
|
||||||
CiderAudio.audioNodes.gainNode.disconnect();
|
CiderAudio.audioNodes.gainNode.disconnect();
|
||||||
|
CiderAudio.audioNodes.spatialNode.disconnect();
|
||||||
CiderAudio.source.connect(CiderAudio.context.destination);} catch(e){}
|
CiderAudio.source.connect(CiderAudio.context.destination);} catch(e){}
|
||||||
},
|
},
|
||||||
connectContext: function (mediaElem){
|
connectContext: function (mediaElem){
|
||||||
|
@ -37,10 +39,44 @@ var CiderAudio = {
|
||||||
if(app.cfg.audio.normalization){
|
if(app.cfg.audio.normalization){
|
||||||
CiderAudio.normalizerOn()
|
CiderAudio.normalizerOn()
|
||||||
}
|
}
|
||||||
|
if (app.cfg.audio.spatial){
|
||||||
|
CiderAudio.spatialOn()
|
||||||
|
}
|
||||||
},
|
},
|
||||||
normalizerOn: function (){},
|
normalizerOn: function (){},
|
||||||
normalizerOff: function (){
|
normalizerOff: function (){
|
||||||
CiderAudio.audioNodes.gainNode.gain.setTargetAtTime(1, CiderAudio.context.currentTime+ 1, 0.5);
|
CiderAudio.audioNodes.gainNode.gain.setTargetAtTime(1, CiderAudio.context.currentTime+ 1, 0.5);
|
||||||
|
},
|
||||||
|
spatialOn: function (){
|
||||||
|
try{
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.context.destination);} catch(e){}
|
||||||
|
CiderAudio.audioNodes.spatialNode = new ResonanceAudio(CiderAudio.context);
|
||||||
|
CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.context.destination);
|
||||||
|
let roomDimensions = {
|
||||||
|
width: 5,
|
||||||
|
height: 6,
|
||||||
|
depth: 4,
|
||||||
|
};
|
||||||
|
let roomMaterials = {
|
||||||
|
// Room wall materials
|
||||||
|
left: 'acoustic-ceiling-tiles',
|
||||||
|
right: 'acoustic-ceiling-tiles',
|
||||||
|
front: 'glass-thin',
|
||||||
|
back: 'plywood-panel',
|
||||||
|
// Room floor
|
||||||
|
down: 'grass',
|
||||||
|
// Room ceiling
|
||||||
|
up: 'acoustic-ceiling-tiles',
|
||||||
|
};
|
||||||
|
CiderAudio.audioNodes.spatialNode.setRoomProperties(roomDimensions, roomMaterials);
|
||||||
|
CiderAudio.audioNodes.spatialInput = CiderAudio.audioNodes.spatialNode.createSource();
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
|
||||||
|
},
|
||||||
|
spatialOff: function (){
|
||||||
|
try{
|
||||||
|
CiderAudio.audioNodes.spatialNode.output.disconnect(CiderAudio.context.destination);
|
||||||
|
CiderAudio.audioNodes.gainNode.disconnect(CiderAudio.audioNodes.spatialInput.input);} catch(e){}
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.context.destination);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -594,6 +594,7 @@
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<script src="index.js?v=1"></script>
|
<script src="index.js?v=1"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/resonance-audio/build/resonance-audio.min.js"></script>
|
||||||
<script src="/audio/audio.js?v=1"></script>
|
<script src="/audio/audio.js?v=1"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
|
@ -27,7 +27,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-line">
|
<div class="md-option-line">
|
||||||
<div class="md-option-segment">
|
<div class="md-option-segment">
|
||||||
Enable AudioContext Functionality
|
Enable Advanced Functionality
|
||||||
<br>
|
<br>
|
||||||
<small>Enabling AudioContext functionality will allow for extended audio features like Audio Normalization , Equalizers and Visualizers, however on some systems this may cause stuttering in audio tracks.</small>
|
<small>Enabling AudioContext functionality will allow for extended audio features like Audio Normalization , Equalizers and Visualizers, however on some systems this may cause stuttering in audio tracks.</small>
|
||||||
</div>
|
</div>
|
||||||
|
@ -43,6 +43,16 @@
|
||||||
<input type="checkbox" v-model="app.cfg.audio.normalization" v-on:change="toggleNormalization" switch/>
|
<input type="checkbox" v-model="app.cfg.audio.normalization" v-on:change="toggleNormalization" switch/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext">
|
||||||
|
<div class="md-option-segment" >
|
||||||
|
Audio Spatialization
|
||||||
|
<br>
|
||||||
|
<small>Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)</small>
|
||||||
|
</div>
|
||||||
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
|
<input type="checkbox" v-model="app.cfg.audio.spatial" v-on:change="toggleSpatial" switch/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="md-option-header">
|
<div class="md-option-header">
|
||||||
<span>Visual</span>
|
<span>Visual</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -560,6 +570,8 @@
|
||||||
CiderAudio.init();
|
CiderAudio.init();
|
||||||
if (app.cfg.audio.normalization){
|
if (app.cfg.audio.normalization){
|
||||||
CiderAudio.normalizerOn()}
|
CiderAudio.normalizerOn()}
|
||||||
|
if (app.cfg.audio.spatial){
|
||||||
|
CiderAudio.spatialOn()}
|
||||||
} else {
|
} else {
|
||||||
CiderAudio.off();
|
CiderAudio.off();
|
||||||
}
|
}
|
||||||
|
@ -569,6 +581,11 @@
|
||||||
CiderAudio.normalizerOn()
|
CiderAudio.normalizerOn()
|
||||||
} else {CiderAudio.normalizerOff()}
|
} else {CiderAudio.normalizerOff()}
|
||||||
},
|
},
|
||||||
|
toggleSpatial : function(){
|
||||||
|
if (app.cfg.audio.spatial){
|
||||||
|
CiderAudio.spatialOn()
|
||||||
|
} else {CiderAudio.spatialOff()}
|
||||||
|
},
|
||||||
changeAudioQuality : function(){
|
changeAudioQuality : function(){
|
||||||
app.mk.bitrate = app.cfg.audio.quality
|
app.mk.bitrate = app.cfg.audio.quality
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue