Studio Moo inst音源クリック合わせ — ソース・ビルド情報 アプリの実行方法 source.tar.gz を展開し、Python 3等の静的HTTPサーバーで dist/ を配信します。 例: python3 -m http.server 8770 --bind 127.0.0.1 --directory dist npm installやライブラリの再生成はアプリの通常起動には不要です。 dist/vendor の実行ライブラリは公式配布のままです。今回更新していません。 確認済みの配布元 essentia.js 0.1.3(公式npm) https://registry.npmjs.org/essentia.js/-/essentia.js-0.1.3.tgz npm gitHead: f46c91c08bdf263d5f3d575ab8fb0f9b81695acf https://github.com/MTG/essentia.js/tree/f46c91c08bdf263d5f3d575ab8fb0f9b81695acf この配布の dist/essentia.js-core.es.js と dist/essentia-wasm.es.js が、 アプリの essentia-core.js / essentia-wasm.js と完全一致しました。 npmのSHA-512 integrityも検証済みです。provenance.jsonに記録しています。 収録した上流ソース third-party/essentia-js-0.1.3/ に上記commitのsrc一式(TypeScript/C++ bindings)、 Makefile.essentiajs、Dockerfile、build-libs.sh、rollup設定、package.json、 テスト、LICENSE、AUTHORS、README等を収録しています。 third-party/essentia-js-0.1.3-npm.tgz は公式配布物の未変更コピーです。 third-party/eigen/eigen-3.3.7.tar.gz は上流Dockerfileが指定する公式ソースです。 上流の生成手順(未実行・同一バイナリ再現は未検証) 上流Dockerfileの既定Emscriptenは1.39.19、Eigenは3.3.7です。 Essentiaを --build-static --fft=KISS --emscripten --static-dependencies でビルド。 build-libs.sh が npm run gen-code → npm run build-wasm → npm install → npm run build-js-api 等を実行します。 Makefile.essentiajs はC++ bindingsとEssentia静的ライブラリをemccでリンクし、 SINGLE_FILE=1でWASMをJSに埋め込み、ES module用のpost-jsを追加します。 実際の引数・Python依存・rollup手順は収録した原本を参照してください。 上流test/dataの音源フィクスチャは配布サイズ抑制のため収録していません。 上流テストを実行する場合は上記commitのtest/dataを別途取得してください。 アプリの生成・実行にはこれらのテスト音源は不要です。 未確定事項(完全な対応ソース提供・ライセンス対応完了とは断定していません) 同梱WASMの内部文字列はEssentia 2.1-beta6-devです。 ただし上流DockerfileはEssentia本体をcommit固定なしでgit cloneし、 上流CIもmtgupf/essentia-emscripten:latestを使っています。 npm metadataにも本体の正確なcommitと当時のDocker digestはありません。 このため同梱WASMに対応するEssentia本体C++ソースの正確な版を確定できず、 異なる版のソースを対応ソースであるかのように収録していません。 本体上流: https://github.com/MTG/essentia 条件案内: https://essentia.upf.edu/licensing_information.html 追加対応: 配布元MTGに0.1.3のEssentia本体commit、ビルド環境、依存物一覧と 対応ソースを確認し、該当ソース・全通知を補完する必要があります。 配布元への連絡はまだ行っていません。 KISS/Eigenの通知は補完しましたが、同梱WASMの依存物の網羅性や、 現行上流KISS通知と当時の版の一致も未確認です。 新しいライブラリへ差し替えていません。解析・クリック・WAV出力は維持しています。