Closed notae closed 9 years ago
Example intervals to be checked by isCompound :
isCompound
> let ints = [- _P8, - d8, - _M7, - m7, - d7, - _M6, - m6, - d6, - _A5, - _P5, - d5, - _A4, - _P4, - d4, - _M3, - m3, - d3, - _M2, - m2, - d2, d1, _P1, _A1, m2, _M2, _A2, m3, _M3, _A3, d4, _P4, _A4, d5, _P5, _A5, m6, _M6, _A6, m7, _M7, _A7, d8, _P8]
I expected :
> map isCompound' ints [True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True]
where
isCompound' :: Interval -> Bool isCompound' x = octaves (abs x) /= 0
Actually returned :
> map isCompound ints [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True]
Quoting the docs "a compound interval is either a negative interval, or a positive interval spanning one octave or more" so this is expected.
For the behaviour you want, try isCompound $ abs (-m3).
isCompound $ abs (-m3)
Example intervals to be checked by
isCompound
:I expected :
where
Actually returned :