Rewrite of swmixer by Nathan Whitehead to support multiple mixers as well as additional support for additional sources.