Releases: orchetect/MIDIKit
0.6.0
MIDIKit 0.6.0
What's New
-
Library-wide API clarification and more consolidated type names.
-
Curated documentation:
-
Written with DocC
-
Includes all the getting started guides previously found in the Wiki and more
-
Easy to navigate directly within Xcode using the Build Documentation menu command, or browsable online
(Note: Xcode 14 builds docc more reliably than Xcode 13 but you can always browse the online docs)
-
-
MIDIKit is now a mono-repo: All extension repos (SMF, Sync, ControlSurfaces) are now incorporated as package products within MIDIKit, and the external repos are now deprecated. All of MIDIKit can be imported with a single import, or individual targets can be imported if only certain functionality is required. See the documentation for details.
-
Refactors and improvements
Note: MIDIKit 0.6.0 contains substantial API changes from 0.5.x, and now requires Swift 5.5 / Xcode 13.0+.
0.5.2
New Features
MIDI.Event.sysEx7(rawHexString:)
static initializer- capable of parsing a string of hex byte values (ie:
"F7 01 02 03 F0"
or"f7010203f0"
)
- capable of parsing a string of hex byte values (ie:
MIDI.Event.SysEx7
instance: Added.midi1RawHexString()
method- returns the raw message bytes as a string of hex values
Minor Changes
MIDI.Event.noteManagement()
: Addednote:
parameter label for consistency
0.5.1
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