mirror of
https://github.com/love2d/megasource.git
synced 2026-08-19 04:05:09 +02:00
update OpenAL-Soft to 1.24.3.
This commit is contained in:
@@ -122,10 +122,10 @@ void ModulatorState::update(const ContextBase *context, const EffectSlot *slot,
|
||||
* many iterations per sample.
|
||||
*/
|
||||
const float samplesPerCycle{props.Frequency > 0.0f
|
||||
? static_cast<float>(device->Frequency)/props.Frequency + 0.5f
|
||||
? static_cast<float>(device->mSampleRate)/props.Frequency + 0.5f
|
||||
: 1.0f};
|
||||
const uint range{static_cast<uint>(std::clamp(samplesPerCycle, 1.0f,
|
||||
static_cast<float>(device->Frequency)))};
|
||||
static_cast<float>(device->mSampleRate)))};
|
||||
mIndex = static_cast<uint>(uint64_t{mIndex} * range / mRange);
|
||||
mRange = range;
|
||||
|
||||
@@ -155,7 +155,7 @@ void ModulatorState::update(const ContextBase *context, const EffectSlot *slot,
|
||||
mSampleGen.emplace<SquareFunc>();
|
||||
}
|
||||
|
||||
float f0norm{props.HighPassCutoff / static_cast<float>(device->Frequency)};
|
||||
float f0norm{props.HighPassCutoff / static_cast<float>(device->mSampleRate)};
|
||||
f0norm = std::clamp(f0norm, 1.0f/512.0f, 0.49f);
|
||||
/* Bandwidth value is constant in octaves. */
|
||||
mChans[0].mFilter.setParamsFromBandwidth(BiquadType::HighPass, f0norm, 1.0f, 0.75f);
|
||||
@@ -198,14 +198,13 @@ void ModulatorState::process(const size_t samplesToDo, const al::span<const Floa
|
||||
auto chandata = mChans.begin();
|
||||
for(const auto &input : samplesIn)
|
||||
{
|
||||
const size_t outidx{chandata->mTargetChannel};
|
||||
if(outidx != InvalidChannelIndex)
|
||||
if(const size_t outidx{chandata->mTargetChannel}; outidx != InvalidChannelIndex)
|
||||
{
|
||||
chandata->mFilter.process({input.data(), samplesToDo}, mBuffer);
|
||||
chandata->mFilter.process(al::span{input}.first(samplesToDo), mBuffer);
|
||||
std::transform(mBuffer.cbegin(), mBuffer.cbegin()+samplesToDo, mModSamples.cbegin(),
|
||||
mBuffer.begin(), std::multiplies<>{});
|
||||
|
||||
MixSamples({mBuffer.data(), samplesToDo}, samplesOut[outidx].data(),
|
||||
MixSamples(al::span{mBuffer}.first(samplesToDo), samplesOut[outidx],
|
||||
chandata->mCurrentGain, chandata->mTargetGain, std::min(samplesToDo, 64_uz));
|
||||
}
|
||||
++chandata;
|
||||
|
||||
Reference in New Issue
Block a user