jsxm

FastTracker 2 .xm module player in Javascript

  • 所有者: a1k0n/jsxm
  • 平台:
  • 许可证: MIT License
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图

xm.js

Build Status

FastTracker 2 .XM player, written for fun.

Demo

There is an XM player and a visualizer which are separate components. The
player API looks like this:

  • XMPlayer.init -> starts up audio context; it's available as
    XMPlayer.audioctx
  • XMPlayer.load(ArrayBuffer) -> returns true if loaded, otherwise
    barfs randomly
  • XMPlayer.play() -> starts playing
  • XMPlayer.pause() -> obvious
  • XMPlayer.stop() -> obvious; call this before loading a new one

Loading trackview.js is 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

The code which defines what the buttons do and downloads songs and so
forth is in shell.js.

The player is fairly feature-complete, but is missing a bunch of effects.

MIT license.

主要指标

概览
名称与所有者a1k0n/jsxm
主编程语言JavaScript
编程语言HTML (语言数: 2)
平台
许可证MIT License
所有者活动
创建于2015-10-22 13:51:50
推送于2020-12-18 10:07:21
最后一次提交2018-07-31 09:29:51
发布数0
用户参与
星数493
关注者数22
派生数37
提交数142
已启用问题?
问题数21
打开的问题数7
拉请求数10
打开的拉请求数0
关闭的拉请求数1
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?