Update MidiRenderer to use TryNoteOn and TryNoteOff (#6106)

Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
This commit is contained in:
Hannah Giovanna Dawson
2025-08-06 00:02:15 +01:00
committed by GitHub
parent 641411288f
commit c3f4b9bd67

View File

@@ -544,14 +544,7 @@ internal sealed partial class MidiRenderer : IMidiRenderer
if (velocity <= 0)
continue;
try
{
_synth.NoteOn(channel, key, velocity);
}
catch (FluidSynthInteropException e)
{
_midiSawmill.Error($"CH:{channel} KEY:{key} VEL:{velocity} {e.ToStringBetter()}");
}
_synth.TryNoteOn(channel, key, velocity);
}
}
@@ -579,7 +572,7 @@ internal sealed partial class MidiRenderer : IMidiRenderer
{
case RobustMidiCommand.NoteOff:
_rendererState.NoteVelocities.AsSpan[midiEvent.Channel].AsSpan[midiEvent.Key] = 0;
_synth.NoteOff(midiEvent.Channel, midiEvent.Key);
_synth.TryNoteOff(midiEvent.Channel, midiEvent.Key);
break;
case RobustMidiCommand.NoteOn:
@@ -588,7 +581,7 @@ internal sealed partial class MidiRenderer : IMidiRenderer
if (velocity == 0)
{
_rendererState.NoteVelocities.AsSpan[midiEvent.Channel].AsSpan[midiEvent.Key] = 0;
_synth.NoteOn(midiEvent.Channel, midiEvent.Key, velocity);
_synth.TryNoteOn(midiEvent.Channel, midiEvent.Key, velocity);
break;
}
@@ -602,7 +595,7 @@ internal sealed partial class MidiRenderer : IMidiRenderer
velocity = VelocityOverride ?? velocity;
_rendererState.NoteVelocities.AsSpan[midiEvent.Channel].AsSpan[midiEvent.Key] = velocity;
_synth.NoteOn(midiEvent.Channel, midiEvent.Key, velocity);
_synth.TryNoteOn(midiEvent.Channel, midiEvent.Key, velocity);
break;
case RobustMidiCommand.AfterTouch: