Really cool article! Music theory and testing work really well together.
The Note(name: .D, intonation: .natural) syntax seems a bit heavy though. I wonder if you could make class vars similar to how you can write UIColor.red so that you could type Note.A or Note.Asharp
That would let you write something like:
expect(Amajor).to.equal([.A, .B, .CSharp, .D, .E, .FSharp, .GSharp])
Which would make the tests smaller and more readable (in my humble opinion)