Repository navigation
Releases: 1amageek/SwiftMusic
Release list
SwiftMusic 0.5.1 (Preview)
SwiftMusic 0.5.1 Preview improves compilation performance and correctness while preserving the public API.
- Reuses bounded pattern syntax within each compilation, preserving exact UTF-8 diagnostic offsets.
- Fixes reducible overflow in musical-time addition.
- Organizes implementation sources by responsibility.
Requires Swift 6.4. The 208 Release tests passed on macOS with Apple silicon; the unchanged implementation also passed the prior Debug suite. This release contains the SwiftMusic library; synthesis rendering and hardware output remain MusicPlaygournd responsibilities.
SwiftMusic 0.5.0 (Preview)
Typed sound composition
SwiftMusic 0.5.0 preserves the concrete structure of declarative sounds with TupleSound, EmptySound, ConditionalSound, optional sounds and ArraySound. if, if let, switch, availability checks and finite for loops work through SoundBuilder.
Use SoundGroup<Content> for explicit parallel grouping and shared modifier scope, or AnySound for an explicit type-erasure boundary. Track syntax and compiled event/render-plan APIs remain unchanged. SwiftMusic does not depend on SwiftUI.
Migration
Use body: some Sound for reusable declarations. Explicit references to the former concrete SoundGroup must become SoundGroup<Content> or some Sound; builder-taking APIs should accept generic Content: Sound.
Requirements and verification
- Swift 6.4; package minimum macOS 14.
- Verified on macOS 27 with Apple silicon.
- All 205 SwiftMusic tests passed.
- MusicPlayground compiled against this implementation; 7 host control/rendering/metadata tests passed.
This is a Preview release. Public APIs may change.
SwiftMusic 0.4.0 (Preview)
SwiftMusic 0.4.0 — Preview
Declare envelopes, unison and ducking directly inside body, without try!.
- Nonthrowing scalar overloads for
envelope,filterEnvelope,pitchEnvelope,unisonandduck. - Invalid arguments are validated during compilation with source locations.
- Existing typed initializers and successful compiled event semantics remain unchanged.
- SwiftMusic remains independent of SwiftUI; rendering and playback belong to the host.
Requires Swift 6.4. Verified on macOS with 202 passing Swift Testing checks. This is a preview release; APIs may change.
SwiftMusic 0.3.0 (Preview)
SwiftMusic 0.3.0 Preview adds declaration-local @State without a SwiftUI dependency. State is main-actor observable, shared by copies of a music value, and independent for new instances.
The README has been rewritten with runnable composition and state examples. MusicPlaygournd is moving to its own repository.
Validation: 199 Swift Testing tests passed on macOS 27 arm64 with Swift 6.4.2-dev (2026-09-04). A fresh URL-only consumer pinned to 0.3.0 built and ran both README examples, including changing the compiled rhythm from 2 to 5 events.
Requires Swift tools 6.4; macOS 14 deployment target, with older macOS runtime behavior unverified. Preview APIs may change. SwiftMusic describes and compiles music; audio rendering is the host's responsibility.
SwiftMusic 0.2.0 (Preview)
- Extended the immutable
Sound/Musiccompiler with bounded rhythm, note, gain, pan, pitch, cutoff, envelope and sample-selection patterns. Patterns support bracket subdivisions, cycle alternatives, leaf repetition and orderedfast,slow,phase,reversedandrepeatedtransforms with checked rational rates and typed UTF-8 diagnostics. - Added typed musical time, tempo, pitch, frequency, decibel, scale, key, chord, voicing, arpeggio, legato, portamento, unison, automation, envelope, probability, humanization, Euclidean rhythm, swing, ratchet and periodic-rhythm values.
- Added sample descriptors for named, absolute-file and validated sample-bank sources, plus source traversal for regions, selection, slicing, chopping, granular playback, stretching, reversal and playback-rate changes.
- Added oscillator descriptors for band-limited saw, pulse, frequency modulation, deterministic colored noise and wavetable sources while retaining the existing basic waveforms.
- Added ordered source, expression, filter, modulation, effect, mix and routing modifiers, including typed filter/chorus/flanger/phaser factories, tremolo, vibrato, ducking, sends, outputs, mute, voice policy and choke groups.
- Added MainActor performance-model injection with
@Performance(Model.self),.performance(model), optionalPerformanceEntryfactories andPerformanceObservationSession.PerformanceObservationSession.prepareDetailedpreserves located compiler diagnostics after one tracked body evaluation. - Added optional typed performance controls for finite numbers, one BPM role and normalized
SpatialPositionXY/depth values. Complete control-set validation rejects malformed IDs, domains, values, duplicate key paths and multiple BPM roles before mutation. - Kept revision-safe live preparation explicit through
LiveMusicUpdateandLiveMusicState: stale completions are rejected, failures retain the adopted plan, and adoption remains a host-selected boundary operation.
Compatibility and verification
Music.bodyand Music compiler entry points are MainActor-isolated;Soundand compiled values remain Sendable. SwiftMusic has no SwiftUI dependency.- Requires Swift tools 6.4; package deployment target macOS 14. All 198 library tests passed on macOS 27 arm64 with Swift 6.4.2-dev (2026-09-04, compiler
d2e983b81b18217). Runtime compatibility on macOS 14, Embedded Swift and WASM is not claimed. - This release covers the SwiftMusic library product. MusicPlaygournd is a separate native host under development; remaining editor layout and full UI acceptance are not represented as complete. Audio rendering and hardware I/O remain host responsibilities.
- Prerelease APIs may change.
SwiftMusic 0.1.0 (Preview)
Changelog
0.1.0 (Preview) — 2026-09-07
- Preview release of the declarative
SoundandMusicDSL with immutable beat events and render plans. - Includes six modifier categories (rhythm, pitch and harmony, expression, source settings, audio effects, and mix and routing), rhythm and note patterns, and revision-safe live plan preparation and adoption through
LiveMusicState. - Verified by the native Swift 6.4 Debug and Release suites (30 tests) and an external client using the README flow.
- This preview makes no claims for DSP, audio playback, the MusicPlaygournd Editor, or WASM support.