Music
Music copied to clipboard
Structures for the creation, analysis, and performance of music in Swift
I wonder if the following could be of use, @jsbean ? ```swift struct Prism { let unwrap: (A) -> B? let wrap: (B) -> A } enum Music { static...
At present `let badDur: Duration = 1/>31` causes an error, because 31 is not a power of 2. Proposed eradication of these errors: A constructor of the following form. ```swift...
Some ideas for replacing the enum based articulation with a final tagless approach. This will enable more user customization downstream. ```swift // Articulation that can be represented by a single...
As an analogy to `Scale.Degree` (#91), add the `Chord.Factor` structure for managing component parts of chords.
Build out a `ScaleDegree` structure, with different representational affordances. The `ScaleDegree` might have an `index` (`0`, `1` ...), and depending on the context of the `Scale` (major, minor, etc.) it...
When `IntervalSearchTree` is established and reasonably vetted, push it down to `DataStructures`.
Currently, the README shows low-level usage for each module. Instead, show a `hello, world` high-level usage for the entire package, and add links to documentation for each module (which show...
There is currently no way of ensuring that a `.continuation(...)` does not succeed an `.absence`. Perhaps a good way to deal with this is similar to the [`Path.Builder`](https://github.com/dn-m/Graphics/blob/c6786ca2c630597674c563a71159ecdb0bede8e0/Sources/Path/Path.Builder.swift). ```Swift extension...
Implement `ProportionTree` / `DurationTree` with COW structs holding `final class` nodes. While the `enum`-based `Tree` implementation was elegant, performance issues are emerging. By adding the `@inlinable` attribute to these `enum`-based...
A little bit of a work around needs to be made In order to keep the model type-safe: ```Swift extension Model { var entitiesByType: [String: [Identifier]] = [:] func store...