Releases: cemolcay/MusicTheory
Releases · cemolcay/MusicTheory
v1.0.0
Breaking Changes
Note
andNoteType
structs removed.- You need to use
Key
instead ofNoteType
with aKeyType
andAccidental
. - You need to use
Pitch
instead ofNote
with aKey
and octave (Int). Scale
andChord
structsnotes(..)
functions renamedpitches(...)
and they are returning[Pitch]
instead of[Note]
.Scale
andChord
structsnoteTypes
property renamedkeys
and it returns[Key]
instead of[NoteType]
.- New
Accidental
struct added. You can define accidents like sharp, flat, doubleSharp or more spesific like.sharps(amount: 3)
. Interval
struct rewritten. Now it is a struct instead of an enum. But all important intervals as in old version added asstatic
variables and it probably won't break anything.
1.0.0 Pre-Release
Breaking Changes
Note
andNoteType
structs removed.- You need to use
Key
instead ofNoteType
with aKeyType
andAccidental
. - You need to use
Pitch
instead ofNote
with aKey
and octave (Int). Scale
andChord
structsnotes(..)
functions renamedpitches(...)
and they are returning[Pitch]
instead of[Note]
.Scale
andChord
structsnoteTypes
property renamedkeys
and it returns[Key]
instead of[NoteType]
.- New
Accidental
struct added. You can define accidents like sharp, flat, doubleSharp or more spesific like.sharps(amount: 3)
.
Swift 4.1
Migrate Swift 4.0 with Codable protocol
- Migrate from Swift 3.2 to Swift 4.0
- All structs and enums conform
Codable
. - NoteValueType and NoteModifier enums are
Double
type now, unnecessary props removed.
Completely new Chords
- Chords rewritten
- Now you can define all chords existing.
- Added extended chords for generating harmonic fields.
Swift 4.0 Support
- Harmonic Fields! Now you can generate triad or tetrad chords for each
Scale
. - Chord inversions added.
- Add Equatable protocol to
Interval
,Scale
,ScaleType
,Chord
,ChordType
- Could initilize
ChrodType
s andScaleType
s from intervals. - Updated documentation.
- Updated unit tests.
Added TimeSignature, Tempo and NoteValue data structures
Now you can calculate note durations with newly added Tempo, TimeSignature and NoteValue data structures.
For example in a 4/4 time signature, 120BPM tempo, a quarter note would be 0.5 seconds.
Also you can calculate hertz of a note for LFO speed.
Added new scales and chords
- All scales and chords added from https://www.apassion4jazz.net/keys.html.
- Dataset.swift file deleted.
- ScaleType.all and ChrodType.all static properties moved to their enums from deleted Dataset.swift file.
- Implemented
ExpressibleByIntegerLiteral
protocol inInterval
enum
Shared library
Ready to SwiftPackageManager with shared swift library
- iOS 8.0+
- tvOS 9.0+
- macOS 10.9+
- watchOS 2.0+
Classified new version
let cmin = Scale.minor(key: .c)
updated with
let min = ScaleType.min // enum
let cmin = Scale(type: min, key: .c) // struct
style for all Note, Scale and Chord types.
We have NoteType, ScaleType and ChordType enums, key and octave agnostic.
We have Note, Scale and Chord structs with keys and octaves as well as some handy operation functions.