Releases: DerekCook/CoreMidi4J
Version 1.6
This release incorporates enhancements kindly contributed by @git-moss to support use on Apple Silicon (M1, arm64) Macs.
Please note that CoreMIDI4J is for Java 1.7 and above. The legacy Apple Java 1.6 is not supported, as Apple has retired it.
To install
🔧This is only needed if you want to use CoreMIDI4J with a project that doesn’t embed it.
- Ensure you have Java 7 or later.
- Download the coremidi4j jar file below.
- Place it on the class path of the project with which you want to use it.
If you want to make this version available to all Java processes running on your system, you can place the jar file in /Library/Java/Extensions
. You will need to authenticate as an administrator to make changes in that folder. This is not recommended unless you have a strong reason for doing it, because it can lead to version conflicts if you someday use a Java project which embeds a more recent version of CoreMidi4J.
❗If you had globally installed any older releases of CoreMIDI4J, you should remove them from
/Library/Java/Extensions
.
Version 1.5
This release incorporates fixes to two issues kindly reported by users.
Please note that CoreMIDI4J is for Java 1.7 and above. The legacy Apple Java 1.6 is not supported, as Apple has retired it.
To install
🔧This is only needed if you want to use CoreMIDI4J with a project that doesn’t embed it.
- Ensure you have Java 7 or later.
- Download the coremidi4j jar file below.
- Place it on the class path of the project with which you want to use it.
If you want to make this version available to all Java processes running on your system, you can place the jar file in /Library/Java/Extensions
. You will need to authenticate as an administrator to make changes in that folder. This is not recommended unless you have a strong reason for doing it, because it can lead to version conflicts if you someday use a Java project which embeds a more recent version of CoreMidi4J.
❗If you had globally installed any older releases of CoreMIDI4J, you should remove them from
/Library/Java/Extensions
.
Fixed
- It is now possible to send long SysEx payloads split across multiple messages using the Java convention of leaving out the trailing
0xF7
byte on all messages except the last, and introducing continuation messages with a first byte of0xF7
instead of the normal0xF0
. Thanks to @eclab for identifying this in Issue 37. - Synchronization is used to protect against non-thread-safe behavior by
MidiSystem.getMidiDeviceInfo()
when usingCoreMidiDeviceProvider.addNotificationListener()
on non-Mac platforms. (To be protected you must always use
CoreMidiDeviceProvider.getMidiDeviceInfo()
instead of the one provided byjavax.sound.midi.MidiSystem
.) Thanks to Mailüfterl s.r.o. for identifying this in Issue 38.
Version 1.4
This release incorporates a new feature for non-macOS platforms and several improvements to the build process.
Please note that CoreMIDI4J is for Java 1.7 and above. The legacy Apple Java 1.6 is not supported, as Apple has retired it.
To install
🔧This is only needed if you want to use CoreMIDI4J with a project that doesn’t embed it.
- Ensure you have Java 7 or later.
- Download the coremidi4j jar file below.
- Place it on the class path of the project with which you want to use it.
If you want to make this version available to all Java processes running on your system, you can place the jar file in /Library/Java/Extensions
. You will need to authenticate as an administrator to make changes in that folder. This is not recommended unless you have a strong reason for doing it, because it can lead to version conflicts if you someday use a Java project which embeds a more recent version of CoreMidi4J.
❗If you had globally installed any older releases of CoreMIDI4J, you should remove them from
/Library/Java/Extensions
.
Fixed
- The build would fail the first time, because a step that was required for the xcode build to find the JNI headers in the Java runtime was being performed by xcode itself, which was too late for the compile to detect it. But the build would succeed the second time, because the first attempt had set up the necessary link. This step is now performed by Maven itself before even invoking xcode, so it can work all in one attempt.
Added
- CoreMidi4J can now notify your project when the MIDI environment has changed on any platform, not just on macOS. If CoreMIDI is not available to generate these notifications and you ask for them, CoreMidi4J will create its own daemon thread to periodically examine the MIDI environment and generate notifications when it changes.
- Assigned a stable automatic module name so this project can safely be used as a dependency in modular Java projects.
- Updated the JavaDoc builder version so the API documentation would include a search field. Also updated other Maven build components.
- Added continuous deployment using GitHub Actions so that the library jar is automatically built and uploaded as a release artifact whenever code is pushed to the master branch on GitHub.
Version 1.3
This version incorporates fixes from @git-moss and @jeremybernstein, thanks!
Please note that CoreMIDI4J is for Java 1.7 and above. The legacy Apple Java 1.6 is not supported, as Apple has retired it.
To install
🔧This is only needed if you want to use CoreMIDI4J with a project that doesn’t embed it.
- Ensure you have Java 7 or later.
- Download the coremidi4j jar file below.
- Place it on the class path of the project with which you want to use it.
If you want to make this version available to all Java processes running on your system, you can place the jar file in /Library/Java/Extensions
. You will need to authenticate as an administrator to make changes in that folder. This is not recommended unless you have a strong reason for doing it, because it can lead to version conflicts if you someday use a Java project which embeds a more recent version of CoreMidi4J.
❗If you had globally installed any older releases of CoreMIDI4J, you should remove them from
/Library/Java/Extensions
.
Version 1.2
This version fixes an issue discovered by @iaguilera, thanks (see #29).
Please note that CoreMIDI4J is for Java 1.7 and above. The legacy Apple Java 1.6 is not supported, as Apple has retired it.
To install
🔧This is only needed if you want to use CoreMIDI4J with a project that doesn’t embed it.
- Ensure you have Java 7 or later.
- Download the coremidi4j jar file below.
- Place it on the class path of the project with which you want to use it.
If you want to make this version available to all Java processes running on your system, you can place the jar file in /Library/Java/Extensions
. You will need to authenticate as an administrator to make changes in that folder. This is not recommended unless you have a strong reason for doing it, because it can lead to version conflicts if you someday use a Java project which embeds a more recent version of CoreMidi4J.
❗If you had globally installed any older releases of CoreMIDI4J, you should remove them from
/Library/Java/Extensions
.
Version 1.1
This version fixes some interesting issues contributed by users (see #19, and #21—thanks @eclab and @odbuser2). MIDI Device Names will be different in this release and going forward, see this explanation.
Please note that CoreMIDI4J is for Oracle Java 1.7 and above. The legacy Apple Java 1.6 is not supported, as Apple are retiring it.
To install
🔧This is only needed if you want to use CoreMIDI4J with a project that doesn’t embed it.
- Ensure you have Java 7 or later.
- Download the coremidi4j jar file below.
- Place it on the class path of the project with which you want to use it.
If you want to make this version available to all Java processes running on your system, you can place the jar file in /Library/Java/Extensions
. You will need to authenticate as an administrator to make changes in that folder. This is not recommended unless you have a strong reason for doing it, because it can lead to version conflicts if you someday use a Java project which embeds a more recent version of CoreMidi4J.
❗If you had globally installed any older releases of CoreMIDI4J, you should remove them from
/Library/Java/Extensions
.
Version 1.0
This version fixes the only remaining known issues (see #9, and #10—thanks @mpsalisbury), and the library has been working well enough for long enough that it is time to call it version one.
Please note that CoreMIDI4J is for Oracle Java 1.7 and above. The legacy Apple Java 1.6 is not supported, as Apple are retiring it.
To install
🔧This is only needed if you want to use CoreMIDI4J with a project that doesn’t embed it.
- Ensure you have Java 7 or later.
- Download the coremidi4j jar file below.
- Place it on the class path of the project with which you want to use it.
If you want to make this version available to all Java processes running on your system, you can place the jar file in /Library/Java/Extensions
. You will need to authenticate as an administrator to make changes in that folder. This is not recommended unless you have a strong reason for doing it, because it can lead to version conflicts if you someday use a Java project which embeds a more recent version of CoreMidi4J.
❗If you had been using older releases of CoreMIDI4J, you should remove them from
/Library/Java/Extensions
.
Version 0.9
This minor release addresses adds a method to check the version of CoreMidi4J which is installed, and incorporates updates to underlying libraries.
Please note that CoreMIDI4J is for Oracle Java 1.7 and above. The legacy Apple Java 1.6 is not supported, as Apple are retiring it.
To install
🔧This is only needed if you want to use CoreMIDI4J with a project that doesn’t embed it.
- Ensure you have Java 7 or later.
- Download the coremidi4j jar file below.
- Place it on the class path of the project with which you want to use it.
If you want to make this version available to all Java processes running on your system, you can place the jar file in /Library/Java/Extensions
. You will need to authenticate as an administrator to make changes in that folder. This is not recommended unless you have a strong reason for doing it, because it can lead to version conflicts if you someday use a Java project which embeds a more recent version of CoreMidi4J.
❗If you had been using older releases of CoreMIDI4J, you should remove them from
/Library/Java/Extensions
.
Version 0.8
This minor release addresses some small inconsistencies in the API, fills in a few gaps in the documentation, and incorporates updates to underlying libraries.
Please note that CoreMIDI4J is for Oracle Java 1.7 and above. The legacy Apple Java 1.6 is not supported, as Apple are retiring it.
To install
🔧This is only needed if you want to use CoreMIDI4J with a project that doesn’t embed it.
- Ensure you have Java 7 or later.
- Download the coremidi4j jar file below.
- Place it on the class path of the project with which you want to use it.
If you want to make this version available to all Java processes running on your system, you can place the jar file in /Library/Java/Extensions
. You will need to authenticate as an administrator to make changes in that folder. This is not recommended unless you have a strong reason for doing it, because it can lead to version conflicts if you someday use a Java project which embeds a more recent version of CoreMidi4J.
If you had been using older releases of CoreMIDI4J, you should remove them from
/Library/Java/Extensions
.
Version 0.7
This release adds the ability to embed CoreMidi4J within another Java project so that end-users need not worry about installing anything, and improves a few user-visible error descriptions when Core MIDI devices are lacking descriptions or vendor information.
Please note that CoreMIDI4J is for Oracle Java 1.7 and above. The legacy Apple Java 1.6 is not supported, as Apple are retiring it.
To install
This is only necessary if you want to use CoreMIDI4J with a project that does not embed it.
- Ensure you have Java 7 or later.
- Download the coremidi4j jar file below.
- Place it on the class path of the project with which you want to use it.
If you want to make this version available to all Java processes running on your system, you can place the jar file in /Library/Java/Extensions
. You will need to authenticate as an administrator to make changes in that folder. This is not recommended unless you have a strong reason for doing it, because it can lead to version conflicts if you someday use a Java project which embeds a more recent version of CoreMidi4J.
If you had been using older releases of CoreMIDI4J, you should remove them from
/Library/Java/Extensions
.