MusicTheory Versions Save

Universal music theory library for iOS, iPadOS, macOS, tvOS and watchOS in Swift

1.0.0

5 years ago

Breaking Changes

  • Note and NoteType structs removed.
  • You need to use Key instead of NoteType with a KeyType and Accidental.
  • You need to use Pitch instead of Note with a Key and octave (Int).
  • Scale and Chord structs notes(..) functions renamed pitches(...) and they are returning [Pitch] instead of [Note].
  • Scale and Chord structs noteTypes property renamed keys 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 as static variables and it probably won't break anything.

1.0.0-pre

5 years ago

Breaking Changes

  • Note and NoteType structs removed.
  • You need to use Key instead of NoteType with a KeyType and Accidental.
  • You need to use Pitch instead of Note with a Key and octave (Int).
  • Scale and Chord structs notes(..) functions renamed pitches(...) and they are returning [Pitch] instead of [Note].
  • Scale and Chord structs noteTypes property renamed keys 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).

0.1.1

6 years ago

0.1

6 years ago
  • 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.

0.0.7

6 years ago
  • Chords rewritten
  • Now you can define all chords existing.
  • Added extended chords for generating harmonic fields.

0.0.6

6 years ago
  • 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 ChrodTypes and ScaleTypes from intervals.
  • Updated documentation.
  • Updated unit tests.

0.0.5

6 years ago

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.

0.0.4

7 years ago
  • 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 in Interval enum

0.0.3

7 years ago

Ready to SwiftPackageManager with shared swift library

  • iOS 8.0+
  • tvOS 9.0+
  • macOS 10.9+
  • watchOS 2.0+

0.0.2

7 years ago
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.