We want to represent streams of discrete events
in a manner that is more safe than plain
Each peak can be imagined as a Dirac impulse.
[Bool] could be used accidentally for
selectBool is intended for piecewise constant control curves.
You may think that a type like
Peak = Peak Bool as sample type
T s Peak would also do the job.
Actually, this wouldn't be a good idea
since you can apply constant interpolation on it,
which obviously fools the idea of a peak.
This type is so level that it could be moved to Synthesizer.Generic.Dirac.
This is the most frequently needed transformation of a stream of peaks, if not the only one. It converts to a signal of peaks with area 1. This convention is especially useful for smoothing filters that produce frequency progress curves from zero crossings.