bpm returns a function that works in seconds, not milliseconds. This is to remove impedence mismatch with Supercollider, which assumes seconds.
In phrase, rests are reified as notes of nil pitch. This also means:
* where ignores nils.
* times and then have no padding.
* The (where :foo (is :bar)) idiom is broken.
* Implementations of play-note need to watch out for nil pitches.
all applies a constant quality across a melody.