@ audio/decode-mod (英语)
解码跟踪器模块 — MOD, XM, S3M, IT, MPTM, 以及其他所有 双开 读取——到PCM浮标样本.
双开 编译为单文件的WASM ES模块——没有侧式文件,没有从任何CDN,节点,工人和音频Worldlets中加载.
import decode, { decoder, info } from '@audio/decode-mod'
let { channelData, sampleRate } = await decode(modBytes)
let meta = await info(modBytes)
// { title, artist, type, typeLong, tracker, message, duration, channels, patterns, orders, instruments, samples }
跟踪器模块是一个小程序(样板+图案+回放序列),而非原始
audio —— libopenmpt是使其产生它的搅拌器. 朗德·帕拉姆斯跟随利博恩普特的公众
消费物价指数libopenmpt/libopenmpt.h: openmpt_module_create_from_memory2, (中文(简体) ),
openmpt_module_read_float_{mono,stereo,quad}, (中文(简体) ), openmpt_module_set_render_paramA级
模块是整个文件,不是流 —— 没有有意义的部分解析
MOD/XM/S3M/IT,因此 decode() 总是需要完整的文件. repeat_count 固定为 0
(游戏一次); duration 是循环歌曲或其估计值的曲长上限
长度不切实际.
let { channelData } = await decode(bytes, {
sampleRate: 44100,
channels: 1, // mono / stereo / quad (L,R,RL,RR)
duration: 30, // seconds — cap for endless/looping songs
interpolation: 2, // 0 internal default, 1 hold, 2 linear, 4 cubic, 8 windowed sinc
stereoSeparation: 150, // percent, [0,200]
gain: -6, // dB
})
| 参数 | 默认 | |
|---|---|---|
sampleRate | 48000 | 产出抽样率,Hz |
channels | 2 | 1 单数, 2 立体声, 4 四( L, R, RL, RR) |
duration | libopenmpt的估计,上限为600s | 要渲染的秒; 无尽/ 洗涤歌曲的硬盖 |
interpolation | 8 | OPENMPT_MODULE_RENDER_INTERPOLATIONFILTER_LENGTH - 0个内部默认, 1个零顺序控住, 2个线性, 4个立方体, 8个窗形 sinc (8个自带) |
stereoSeparation | 100 | 百分比, [0,200] |
gain | —— 说 | 大师增益, dB |
API 密码
decode(src: Uint8Array | ArrayBuffer, opts?): Promise<AudioData>
给一个完整的模块.
info(src: Uint8Array | ArrayBuffer): Promise<ModuleInfo>
阅读标题/艺人/格式/期限/频道-和模式计数,不提供音频.
decoder(opts?): Promise<ModDecoder>
{ decode(chunk), flush(), free() }。 。 。 . decode(chunk) 期望(并使)完成
文件在一个调用中——一个模块无法从部分缓冲解析. flush() 返回时
空( 无东西结转 ) ; free() 是一个无操作( 无 WASM 状态比单人寿命长)
decode() 电话). 匹配 @audio/decode-qoa (英语)整个文件形状.
AudioData
{ channelData: Float32Array[], sampleRate: number }
页:1
- MO3(一个单独压缩的 OpenMPT 容器)不支持:它需要一个
外部
unmo3或捆绑的 midmp3/stb vorbis/miniz 倒置解码器,没有 (参见build.sh保持瓦斯姆小. - 除了 Libopenmpt 自己的混音器外, 没有音量- 压出/ 点击压制 —— 这就是 libopenmpt 的 工作,不是这个包.
- 格式引用 : ProTracker MOD 软件, (中文(简体) ), 快车手II XM, (中文(简体) ), 尖叫跟踪器 3 S3M, (中文(简体) ), 强制跟踪器IT; libopnmpt 属于自己的 CPI 文件。 。 。 .
使用时 : 在浏览器中播放回放跟踪器格式的芯片调/游戏音乐,或转换一个 .mod编号 :.xm编号 :.s3m编号 :.it 库为批量PCM/WAV.
部分 @ audio/ 代码 ——解码出家伞.
