much like chiptune.js - but newer and neater