Commit graph

33 commits

Author SHA1 Message Date
Andy Sloane
efec2d7273 implement instrument fadeout
i just hacked the fadeout directly into envelopes rather than
complicating anything else.
2015-10-28 19:47:42 -07:00
Andy Sloane
2615c201e2 implement sample loop unrolling & pingpong 2015-10-28 19:14:06 -07:00
Andy Sloane
16167bc599 implement pattern / song jumps 2015-10-28 16:21:12 -07:00
Andy Sloane
0bfc83d48b added a few simple effects, updated todo 2015-10-28 15:56:29 -07:00
Andy Sloane
34a50855b0 we can now play a bunch of XMs! 2015-10-28 15:43:33 -07:00
Andy Sloane
0f4517908d fix short patterns 2015-10-28 15:43:28 -07:00
Andy Sloane
49de30d741 a few Exy effects 2015-10-28 13:56:57 -07:00
Andy Sloane
84369dbc2c fix loading issues 2015-10-28 12:40:14 -07:00
Andy Sloane
beeec74fa1 fixed more terrible things
- tick 1+ effects were playing on tick 0, whoops
 - 8-bit samples were sometimes being loaded with an offset of -1, eesh,
   no wonder i had to work so hard to eliminate clicks and pops
 - the note display was totally wrong
2015-10-27 21:39:48 -07:00
Andy Sloane
b82a350011 fix vibrato, implement 6xy 2015-10-27 20:55:00 -07:00
Andy Sloane
17123cc5f1 made it so you can load other xms
and as a result, fixed a ton of bugs, many many remain
2015-10-27 17:41:11 -07:00
Andy Sloane
66958ca7d8 minor panning tweak 2015-10-27 16:04:11 -07:00
Andy Sloane
5161e55669 added volume column effects, fixed panning
when there was no panning envelope, panning was totally wrong

panning is still sort of wrong, in that the RMS power of a channel is
not constant over pans...
2015-10-27 15:38:42 -07:00
Andy Sloane
c2fe03797e refactored mixing code a bit
removed all doubt about handling note-end pops
2015-10-27 08:48:29 -07:00
Andy Sloane
343da0f3e9 creditz to zalza in index.html 2015-10-26 15:40:55 -07:00
Andy Sloane
8e6b6e7a90 safari compatible 2015-10-26 13:04:37 -07:00
Andy Sloane
bf601d8e9d added README 2015-10-26 11:44:31 -07:00
Andy Sloane
706770584a add code pointer in index 2015-10-26 11:03:51 -07:00
Andy Sloane
10ea0b5f65 rudimentary VU meters 2015-10-26 10:53:23 -07:00
Andy Sloane
94d378d4ce added panning envelopes
refactored envelopes.

no idea if the final panning is right, though. need to do some tests vs
FT2.
2015-10-26 10:41:58 -07:00
Andy Sloane
741efc0f25 fixed vibrato, implemented Axy 2015-10-26 09:18:11 -07:00
Andy Sloane
653c80c88a implemented vibrato
added effects table to clean things up a bit
2015-10-26 08:42:55 -07:00
Andy Sloane
50c5513aeb fix portamentos, pitch bends
- period slides were off by a factor of 4
 - we need to reset a note's envelope if it was released, and then
   portamento'd into
 - instruments shouldn't trigger notes in the presence of 3xx/5xx
2015-10-25 22:06:50 -07:00
Andy Sloane
4a0efd648d inlined all filters 2015-10-25 09:20:12 -07:00
Andy Sloane
f8a278f456 optimizing filters, work in progress 2015-10-25 09:01:29 -07:00
Andy Sloane
597d9cfc6e effects 1,2,3
Change-Id: I27664eb1b7f052efa3c7dd67d69f179a419793a8
2015-10-24 17:05:54 -07:00
Andy Sloane
fca447528e arpeggio!*&@ 2015-10-24 09:00:24 -07:00
Andy Sloane
6837fbb42e added a click/pop filter on volume and note end.
sounds a LOT better now.  just needs effects!
2015-10-23 17:58:42 -07:00
Andy Sloane
7de75f6977 added per-channel low-pass filter
sounds better, but still clicks and pops a lot.  i'll need a volume
envelope lowpass filter, i guess.
2015-10-23 17:34:52 -07:00
Andy Sloane
15a848d797 add bilinear filtering, fix more bugs
still lots of clicks and pops; i'll probably add a per-channel lowpass
filter
2015-10-23 14:27:23 -07:00
Andy Sloane
fe99e1a3b2 IT WORKS!
fixed many, many bugs, implemented playing (should be relatively
efficient), volume envelopes (but not panning envelopes). found that
instruments start at 1, not 0, and note C-0 is 1, not 0... so it is now
in tune with FT2!

no effects are supported at all yet, and there's a bug where it stops
playing entirely for a while, but "my dirty old kamel" sounds
recognizable and in tune!
2015-10-23 10:12:29 -07:00
Andy Sloane
a0a2d4446e split javascript out into xm.js
Change-Id: I81718be257163f66ed88c6debbcc90c276a16fb0
2015-10-22 06:51:13 -07:00
Andy Sloane
733fd861d3 basic XM file parsing
Change-Id: I544a3e5216f933797102b05dd2381de260d654f5
2014-03-27 09:07:48 -05:00