Add bass and treble (refactored)

Based on @petteraas' work on #30 I've done some refactoring, mostly to get rid of duplicate code. Naming is still topic of ongoing discussion ;)