Mixer, Pattern: fixed pattern freeze with MIDI-based instruments

When freezing patterns the freezer hung forever as it checked for any
running play handles in order to render echoes etc. after the last note.
However if there are MIDI-based instruments such as LB302, ZASF,
Sf2Player etc. there will always be play handles (InstrumentPlayHandles)
in the mixer's play handle array. Therefore explicitely check for
remaining NotePlayHandles when freezing pattern. Furthermore added a
counter variable for safety reasons so rendering note tails will never
exceed 2000 buffer periods.

Thanks to Mikobuntu for reporting this issue!

Closes #3109262.
This commit is contained in:
Tobias Doerffel
2012-01-29 13:04:08 +01:00
parent 60758172b0
commit e5bc77f4c3
3 changed files with 29 additions and 8 deletions

View File

@@ -240,10 +240,7 @@ public:
void removePlayHandles( track * _track );
inline bool hasPlayHandles() const
{
return !m_playHandles.empty();
}
bool hasNotePlayHandles();
// methods providing information for other classes