diff --git a/src/looperclip.cxx b/src/looperclip.cxx index 9df455b..6d921f8 100644 --- a/src/looperclip.cxx +++ b/src/looperclip.cxx @@ -218,6 +218,14 @@ void LooperClip::bar() bool change = false; GridLogic::State s = GridLogic::STATE_EMPTY; + // first update the buffer, as time has passed + if ( _recording ) + { + // FIXME: assumes 4 beats in a bar + _buffer->setBeats( _buffer->getBeats() + 4 ); + _buffer->setAudioFrames( jack->getTimeManager()->getFpb() * _buffer->getBeats() ); + } + if ( _queuePlay && _loaded ) { _playing = true; @@ -260,13 +268,6 @@ void LooperClip::bar() change = true; } - if ( _recording ) - { - // FIXME: assumes 4 beats in a bar - _buffer->setBeats( _buffer->getBeats() + 4 ); - _buffer->setAudioFrames( jack->getTimeManager()->getFpb() * _buffer->getBeats() ); - } - if ( change ) { jack->getControllerUpdater()->setSceneState(track, scene, s );