logue SDKで作成したオシレータ等を試しに使ってもらうための方法として、ブラウザ上で動作する、シンセサイザのエミュレータ「logue SDK web simulator」を使う方法があります。これはKORGで開発されたもので、以前dtmstationで紹介されていました。当時はα版ということでしたが、その後正式なリリースされていないようです。

ユーザオシレータの6つのパラメータ、Shape、LFOが制御できます。シフトキー+ShapeでShift-Shapeパラメータの設定、シフトキー+LFOでLFO Rateの設定ができます。
このシミュレータがlogue SDKのalpha/wasm-buildsブランチに入っていることは、以前気がついていたのですが、中身までは調べていませんでした。
今回は、最近作成した自作のオシレーターをこのシミュレータ上で動かしてみてみましたので方法をメモしておきます。
このシミュレータはCのコードをemscriptenでWASMのコードにコンパイルし、ブラウザ上で動作させるものです。ArduBoyエミュレータや、MicroPythonのUnicorn版などと原理的には同じです。
ランタイムとして必要なファイル類は、すべて
logue-sdk/platform/ext/WAB/web
の中に入っています。このディレクトリの中身をWebサーバに置けば動作します。
ファイルを置くサーバは、HTTPSでアクセスできる必要があります。このシミュレータはブラウザからAudioWorkletにアクセスしますが、ブラウザのセキュリティ制約上、AudioWorkletを使用するにはコンテンツがHTTPSで配信されている(Secure Contextsでの利用である)ことが必要であるためです。
オシレータは、logue SDKのデモ用オシレータであるwavesが入っています。新しいオシレータを追加するには、オシレータをemscriptenでコンパイルし、生成されたjsファイルをサーバ上に置いて、logue-synth.jsのオシレータのリストに当該jsファイルのファイル名を追加します。
まず、ビルドツールとしてemscriptenをダウンロードします。ダウンロードするためのシェルスクリプトが
logue-sdk/tools/emscripten/
にありますので、これを実行します。(LinuxとOS Xのみサポートされています。)
logue SDKのサンプルオシレータでは、ビルドに必要なMakefileは用意されています。ビルドする手順は以下のようになります。
cd logue-sdk/platform/nutekt-digital/osc/tests/square
make wasm
これで、square_test.jsが生成されますので、これをWebサーバの
oscs/KORG/
にアップロードします。
オシレータを追加するためには、logue-synth.jsの編集が必要です。
oscDefsの値を以下のように変更します。
labelは画面上での表示名、manはjsファイルの置かれるディレクトリ、typeはdefaultTypeで使用する名称、codeはjsファイルのファイル名です。
編集したら、このファイルもWebサーバにアップロードします。
これで一応動作するのですが、メニューからデフォルト以外のオシレータを選択すると、音が出なくなってしまいます。(少なくとも私が試した限りでは・・・)ですので現状、初期設定の(上記でdefaultTypeに指定した)オシレータだけしか試せません。
自分で作成したオシレータをビルドする場合は、manifest.jsonやCのソースコードなど、プラットフォーム非依存のファイルを上記のサンプルオシレータのファイルと差し替えればビルドできます。(Makeファイルやld/、tpl/配下のファイルは変更されていますので、これらは差し替えてはいけません。)
先日作成したαJunoのDCOを模擬するオシレータを下記に置いてみました。フィルタもエンベロープもコーラスも無い、素のオシレータの音しか使えませんが、お試しください。
コメント