No description
- JavaScript 96.6%
- HTML 3.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Closes #3. The code which defines what the buttons do and downloads songs and so forth are now completely separated from the player, which has the following API: - `XMPlayer.initAudio` -> starts up audio context; it's available as `XMPlayer.audioctx` - `XMPlayer.loadXM(ArrayBuffer)` -> returns `true` if loaded, otherwise barfs randomly - `XMPlayer.playXM()` -> starts playing - `XMPlayer.pauseXM()` -> obvious - `XMPlayer.stopXM()` -> obvious; call this before loading a new one Loading trackview.js is now optional; without it, the player won't do any visualizations. Or, you can override the following to get callbacks: - `XMView.pushEvent(e)` -> push an audio event onto the queue. Called once per tick (about 50Hz, controlled by song). `e` contains fields: - `t` - audio timestamp - `vu` - Float32Array of RMS power (volume) for each channel - `scopes` - [Float32Array] of oscilloscope data, one array per channel; `XMView.scope_width` contains # of samples to produce here - `songpos` - position in the song (# patterns played) - `pat` - pattern number currently playing - `row` - row within pattern - `XMView.pause()` - pause visualization - `XMView.stop()` - stop/reset visualization |
||
| ft2font.png | ||
| index.html | ||
| LICENSE | ||
| package.json | ||
| README.md | ||
| shell.js | ||
| trackview.js | ||
| xm.js | ||
| xmeffects.js | ||
xm.js
FastTracker 2 .XM player, written for fun.
By default it plays "my dirty old kamel" by Alexander Bulér aka Zalza. I love this tune, and wrote this code just to play it. It can also load some other tunes hosted on my website with a file picker, and it should play just about any .XM file now if checked out and run locally.
It is fairly feature-complete, but is missing a bunch of effects.
MIT license.