Skip to content
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

MIDI 2.0 support #26

Open
atsushieno opened this issue Jul 17, 2021 · 2 comments
Open

MIDI 2.0 support #26

atsushieno opened this issue Jul 17, 2021 · 2 comments

Comments

@atsushieno
Copy link
Owner

There is an ongoing MIDI 2.0 implementation in FluidsynthMidiReceiver. At this state, it can successfully switches to MIDI 2.0 protocol if it received MIDI-CI "Set New Protocol" message (ignoring destination specification etc.), parses UMPs and invokes fluidsynth functions.

It stops there because fluidsynth itself does not support MIDI 2.0 yet; its functions API is changed to accept 32-bit values etc., but the internal processing, including argument value range check, is still based on 7-bit. It needs the actual implementation.

@atsushieno
Copy link
Owner Author

atsushieno commented Jul 18, 2021

It has preliminary support for MIDI2 now. It's using my midi2 branch in my own fluidsynth-fork.

(It's not ready to get merged into master, even not for PR yet as their development policy does not match with my hack yet FluidSynth/fluidsynth#625)

@atsushieno
Copy link
Owner Author

Notes on what to implement:

noteon2: there is room for enhancing MIDI 2 note on feature (16-bit velocity, pitch 7.9 etc.). No room for SF2 generator per velocity (fixed to 0..127).

cc: it seemed simple, but not really. There are many relevant public functions that return 7-bit values, and especially when they are tied to internals such as omni mode, and modulators that are tied to SF2 format 2.0, things get quite complicated. It is probably better to leave it 7-bit only.

PAf, CAf: most likely irrelevant in fluidsynth.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant