CookieComputing / muscala-archived

Music Theory for Scala
MIT License
0 stars 0 forks source link

Implement diatonic intervals #7

Closed CookieComputing closed 4 years ago

CookieComputing commented 4 years ago

https://bspaans.github.io/python-mingus/doc/wiki/tutorialIntervals.html#natural-diatonic-intervals

This is an idea we might want to consider alongside the absolute intervals currently planned for.

CookieComputing commented 4 years ago

With the most recent additions of the Key class, and the absolute intervals being implemented, it should be possible to implement a diatonic set of intervals, which will substantially easier to work with than the absolute intervals. This will allow us to accurately implement chords and scales with relative ease.

CookieComputing commented 4 years ago

We also need to just consider how much we can re-use existing code to implement diatonics, since we do not want to have to maintain a mirror copy of the existing absolute intervals class.

CookieComputing commented 4 years ago

This has been in pretty long development, but the gist of the design is to take only acceptable notes (e.g. ones found in a key), and use those notes to then find the expected intervals (inspiration from mingus). We avoid the hassle of telling the user what to expect from a note, and instead let them decide for themselves.