Releases: orchetect/MIDIKit
Releases · orchetect/MIDIKit
0.5.0
Incremental API Changes
Some API changes and namespace adjustments have been made to improve logical organization in the library. Also, some quality-of-life improvements come from simplified unique ID handling.
MIDI.IO.UniqueID
is now a unified globalInt32
typealias which vastly simplifies dealing with / storing endpoint IDsMIDI.Event
: All event types that reference MIDI note numbers now useMIDI.Note
struct instead of raw numberMIDI.Note
: Added note namestyle
(Yamaha, Roland, Cakewalk) to determine octave numbering in note name strings- Misc internal methods renamed for consistency
- Missing inline docs have been added
0.4.12
API Updates
- Changed
MIDI.Event(sysEx7RawBytes:)
toMIDI.Event.sysEx7(rawBytes:)
static func - Changed
MIDI.Event(sysEx8RawBytes:)
toMIDI.Event.sysEx8(rawBytes:)
static func - Refactored NRPN API to be consistent with RPN API
Misc
- Minor README updates
- Updated CI to build UB2 (both macOS x86 and arm64)
0.4.11
Incremental Improvements Update
MIDI Events
.noteCC
event (MIDI 2.0 only): Switched value to enum case to be consistent with other events- RPN Tuning Program Change & Tuning Bank Select now correctly carry 7-bit values
- Added 3D Sound Controller RPN types
MIDI Thru Connections
- Addressed Core MDI bug with MIDI Thru connections; now errors out on macOS Big Sur or later
MIDI.IO.ThruConnection
refactorsMIDI.IO.Manager
: AddedremoveAllUnmanagedPersistentThruConnections(ownerID:)
Examples
- Added EventParsing examples
- Misc improvements/refactors to examples
Misc
- Removed remaining TODO compiler warnings
- Minor inline docs updates
- Updated unit tests
- Reworked GitHub CI pipeline
0.4.10
0.4.9
New
- Added basic example projects, with more to come in the next release
- Added intermediate macOS AppKit example project demonstrating endpoint selection menus
- The MIDIKit wiki now has a Getting Started Guide as well as additional tips and troubleshooting info
Fixes and Improvements
InputConnection
andOutputConnection
: Fixed an issue where changingmode
orfilter
properties did not immediately take effect.MIDI.IO.Device
: Fixedname
property containing invalid data- MIDISystemInfo example now shows device/entity/endpoint tree to visualize object hierarchy
- Minor improvements
0.4.8
New
InputConnection
/OutputConnection
: Refactored to usemode
andfilter
properties- Various
Set
andArray
category methods to convert endpoints to criteria collections
API Changes
MIDI.IO.Manager
: .addInputConnection()
and .addOutputConnection()
:
automaticallyAddNew[In/Out]puts
has now become a newmode
enumpreventAddingManaged[In/Out]puts
has now been refactored into a newfilter
property that can filter outowned
virtual endpoints as well as a set of arbitrary endpoints if needed
0.4.7
- Endpoints: added
displayName
cached property EndpointIDCriteria
: addeduniqueIDWithFallback
case- Expanded custom
sorted...
,first(...)
, andfilter(...)
methods on object & endpoint collections MIDI.IO.Manager.endpoints
: AddedinputsUnowned
andoutputsUnowned
properties to return all system endpoints excluding virtual endpoints created by theManager
instance- Misc. minor improvements