Change the envelope constructor to make it take arrays, and a seperate starting value.  Also simplify the first segment logic.
My filter maths is bad - make the filters actual Butterworth filters
Add trigger unit
Set the correct default values for multiply and divide
Add operator overloads and change parameter slightly so we can do pretty much everything using possibly evil right-shifts.
Change unit >> operator to return Block rather than Block &.  Should use move semantics, so not be much slower.