Skip to content

1.1.0

Latest

Choose a tag to compare

@orchetect orchetect released this 03 May 01:21
· 3 commits to main since this release

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: Added isStarted Bool computed property
  • MIDIManager: Added devicesStream() method that returns an AsyncStream of devices in the system (See docs and new example project for a demonstration)
  • MIDIManager: Added endpointsStream() method that returns an AsyncStream of 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/remove methods now throw an error if the manager has not yet been started rather than producing undefined behavior
  • MIDIIOObject/MIDIEndpoint: Fixed regression where accessing the entity or device property may result in incorrect data or an exception
  • MIDIIOObject: 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 midiManager SwiftUI environment property

Changed

  • SwiftUI MIDI endpoint list and picker views now use the new midiManager environment value instead of expecting an ObservableMIDIManager instance 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 MIDIManager or any of its subclasses to be used instead of requiring the use of ObservableMIDIManager.

    • 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