swift-music

2.0.0

A swift package that provides an easy-to-use API for music related developments.
sh3l6orrr/swift-music

What's New

2.0.0

2022-01-06T02:36:49Z

Contains API changes to initializer of chord.

🎼 swift-music

CI

Introduction

swift-music is a swift package that provides an easy-to-use API for music related developments.

Currently available module:

  • MusicTheory: Notes, chords, scales.

MusicTheory

import MusicTheory

Interval Arithmetic

Note.D - Note.E  // Interval.m7

Create a Chord

// Create with notes contained.
let Esus4 = Chord(.E, notes: [.E, .A, .B]) 

// Create with root and quality.
let Abm = Chord(.A_flat, .minorTriad)

// Create with name need to be marked with the try! keyword.
let A7 = try! Chord("A7") 

Get summary of a chord

A7.summary
// This is a chord named A7, with root note A, and component notes C#, E, G, which are 
// respectively major third, perfect fifth, minor seventh above the root. 

Is this chord in my scale?

try! Chord("Dbm").isIn(scale: .init(.B, .major)) // true

Get triad in a scale

Scale(.B, .major).triad(degree: 6) // G#m

Other API

  • Consonance and dissonance of interval, notes, or chord
  • Checking if a note in a chord
  • Create chord with both sharps and flats
  • Create slash chords
  • Support for 20+ chord qualities
  • Support for 10+ modes (To be implemented)

Installation

Xcode Project

File - Add Packages - https://github.com/sh3l6orrr/swift-music.git

Swift Package Manager

Inside Package.swift, add the followings:

dependencies: [
    .package(url: "https://github.com/sh3l6orrr/swift-music.git", .upToNextMajor(from: "1.0.0"))
]
targets: [
    .target(
        name: "YourTarget",
        dependencies: [.product(name: "MusicTheory", package: "swift-music")]
    )
]

Documentation

Documentation is contructed with DocC. To build, in Xcode:

Product - Build Documentation

License

This project is published under the Apache License 2.0.

Description

  • Swift Tools 5.1.0
View More Packages from this Author

Dependencies

  • None
Last updated: Thu Jan 27 2022 03:19:18 GMT-0500 (GMT-05:00)