New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix: Various reliability and correctness improvements to MIDI on Windows #7620
Conversation
@@ -35,14 +35,14 @@ static struct { | |||
CRITICAL_SECTION lock; ///< synchronization for playback status fields | |||
|
|||
bool playing; ///< flag indicating that playback is active | |||
bool do_start; ///< flag for starting playback of next_file at next opportunity | |||
int do_start; ///< flag for starting playback of next_file at next opportunity |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
could be an enum?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The members would be StartStep1, StartStep2, StartStep3, etc., I don't see a way to make a meaningful enum of this.
Ideally MidiFile would scan for various different init sequences in a file, and if a known sequence is found then leave it, otherwise prepend an init sequence (GM reset + reverb settings) to the data so the driver doesn't need to do anything difficult. I have more plans for improving music support (also past MIDI) and this idea is probably better left for then.
I probably should try to split this into multiple commits.
The last point is tested on a Roland and a Yamaha synth, both behave as expected.
Should fix #7438 (by resetting correctly between tracks)