CocoaPods trunk is moving to be read-only. Read more on the blog, there are 19 months to go.

HarmonyKit 0.0.4

HarmonyKit 0.0.4

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Oct 2018
SwiftSwift Version 4.2
SPMSupports SPM

Maintained by Shinichi Goto.



  • By
  • shingt

HarmonyKit

CI Status Xcode 10.0+ iOS 11.0+ Swift 4.2

Tool to generate audio frequencies.

Synopsis

First you need to define a tuning setting

let setting = HarmonyKit.Setting(
    pitch: 442,
    scaleType: .equal,
    rootTone: .C,
    transpositionTone: .C,
    octaveRange: 1..<2
)

and then

let harmonies = HarmonyKit.tune(setting: setting)
let sortedHarmonies = harmonies.sorted()
sortedHarmonies.forEach { print($0) }
// =>
// tone: A, octave: 1, frequency: 55.25
// tone: Bb, octave: 1, frequency: 58.5353
// tone: B, octave: 1, frequency: 62.016
// tone: C, octave: 1, frequency: 32.8518
// tone: Db, octave: 1, frequency: 34.8053
// tone: D, octave: 1, frequency: 36.875
// tone: Eb, octave: 1, frequency: 39.0676
// tone: E, octave: 1, frequency: 41.3907
// tone: F, octave: 1, frequency: 43.852
// tone: Gb, octave: 1, frequency: 46.4595
// tone: G, octave: 1, frequency: 49.2222
// tone: Ab, octave: 1, frequency: 52.1491

If you specify .pureMajor for scaleType:

sortedHarmonies.forEach { print($0) }
// =>
// tone: A, octave: 1, frequency: 54.7544
// tone: Bb, octave: 1, frequency: 59.1335
// tone: B, octave: 1, frequency: 61.5983
// tone: C, octave: 1, frequency: 32.8518
// tone: Db, octave: 1, frequency: 34.2212
// tone: D, octave: 1, frequency: 36.9581
// tone: Eb, octave: 1, frequency: 39.4213
// tone: E, octave: 1, frequency: 41.0645
// tone: F, octave: 1, frequency: 43.8013
// tone: Gb, octave: 1, frequency: 45.6271
// tone: G, octave: 1, frequency: 49.2791
// tone: Ab, octave: 1, frequency: 51.3302

.pureMinor:

sortedHarmonies.forEach { print($0) }
// =>
// tone: A, octave: 1, frequency: 54.7544
// tone: Bb, octave: 1, frequency: 59.1335
// tone: B, octave: 1, frequency: 61.5983
// tone: C, octave: 1, frequency: 32.8518
// tone: Db, octave: 1, frequency: 35.4792
// tone: D, octave: 1, frequency: 36.9581
// tone: Eb, octave: 1, frequency: 39.4213
// tone: E, octave: 1, frequency: 41.0645
// tone: F, octave: 1, frequency: 43.8013
// tone: Gb, octave: 1, frequency: 47.3071
// tone: G, octave: 1, frequency: 49.2791
// tone: Ab, octave: 1, frequency: 52.5634

Installation

HarmonyKit is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "HarmonyKit"

Example

See Tests/HarmonyKitTests/HarmonyKitTests.swift.

Author

shingt

License

HarmonyKit is available under the MIT license. See the LICENSE file for more info.