midi: fix playback of notes the start at playhead position (#9398/#9410)
The diskreader uses the route's monitoring state when deciding whether or not to fetch MIDI data for playback. Route::monitoring_state() would determine whether or not we were already rolling to affect its return value. However, using Session::transport_rolling() is affected by pre-roll and consequently returns the wrong value during transport startup. Instead, we now use ::transport_state_rolling() which ignores preroll conditions. This leads to the DR actually reading MIDI data from the initial playback position, which fixes this issue. Note that the bug only occured if the track or the session was rec-enabled. The monitoring state value was always correct for non-rec-enabled conditions.
This commit is contained in:
parent
920a6a46c3
commit
3b1d4d8fa6
@ -6273,7 +6273,7 @@ Route::monitoring_state () const
|
||||
* I don't think it's ever going to be too pretty too look at.
|
||||
*/
|
||||
|
||||
bool const roll = _session.transport_rolling ();
|
||||
bool const roll = _session.transport_state_rolling ();
|
||||
bool const auto_input = _session.config.get_auto_input ();
|
||||
bool const track_rec = _disk_writer->record_enabled ();
|
||||
bool session_rec;
|
||||
|
Loading…
Reference in New Issue
Block a user