mirror of
https://codeberg.org/armin/wavetable.git
synced 2026-09-01 05:50:46 +02:00
Fix AU crash
This commit is contained in:
parent
ab200090d1
commit
a01455c18d
6 changed files with 35 additions and 5 deletions
|
|
@ -4,7 +4,7 @@ cmake_minimum_required (VERSION 3.24.0 FATAL_ERROR)
|
|||
# Set for each plugin
|
||||
#
|
||||
set (PLUGIN_NAME Wavetable)
|
||||
set (PLUGIN_VERSION 1.0.4)
|
||||
set (PLUGIN_VERSION 1.0.5)
|
||||
set (BUNDLE_ID com.socalabs.wavetable)
|
||||
set (AU_ID WavetableAU)
|
||||
set (LV2_URI "https://socalabs.com/wavetable/")
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
1.0.5:
|
||||
|
||||
- Fix AU crash
|
||||
|
||||
1.0.4:
|
||||
|
||||
- Allow mod matrix entries to be disabled
|
||||
|
|
|
|||
|
|
@ -143,9 +143,9 @@
|
|||
{ "id": "global", "x": "prevR()+1", "y": "prevY()", "w": 168, "h": 137, "children":
|
||||
[
|
||||
{ "id": "Mono", "x": 0, "y": 23, "w": 42, "h": 57 },
|
||||
{ "id": "Legato", "x": "prevR()", "y": "prevY()", "w": 42, "h": 57 },
|
||||
{ "id": "Glide", "x": "prevR()", "y": "prevY()", "w": 42, "h": 57 },
|
||||
{ "id": "Time", "x": "prevR()", "y": "prevY()", "w": 42, "h": 57 },
|
||||
{ "id": "Legato", "x": "prevR()", "y": "prevY()", "w": 42, "h": 57 },
|
||||
{ "id": "PB Range", "x": 0, "y": "prevB()", "w": 42, "h": 57 },
|
||||
{ "id": "Voices", "x": "prevR()", "y": "prevY()", "w": 42, "h": 57 },
|
||||
{ "id": "Level", "x": "prevR() + 42", "y": "prevY()", "w": 42, "h": 57 }
|
||||
|
|
|
|||
|
|
@ -533,14 +533,28 @@ public:
|
|||
|
||||
addControl (new gin::Knob (proc.globalParams.level));
|
||||
addControl (new gin::Select (proc.globalParams.glideMode));
|
||||
addControl (new gin::Knob (proc.globalParams.glideRate));
|
||||
addControl (rate = new gin::Knob (proc.globalParams.glideRate));
|
||||
addControl (new gin::Knob (proc.globalParams.voices));
|
||||
addControl (new gin::Switch (proc.globalParams.legato));
|
||||
addControl (legato = new gin::Switch (proc.globalParams.legato));
|
||||
addControl (new gin::Switch (proc.globalParams.mono));
|
||||
addControl (new gin::Knob (proc.globalParams.pitchBend));
|
||||
|
||||
watchParam (proc.globalParams.glideMode);
|
||||
paramChanged();
|
||||
}
|
||||
|
||||
void paramChanged() override
|
||||
{
|
||||
gin::ParamBox::paramChanged();
|
||||
|
||||
rate->setEnabled (proc.globalParams.glideMode->getUserValueInt() > 0);
|
||||
legato->setEnabled (proc.globalParams.glideMode->getUserValueInt() > 0);
|
||||
}
|
||||
|
||||
WavetableAudioProcessor& proc;
|
||||
|
||||
gin::Knob* rate;
|
||||
gin::Switch* legato;
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -747,6 +747,14 @@ void WavetableAudioProcessor::releaseResources()
|
|||
{
|
||||
}
|
||||
|
||||
bool WavetableAudioProcessor::isBusesLayoutSupported (const BusesLayout& layout) const
|
||||
{
|
||||
if (layout.inputBuses.size() != 0 || layout.outputBuses.size() != 1)
|
||||
return false;
|
||||
|
||||
return layout.outputBuses[0].size() == 2;
|
||||
}
|
||||
|
||||
void WavetableAudioProcessor::processBlock (juce::AudioBuffer<float>& buffer, juce::MidiBuffer& midi)
|
||||
{
|
||||
juce::ScopedNoDenormals noDenormals;
|
||||
|
|
@ -756,6 +764,9 @@ void WavetableAudioProcessor::processBlock (juce::AudioBuffer<float>& buffer, ju
|
|||
return;
|
||||
}
|
||||
|
||||
if (buffer.getNumChannels() != 2)
|
||||
return;
|
||||
|
||||
if (blockMissed || presetLoaded || lastMono != globalParams.mono->isOn())
|
||||
{
|
||||
blockMissed = presetLoaded = false;
|
||||
|
|
@ -802,7 +813,7 @@ void WavetableAudioProcessor::processBlock (juce::AudioBuffer<float>& buffer, ju
|
|||
|
||||
playHead = nullptr;
|
||||
|
||||
if (buffer.getNumSamples() <= scopeFifo.getFreeSpace())
|
||||
if (buffer.getNumSamples() <= scopeFifo.getFreeSpace() && buffer.getNumChannels() == scopeFifo.getNumChannels())
|
||||
scopeFifo.write (buffer);
|
||||
|
||||
endBlock (buffer.getNumSamples());
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ public:
|
|||
void reset() override;
|
||||
void prepareToPlay (double sampleRate, int samplesPerBlock) override;
|
||||
void releaseResources() override;
|
||||
bool isBusesLayoutSupported (const BusesLayout&) const override;
|
||||
|
||||
void processBlock (juce::AudioBuffer<float>&, juce::MidiBuffer&) override;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue