New mixer API

For you interested. Still work in progress. Do not merge.

Addresses #665.
/or/of/