Andy Sloane
32b09bdf63
various envelope/effect fixes
...
Dubmood's .xms seem to expose a lot of bugs...
2015-10-31 09:27:38 -07:00
Andy Sloane
837e302796
workaround pattern rendering breakage
...
synchronized screen updates need to be a bit more robust...
2015-10-31 07:56:36 -07:00
Andy Sloane
9f014f35c8
how did i mess up arpeggio!?
2015-10-30 23:39:50 -07:00
Andy Sloane
acffa056a5
*really* fix instrument triggers
...
last commit was completely wrong. also i read somewhere that the
instrument alone doesn't reset volume, which is apparently a lie.
2015-10-30 22:54:19 -07:00
Andy Sloane
c12f2b8068
fix triggering without note
...
you can retrigger a note just by using the instrument column.
2015-10-30 22:35:48 -07:00
Andy Sloane
ee005ef668
implement volume column slides
2015-10-30 22:28:03 -07:00
Andy Sloane
c238aabd66
butter smooth screen updates, longer audio buffer
2015-10-30 21:25:21 -07:00
Andy Sloane
949a7c89c5
fix envelope sustain and fadeout
2015-10-30 18:13:13 -07:00
Andy Sloane
b7a2e58109
Ripped font gfx out of FastTracker 2 :)
2015-10-30 17:58:24 -07:00
Andy Sloane
dacb1a5852
hack to use first sample in instrument rather than last one
2015-10-30 08:53:39 -07:00
Andy Sloane
92c6bddcc6
fixed a bunch of playback-stopping bugs
2015-10-29 14:56:17 -07:00
Andy Sloane
156cca80d3
fix envelopes some more
...
whoops, was checking wrong envelope bits for sustain/loop
2015-10-29 14:04:25 -07:00
Andy Sloane
c3499eedaa
Fix envelope hacks and a bug (panning left on release)
2015-10-29 13:51:57 -07:00
Andy Sloane
5645739edb
unrolled main mixing loop
2015-10-28 21:59:54 -07:00
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