This release brings numerous stability improvements, bug fixes, and new features to the I/O and UI modules.
These release notes are copied from their respective repository's release notes for convenience.
📦 Core 1.0.1
- Minor documentation and README updates
📦 I/O 1.1.0
New
MIDIManager: AddedisStartedBool computed propertyMIDIManager: AddeddevicesStream()method that returns anAsyncStreamof devices in the system (See docs and new example project for a demonstration)MIDIManager: AddedendpointsStream()method that returns anAsyncStreamof endpoints in the system (See docs and new example project for a demonstration)
Fixed
MIDIManager: Fixed internal concurrency regressions - interactions with the manager are now properly serialized and deterministic.MIDIManager:add/removemethods now throw an error if the manager has not yet been started rather than producing undefined behaviorMIDIIOObject/MIDIEndpoint: Fixed regression where accessing theentityordeviceproperty may result in incorrect data or an exceptionMIDIIOObject:advanceScheduleTimeMuSec: Fixed incorrect property value type
Improved
MIDIManager: Internal management queues now target global thread pool to reduce thread count
Maintenance
- Moved example projects from deprecated swift-midi-examples repository
- Added new AsyncStream Devices and Endpoints example project
- Added new Observable Manager example project
- Added new ObservableObject Manager example project
- Minor documentation and README updates
📦 Control Surfaces 1.0.1
- Moved example projects from deprecated swift-midi-examples repository
- Minor documentation and README updates
📦 File 1.0.1
- Moved example projects from deprecated swift-midi-examples repository
- Minor documentation and README updates
📦 Sync 1.0.1
- Moved example projects from deprecated swift-midi-examples repository
- Minor documentation and README updates
📦 UI 1.1.0
Important
This release contains a minor code-breaking change. See the SwiftUI environment usage below.
New
- Added new global
midiManagerSwiftUI environment property
Changed
-
SwiftUI MIDI endpoint list and picker views now use the new
midiManagerenvironment value instead of expecting anObservableMIDIManagerinstance to be in the environment. -
// Old: .environment(manager) // must be a ObservableMIDIManager // New: .environment(\.midiManager, manager) // can be MIDIManager or any of its subclasses
-
This allows
MIDIManageror any of its subclasses to be used instead of requiring the use ofObservableMIDIManager. -
This also means the minimum requirement for these views has been lowered to macOS 12 and iOS 15
-
Maintenance
- Moved example projects from deprecated swift-midi-examples repository
- Minor documentation and README updates