code: github.com/a1k0n/jsxm
todo:
 - missing XM effects:
   - E3x, E6x, E7x, E9x, EDx, EEx
   - 7xy - tremolo
   - Kxx, Lxx, Pxy, Txy
 - render pattern with the wider fonts for fewer channels
 - fix occasional rendering/audio hiccups when switching songs