Merge pull request #19 from antonisauren/tmj-master

Logarytmiczny fade sampli dzwiekow skladanych.
This commit is contained in:
tmj-fstate
2021-09-05 21:11:22 +02:00
committed by GitHub

View File

@@ -814,12 +814,15 @@ sound_source::update_crossfade( sound_handle const Chunk ) {
// chunks other than the first can have fadein
auto const fadeinwidth { chunkdata.threshold - chunkdata.fadein };
if( soundpoint < chunkdata.threshold ) {
m_properties.gain *=
float lineargain =
interpolate(
0.f, 1.f,
clamp(
( soundpoint - chunkdata.fadein ) / fadeinwidth,
0.f, 1.f ) );
m_properties.gain *=
lineargain /
(1 + (1 - lineargain) * (-0.57)); // approximation of logarytmic fade in
return;
}
}
@@ -831,12 +834,14 @@ sound_source::update_crossfade( sound_handle const Chunk ) {
auto const fadeoutwidth { chunkdata.fadeout - m_soundchunks[ chunkindex + 1 ].second.fadein };
auto const fadeoutstart { chunkdata.fadeout - fadeoutwidth };
if( soundpoint > fadeoutstart ) {
m_properties.gain *=
float lineargain =
interpolate(
1.f, 0.f,
0.f, 1.f,
clamp(
( soundpoint - fadeoutstart ) / fadeoutwidth,
0.f, 1.f ) );
m_properties.gain *= (-lineargain + 1) /
(1 + lineargain * (-0.57)); // approximation of logarytmic fade out
return;
}
}