I'm back working on a bunch of Blocks, and the same annoying questions is still grinding away in the background.
What level should I/we be aiming for in terms of oscillator output, FX output... etc. (and assuming in terms of inputs). The Framework documentation says we should keep within a limit of -1..1.Factory Oscillators are -0.66..0.66.Some UL and 3rd party are -1..1, others push beyond that limit, or are well within.
So far my thoughts are:
-1..1 would be nice and simple, and the louder things are the better they sound... however, -1..1 leaves no headroom whatsoever, so sending that into e.g. a softclipper means the clipper must have input attenuation, or subtle clipping will be impossible...
-0.667..0.667 seems like a good compromise - there is some built in headroom for FX, saturation, mixers etc.
going with -0.5..0.5 might be even better - more headroom, and there's really no issue with noise floor in a FP digital audio path... so why not?
But for FX, we have to make some assumptions about input signal level, or have extra controls all over the place - e.g. a wavefolder will have an input amplitude threshold where folding starts. If that's set too high, then a wave at -0.5..0.5 will need a boost before it will do anything, and when it does, the output will be somewhat louder than that input waveform... but if it's too low, then some Blocks with hot outputs will cause some folding even at minimum... not ideal!
So I'm thinking maybe I will target a magnitude of 0.667 as an output for everything other than amplifiers and other boosters, then at least there will always be headroom... and just assume others do the same... then if there are problems with other 3rd party blocks due to hot outputs, then that's on them? still far from sure though!
It's interesting that in Eurorack, there is no hard standard, but for the most part stuff (oscillators, envelopes, LFOs etc.) runs at 10v peak to peak, within a system that is 24v peak to peak... some things (mostly CV) go 0..10, some -5..5, some 0..5... Whatever, there is generally a lot more audio headroom than in Blocks. That's nice for stuff like subtle saturation staging.
Example:
Lets say you create a tanh saturation Block, targeting an output of -1..1 maximum. If you send a -0.6..6 signal into that, the saturation is not going to be particularly subtle.
If a user wanted to use multiple instances of that throughout a patch to add subtle warmth/distortion, they would have to have multiple VCAs or Mixers to attenuate significantly between stages to achieve that goal... not immediately obvious.
------------------------------------------------------------------
So... any thoughts on this conundrum? what do other folk do? are UL things mostly -1..1 or -0.667..0.667?... do folk even stick to the Blocks Framework specs?