diff --git a/MIDIModificationFramework b/MIDIModificationFramework index 2d966bd..de0b6fe 160000 --- a/MIDIModificationFramework +++ b/MIDIModificationFramework @@ -1 +1 @@ -Subproject commit 2d966bdfb03d5ebf53e4ddd04a13b0203b03f080 +Subproject commit de0b6fe3835612838d815b86263c4b06abce8a5c diff --git a/OmniConverter/Directory.Build.props b/OmniConverter/Directory.Build.props index fe625ad..9774105 100644 --- a/OmniConverter/Directory.Build.props +++ b/OmniConverter/Directory.Build.props @@ -1,5 +1,5 @@ - 1.0.0.37 + 1.0.0.51 \ No newline at end of file diff --git a/OmniConverter/Extensions/Audio/Renderers/BASSRenderer.cs b/OmniConverter/Extensions/Audio/Renderers/BASSRenderer.cs index 056501b..24bd70c 100644 --- a/OmniConverter/Extensions/Audio/Renderers/BASSRenderer.cs +++ b/OmniConverter/Extensions/Audio/Renderers/BASSRenderer.cs @@ -296,7 +296,7 @@ public override bool SendCustomFXEvents(int channel, short reverb, short chorus) public override void SendEvent(byte[] data) { var status = data[0]; - var param1 = data[1]; + var param1 = data.Length >= 2 ? data[1] : 0; var param2 = data.Length >= 3 ? data[2] : 0; int eventParams; @@ -307,14 +307,17 @@ public override void SendEvent(byte[] data) case MIDIEventType.NoteOn: if (reference.CachedSettings.Event.FilterVelocity && param2 >= reference.CachedSettings.Event.VelocityLow && param2 <= reference.CachedSettings.Event.VelocityHigh) return; + if (reference.CachedSettings.Event.FilterKey && (param1 < reference.CachedSettings.Event.KeyLow || param1 > reference.CachedSettings.Event.KeyHigh)) return; + eventParams = param2 << 8 | param1; break; case MIDIEventType.NoteOff: if (reference.CachedSettings.Event.FilterKey && (param1 < reference.CachedSettings.Event.KeyLow || param1 > reference.CachedSettings.Event.KeyHigh)) return; + eventParams = param1; break; @@ -339,7 +342,7 @@ public override void SendEvent(byte[] data) break; default: - BassMidi.StreamEvents(Handle, MidiEventsMode.Raw, data, data.Length); + BassMidi.StreamEvents(Handle, MidiEventsMode.Raw | MidiEventsMode.NoRunningStatus, data, data.Length); return; } diff --git a/OmniConverter/Extensions/Audio/Renderers/FluidSynthRenderer.cs b/OmniConverter/Extensions/Audio/Renderers/FluidSynthRenderer.cs index 90e64a6..599943e 100644 --- a/OmniConverter/Extensions/Audio/Renderers/FluidSynthRenderer.cs +++ b/OmniConverter/Extensions/Audio/Renderers/FluidSynthRenderer.cs @@ -223,22 +223,21 @@ public override void SendEvent(byte[] data) { case MIDIEventType.SystemMessageStart: { - string sysexbuf = string.Empty; + byte[] refactor = new byte[data.Length - 2]; + byte[] dummy = new byte[refactor.Length]; - foreach (byte ch in data) - sysexbuf += $"{ch:X}"; - - try - { - if (handle.Sysex(data, null, false)) - Debug.PrintToConsole(Debug.LogType.Message, $"SysEx parsed! >> {sysexbuf}"); - } - catch + for (int i = 1; i < data.Length - 1; i++) + refactor[i - 1] = data[i]; + + if (!handle.Sysex(refactor, 0, refactor.Length, dummy, 0, dummy.Length)) { + string sysexbuf = string.Empty; + + foreach (byte ch in refactor) + sysexbuf += $"{ch:X}"; Debug.PrintToConsole(Debug.LogType.Error, $"Invalid SysEx! >> {sysexbuf}"); } - } return; diff --git a/OmniConverter/Extensions/MIDI/MIDI.cs b/OmniConverter/Extensions/MIDI/MIDI.cs index 91f8ae3..8fae257 100644 --- a/OmniConverter/Extensions/MIDI/MIDI.cs +++ b/OmniConverter/Extensions/MIDI/MIDI.cs @@ -165,6 +165,7 @@ public static List> GetMetaEvents(IEnumerable - + diff --git a/OmniConverter/Forms/SettingsWindow.axaml.cs b/OmniConverter/Forms/SettingsWindow.axaml.cs index 7678daa..fcf357b 100644 --- a/OmniConverter/Forms/SettingsWindow.axaml.cs +++ b/OmniConverter/Forms/SettingsWindow.axaml.cs @@ -194,6 +194,7 @@ private void AudioRendererChanged(object? sender, SelectionChangedEventArgs e) switch ((EngineID)SelectedRenderer.SelectedIndex) { case EngineID.BASS: + case EngineID.FluidSynth: BASS_MaxVoices.Value = Program.Settings.Synth.MaxVoices; BASSSettingsPanel.IsVisible = true; diff --git a/nfluidsynth b/nfluidsynth index 6a5835b..0bc2a56 160000 --- a/nfluidsynth +++ b/nfluidsynth @@ -1 +1 @@ -Subproject commit 6a5835bd1afdc14f8f2def051d8250e6e755cd1f +Subproject commit 0bc2a56ee063d0155c3c2ec1d252df27823f778d