Releases: orchetect/MIDIKit
0.7.1
Improvements for Receiving MIDI Events
- Added a new
.eventsWithMetadata { }
MIDI event receive handler that includes MIDI packet timestamp and the source endpoint
Improvements for Object Properties
- MIDI endpoints, entities and devices now have unified property names
- MIDI endpoints, entities and devices have additional contextual properties (ie: endpoints offer an
entity
anddevice
property) - MIDI event filters are now more robust
0.7.0
What's New
HUI
- HUI objects and value types have been substantially refactored and improved, and various issues resolved. (#136 / #139)
- A new
HUIHost
object is now available for HUI host applications to manage one or moreHUIHostBank
remote HUI devices. (#136 / #139)
Examples
- Bluetooth MIDI example projects have been updated to demonstrate configuring your iOS app as a local Bluetooth MIDI peripheral which other devices can connect to. (#141 / #142)
- HUITest example application now demonstrates a simple HUI host and the HUI surface UI has been improved with functioning faders, V-Pots and jog wheel. (#139)
0.6.1
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