Version 1.0.9

This commit is contained in:
Roland Rabien 2023-10-03 18:27:12 -07:00
commit 3ac3543a67
4 changed files with 33 additions and 3 deletions

View file

@ -4,7 +4,7 @@ cmake_minimum_required (VERSION 3.16.0 FATAL_ERROR)
# Set for each plugin
#
set (PLUGIN_NAME Wavetable)
set (PLUGIN_VERSION 1.0.8)
set (PLUGIN_VERSION 1.0.9)
set (BUNDLE_ID com.socalabs.wavetable)
set (AU_ID WavetableAU)
set (LV2_URI "https://socalabs.com/wavetable/")

View file

@ -1,3 +1,7 @@
1.0.9:
- Tweaked the way phase works with unison oscillators
1.0.8:
- Fixed loading custom Wavetables in second oscillator

@ -1 +1 @@
Subproject commit 38741aed5ba543ba7bac2ce41b025a3b96dc5d68
Subproject commit ef1b80ac128815eb18c6a309e95ddf4b044940cc

View file

@ -52,7 +52,33 @@ void WavetableVoice::noteStarted()
snapParams();
for (auto idx = 0; auto& osc : oscillators)
osc.noteOn (proc.oscParams[idx++].retrig->getBoolValue() ? 0.0f : proc.rng.nextFloat());
{
auto& params = proc.oscParams[idx++];
auto retrig = params.retrig->getBoolValue();
auto voices = params.voices->getUserValue();
if (voices == 1)
{
osc.noteOn (retrig ? 0.0f : proc.rng.nextFloat());
}
else if (retrig)
{
float phases[8] = { 0.0f };
for (auto i = 0; i < voices; i++)
phases[i] = 1.0f / voices * i;
osc.noteOn (phases);
}
else
{
float phases[8];
for (auto& p : phases)
p = proc.rng.nextFloat();
osc.noteOn (phases);
}
}
noise.noteOn();
sub.noteOn (proc.subParams.retrig->getBoolValue() ? 0.0f : proc.rng.nextFloat());