You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
3.4 KiB
Plaintext

-Version 008
Changes:
-Remove register/unregister dispose to be compatible with Processing 3.0
-Version 007
Changes:
-Added constructors to MidiBus which allow parent as Object, for use outside of Processing
-Simplify constructors
-Stop using deprecated methods from processing 1.0, switch to new processing 2.0 methods
-Introduce new class called Note and ControlChange
-Provide an object oriented interface using Note and ControlChange both via processing (PApplet) and with callbacks with listeners
-Allow sending timestamps to be disabled so MMJ can be used
-Attempted to improve startup speed
-Version 005
Changes:
-Added library.properties for Processing 2.0
-Added permanent URL for latest version http://www.smallbutdigital.com/releases/themidibus/themidibus-latest.zip and library.properties file http://www.smallbutdigital.com/releases/themidibus/themidibus-latest.txt
Bug Fixes:
-Fixed two small issues in sendMessage(byte[] data) which made the method mostly useless before.
Notable Bug Fixes:
-Fixed uninitialized listeners vector.
-Fixed available/unavailable devices detection: version 003 would sometimes list unavailable devices as available.
-Fixed exceptional cases which threw NullPointer exceptions.
-Added try-catch statements to catch some unusual exception from MMJ mac MIDI subsystem
-Implemented workaround for MMJ malloc problems when closing devices.
Changes:
-New devices indexing system:
-Version 3 used mixed indicies for inputs and outputs, eg:
Available Midi Devices:
-----------------------
[0] "IAC Driver - Bus 1" [Input]
[1] "IAC Driver - Bus 1" [Output]
[2] "Real Time Sequencer" [Input/Output]
[3] "Java Sound Synthesizer" [Output]
-Version 4 now uses separate indicies for inputs and outputs, eg:
Available MIDI Devices:
----------Input----------
[0] "IAC Driver - Bus 1"
[1] "Real Time Sequencer"
----------Output----------
[0] "IAC Driver - Bus 1"
[1] "Real Time Sequencer"
[2] "Java Sound Synthesizer"
-The static method list() has been changed as per the new indexing system (and will also show unavailable devices)
-The static method returnList() has been replaced by the static methods availableInputs() and availableOutputs()
New Features:
-Added overrides to Object methods for clone(), equals(Object obj), hashCode() and toString()
-Added attachedInputs() and attachedOutputs() methods. Theses methods return an array of the inputs/output currently attached to a given instance of the MidiBus object.
-Added removeInput(int device_num), removeInput(String device_name), removeOutput(int device_num) and removeOutput(String device_name). Theses methods allow the selective removal of attached inputs and outputs.
-Added static method unavailableDevices() which lists any devices that are detected but appear to be unavailable. (As per bug fix)
-Added new overloads to sendMessage():
-sendMessage(byte[] data). Attempts to send an arbitrary array of bytes as a MIDI message. This method supports System Exclusive messages and Meta Messages, including messages with more than 2 data bytes.
-sendMessage(MidiMessage message). Attempts to send a MidiMessage object.
-sendMessage(int status). Attempts to send a message with only a status byte.
-sendMessage(int status, int data). Attempts to send a message with only a status byte and one data byte.