commit 0acc73fdd324c0c3dfaa2a7afd0f0a8e55d9af01
parent 48ab01247425f8997a4947db208d6add0888b157
Author: dsp56300 <lyve2909+githubdsp56300@gmail.com>
Date: Wed, 14 Jul 2021 01:27:54 +0200
fix crash if DAW/standalone host does not provide song position info
Diffstat:
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/source/jucePlugin/PluginProcessor.cpp b/source/jucePlugin/PluginProcessor.cpp
@@ -190,9 +190,11 @@ void AudioPluginAudioProcessor::processBlock (juce::AudioBuffer<float>& buffer,
midiMessages.clear();
- juce::AudioPlayHead::CurrentPositionInfo pos;
-
- getPlayHead()->getCurrentPosition(pos);
+ juce::AudioPlayHead::CurrentPositionInfo pos{0};
+
+ auto* playHead = getPlayHead();
+ if(playHead)
+ playHead->getCurrentPosition(pos);
m_plugin.process(inputs, outputs, buffer.getNumSamples(), static_cast<float>(pos.bpm), static_cast<float>(pos.ppqPosition), pos.isPlaying);
diff --git a/source/synthLib/plugin.cpp b/source/synthLib/plugin.cpp
@@ -98,6 +98,9 @@ namespace synthLib
void Plugin::processMidiClock(float _bpm, float _ppqPos, bool _isPlaying, size_t _sampleCount)
{
+ if(_bpm < 1.0f)
+ return;
+
auto needsStart = false;
if(_isPlaying && !m_isPlaying)