pxtoneCollageで作成された音楽ファイル(.ptcop)を ブラウザ上でデコード・再生できるようにしたものです。
libmpxtnというC言語で書かれたpxtoneCollageのデコーダをWebAssemblyにコンパイルし、 それを利用してWebページ上でデコード・再生を可能にしています。 再生には現状audio-feeder用の Float32Arrayの出力をサポートしています。
TODO: 後日Github Pagesにつくりなおす
-
WebAssemblyをサポートするブラウザ(ES6 classも使ってます)
-
参考: Can I Use?
libmpxtn.min.js
とlibmpxtn.wasm
をサーバに配置して、HTMLに以下を加えます。
<script src="libmpxtn.min.js"></script>
javascriptからlibmpxtnのインスタンスを作り出します。
引数は順に確保するメモリ
、mpxtn_vomit系で使用するバッファサイズ
、wasmのパス
です。
let mpxtn = new libmpxtn(33554432, 4096, "libmpxtn.wasm");
あとはwasmをロードすれば各種のメソッドが使えるようになります。
mpxtn.load_wasm().then(results => {
const total = mpxtn.mpxtn_get_total_samples();
...
});
- Javascript
- MIT
ogg/vorbisのデコードはlibogg、libvorbisのソースを利用しています。 また、ogg/vorbisで使用されているmathやsortのCライブラリはmusl libcのソースを利用しています。