-
Notifications
You must be signed in to change notification settings - Fork 37
/
Copy pathCHANGELOG.txt
68 lines (58 loc) · 3.58 KB
/
CHANGELOG.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
-Version 009
Changes:
-Fix a NullPointer happening on boot in Processing 4 beta
-There is a known NullPointer when closing sketchesin Processing 4, but this appears to be a bug in Processing.
-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 https://www.smallbutdigital.com/releases/themidibus/themidibus-latest.zip and library.properties file https://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.