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

Use CoreMidi4J devices when available. #6

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

brunchboy
Copy link

The standard Java MIDI device implementations on Mac OS do not (and
never have) supported System Exclusive messages. They also do not
properly support MIDI timestamps, even though the underlying CoreMIDI
implementation does, even over the network using RTP-MIDI.

This change embeds the CoreMidi4J library, which offers fixed versions
of the broken MIDI device implementations on Mac OS X, and remains
safely idle on other platforms. When CoreMidi4J is active, its versions
of MIDI device implementations are used instead of the broken ones.

The standard Java MIDI device implementations on Mac OS do not (and
never have) supported System Exclusive messages. They also do not
properly support MIDI timestamps, even though the underlying CoreMIDI
implementation does, even over the network using RTP-MIDI.

This change embeds the CoreMidi4J library, which offers fixed versions
of the broken MIDI device implementations on Mac OS X, and remains
safely idle on other platforms. When CoreMidi4J is active, its versions
of MIDI device implementations are used instead of the broken ones.
Now I remember why I originally implemented this using reflection!
CoreMidi4J can only load in Java 7 or later, while Clojure still
supports Java 6. So we want to let Overtone work the way it used to in
Java 6 environments, while using CoreMidi4J in vaguely recent ones.
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

Successfully merging this pull request may close these issues.

1 participant