You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Apr 29, 2020. It is now read-only.
We often use single-part scores in the implementation. That is scores which have an informal guarantee to have no overlapping events.
We usually want to manipulate things which have both offset and duration (i.e. scores and voices). Often we need to work on single voices.
Voice is great because it enforces no overlaps in its type
However it is inconvenient not to have the offsets around, forcing us to do accumulation over time.
Maybe add a newtype wrapper for score with the static guarantee, that is, a hidden implementation and safe constructors Part (Maybe a) -> SingleVoiceScore a, SingleVoiceScore a -> Voice (Maybe a).
The text was updated successfully, but these errors were encountered:
We often use single-part scores in the implementation. That is scores which have an informal guarantee to have no overlapping events.
Part (Maybe a) -> SingleVoiceScore a, SingleVoiceScore a -> Voice (Maybe a)
.The text was updated successfully, but these errors were encountered: