audio: provide normalization tools/guidelines
3 steps:
- provide application developers with an API to get the current volume of the audio engine output
- provide basic envelope management plugins (a musical limiter for starters would be nice)
- define a target normal volume that apps should try to come close to during normal operation
we're not quite sure yet what the target should be. if we look at scalar, it has a tone generator for each petal but for typical melodic use only one is being played at a time, which means we need to go down to at least -20dB, but that is with hoping the crest ratio is in our favor, so effectively we might wanna go for -26dB or smth to make sure all petals can be played at the same time without clipping.
we don't find this to be a reasonable volume. we think a better target would be in the -12..-15dB range, so we require some dynamics compression to deal with polyphony. will try to add that to bl00mbox soon.
(of course, ideally a user should be able to modify the volume for any application individually, but given that it's not just bl00mbox it requires its own plumbing and we'd still want applications to be reasonably normalized.)