VSTi rgc:audio sfz(SoundFont Player)

SoundFontをサンプラーのTX16Wxでいじっていて、再生だけのプレーヤーも欲しくなり漁っていたら、意外と存在しないことに気づく。GM音源のsf2を扱えるようなプレーヤーがない、ない、ない。あっても大抵古くて不安定だったり、音がおかしくなったり、マルチティンバーでなかったり。結局Cakewalkと一番親和性の高いsfzに落ち着く。このsfzはCakewalk公式からダウンロードできなくなっていたし、VST2で32bitの仕様なので現在のCakewalkでは動かないものと思っていた。そしたら一番安定して動くSoundFontプレーヤーだったというオチ。これの上位版のsfz+というものもあるのだが、エディット機能があるだけで、そういうことはTX16Wxを使うので、より簡便なsfzがよい。なんか15年ぐらい遅れているような気がする・・・



インプレッション

ちゃんとオートメーションできる

実際使うとなるとオートメーションは重要。よく使うExpression、Bend、Panなどは問題なくできた。あと使わないけどReverbとChorusも調整可能。なんなら ADSRとかCutoffもできそうなので、シンセ的な音を扱いたいときには便利かもしれない。

使い勝手が良い

右クリックで次、左クリックで前とか、一覧が出たりとか、ドラッグ&ドロップとか、簡素なインターフェイスに似合わず、ストレスなく作業ができる。

比較的安定

他のSoundFontプレーヤーと比較すると、最も安定して再生できた。それでもたまに音が出なかったりするときもあるけど、大抵はプラグイン再起動ぐらいで正常に戻る。とりあえず10MB以内の小ぶりのSoundFontを扱っている分にはストレスフリー。


ダウンロードとインストール

入手先は検索するといくつか、ダウンロードできるサイトが見つかると思う。 中身はVST2のdllなので、Cakewalkの場合は、Cakewalkフォルダ内のVstPluginsフォルダの中にdllを入れるだけで完了。


使い方

インストゥルメントVSTとしてDAWに読み込んで、FILEから使いたいSoundFontを選択して読み込む。Channel、Bank、Programでパッチを選択して使用する。マルチティンバーなので、他の複数のMIDIトラックから扱うことも可能。最大16チャンネル。


各要素の概要

選択項目がいくつかあるが、意味不明だったので調べた内容を書いておく。

MODE

MODE CPU負荷 RAM容量 備考
SF32 ファイル全体をメモリにロードし、32bitに変換。ファイルの約2.5倍のメモリ量が必要。
SF16 ファイル全体をメモリにロードし、16bitで使用。リアルタイムに変換するのでCPU負荷が上がる。
PR32 プリセットに必要なサンプルのみメモリにロードし、32bitに変換。再生中にプログラムを変更すると、クリックが発生する可能性あり。
PR16 プリセットに必要なサンプルのみメモリにロードし、16bitで使用。リアルタイムに変換するのでCPU負荷が上がる。メモリをあまり消費しない。
DFD 微小 サンプルをメモリにロードせずに、ディスクから直接再生。メモリを最も消費しない。ロード時間も短い。


QUALITY

draft(標準)08、12、16、24、36、48、60、72
数値が大きいほど高音質となっている。高音質になるほどCPU負荷が増す。

POLY

同時発音数の上限を設定できる。1~256までステップで選択できる。

EFFECTS

sfzにはリバーブとコーラスが内蔵されているので、それのON/OFFが可能。すべてのチャンネルに適用されるようだ。レベルなどはMIDIのCCから行う。

V L

Vは、VOICES。発音しているボイス数をカウントしてくれる。
Lは、LAYERS。レイヤーされていないパッチであればVと変わらないが、レイヤーされていると、その分数が増える。純粋に鳴らしているサンプル数ということ。CPU負荷はLで見るとよいと思う。今どきのPCでは、こんな細かいことは気にしなくていいが。


読込ファイルについて

SoundFontは、sf2だけでなく、sfzも扱える。sfzは、定義が書かれたテキスト(拡張子sfz)と音声ファイルで構成されている。
直接読み込める音声ファイルフォーマットは、wav、ogg。
扱えるサンプルレートは、22k、32k、44.1k、48k、88.2k、96k、192k、384k。


MIDIコントロール

オートメーションもしくはCCなどで利用できるかどうかチェックしてみた。下はCakewalkのオートメーションから見えるCC。


Pitch Bend

デフォルトだと±2なので全音は可能。これ以上の可変させたい場合はRPNで設定を変更すると思うのだが失敗。そういう仕様的なことが書かれたドキュメントがないので、そもそも出来るかどうかがわからない。

Expression (CC11)

これは問題なく機能。

Pan (CC10)

これも問題ない。

Cakewalkのオートメーションから見えるパラメータは問題なく使えそうだ。それ以外のMIDIコントロールは、そもそも何が対応しているのか不明のため、うまく扱えなかった。



マルチティンバーとして使ってみる

別の複数のMIDIトラックから、問題なく音を鳴らせるかチェックしてみた。まず2個sfzを起動しているとノイズが出てしまう。これは昔から有名な現象らしい。対策としては起動したい数だけdllを複製して使うようだ。 個人的には、そこまで使わないので、とりあえず、下のようにsfzを1個とMIDIトラックを6個作って、sfzを鳴らしてみた。


CakewalkではPatch Browserを使うといいかも

MIDIトラックからsfzをセットすると、Channelは1~16:sfzはあるが、Bankは「0-bank 0」しか見えない。さらにPatchは「---」となってしまう。 Channelは重要なので、しっかりセットしておく。

それでもPatch名は見えなくてもGMレベル1の範囲は選択できる。 問題はドラムやGMレベル1以外の音色を使おうとすると、いろいろ見えなくて不自由すること。 そこで下のインスペクタの下の方にあるPatch Browserをクリックする。

するとウィンドウが開く。ここではGS音源準拠のSoundFontを使っているので、それらしき「Roland GS」を選択すると、音色名を見ながらPatchを選択できるようになる。 困った点としてはパッチブラウザを閉じてしまうと、今現在何を選択しているか分からないということ。トラック名に書いておくしかなさそうだ。


謎だったのはドラムセットの選択方法で、SoundFontのつくり方から来ていると思うのだが、パッチブラウザで選べる「Roland GS Drumsets」ではだめで、なぜか「Yamaha XG Drum Kits」で選択できるようになった。 SoundFontの中身をチェックしないと何が起きているか分からない。そもそもこのパッチブラウザの定義ファイルが、どこにあるのかも謎だった。 まぁ、それでもマルチティンバー音源として扱うことはできた。