gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

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:
Msource/jucePlugin/PluginProcessor.cpp | 8+++++---
Msource/synthLib/plugin.cpp | 3+++
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)