C-Indexing
See notes.py for a concrete example of this issue.
The primary issue with applying range numbers to a musical scale is
the 'C-indexed' nature of scales. Octaves begin on C not on A, so
we wind up with issues like this:
Cmajor scale:
[C0, D0, E0, F0, G0, A0, B0]
Aminor Scale
[A-1, B-1, C0, D0, E0, F0, G0]
This means that at certain times we need to know wether our starting note is bellow
C or above it - this could likely be solved with some clever Exceptions and error handling.
But for now I've chosen the ugly, blunt approach of storing all our ranged notes in notes.py
C-Indexing
See notes.py for a concrete example of this issue.
The primary issue with applying range numbers to a musical scale is
the 'C-indexed' nature of scales. Octaves begin on C not on A, so
we wind up with issues like this:
Cmajor scale:
[C0, D0, E0, F0, G0, A0, B0]
Aminor Scale
[A-1, B-1, C0, D0, E0, F0, G0]
This means that at certain times we need to know wether our starting note is bellow
C or above it - this could likely be solved with some clever Exceptions and error handling.
But for now I've chosen the ugly, blunt approach of storing all our ranged notes in notes.py