diff --git a/src/tracks/InstrumentTrack.cpp b/src/tracks/InstrumentTrack.cpp index 71cc43fb56e..48a1e4f1e06 100644 --- a/src/tracks/InstrumentTrack.cpp +++ b/src/tracks/InstrumentTrack.cpp @@ -157,7 +157,8 @@ InstrumentTrack::~InstrumentTrack() void InstrumentTrack::processAudioBuffer( sampleFrame* buf, const fpp_t frames, NotePlayHandle* n ) { // we must not play the sound if this InstrumentTrack is muted... - if( isMuted() || ( n && n->isBbTrackMuted() ) || ! m_instrument ) + if( isMuted() || ( Engine::getSong()->playMode() != Song::Mode_PlayPattern && + n && n->isBbTrackMuted() ) || ! m_instrument ) { return; } @@ -586,7 +587,10 @@ bool InstrumentTrack::play( const MidiTime & _start, const fpp_t _frames, { TrackContentObject * tco = getTCO( _tco_num ); tcos.push_back( tco ); - bb_track = BBTrack::findBBTrack( _tco_num ); + if (trackContainer() == (TrackContainer*)Engine::getBBTrackContainer()) + { + bb_track = BBTrack::findBBTrack( _tco_num ); + } } else { diff --git a/src/tracks/SampleTrack.cpp b/src/tracks/SampleTrack.cpp index 0dd491c64d5..3c16025a540 100644 --- a/src/tracks/SampleTrack.cpp +++ b/src/tracks/SampleTrack.cpp @@ -587,7 +587,10 @@ bool SampleTrack::play( const MidiTime & _start, const fpp_t _frames, return false; } tcos.push_back( getTCO( _tco_num ) ); - bb_track = BBTrack::findBBTrack( _tco_num ); + if (trackContainer() == (TrackContainer*)Engine::getBBTrackContainer()) + { + bb_track = BBTrack::findBBTrack( _tco_num ); + } } else {