dwsanitizerを公開しました

 FL StudioサンプラープラグインDirectWaveを活用しているユーザ向けの単機能CLIツールdwsanitizerを公開しました。
github.com
 といっても、コード見たらわかる通りmain関数にやっつけで記述できる程度のことしかしていません。
 

何をするツールか

 モノリシックdwpファイルから機微な情報を消去するユーティリティです。ここで言う「機微な情報」とはパス(Path)そのものやパスに含まれるユーザ名のことです。
※モノリシックdwpファイルとは、波形データを含んだdwpファイルです。単一ファイルに設定値や波形がすべて含まれるので、他のPCやFL Studio mobileが入ってるAndroid端末にコピーすれば同じ音色プログラムが再現できます。(モノリシックではない従来型dwpファイルの場合は、dwpファイルには設定値のみが記録され、別途wavファイルで波形データが保持されます。)

 モノリシックdwpファイルの場合は、前述の通り波形データを含んでいるので、波形ファイルを指すパスは記録している必要が無いのに記録されます。また、dwpファイル自身のパスも必要ないのに何故か記録されています。そして、デフォルトではDirectWaveのファイル保存先は、以下を使うようになっています。

C:\Users\%USERNAME%\Documents\Image-Line\DirectWave

 ここでは環境変数%USERNAME%で表現しましたが、dwpファイルには生の値が記録されています。これ、PCによってはユーザの実名だったり社員IDだったりしますよね。
 モノリシックdwpファイルをオンラインで共有したら、実名まで公開されてしまったでござる。みたいなことになりかねません。
 前述の通り、(私が見る限りでは)モノリシックdwpファイルにはこれらのパス情報は保持されている必要性がありませんので、削除*1するツールです。
 

注意事項

 dwpファイルはImageLineの独自フォーマットで、ファイルフォーマットは公開されていません。このため、やっつけで解析して、やっつけで実装したその場しのぎのアドホックな暫定ツールです。
 一切の動作保証はありません。ご使用になる場合は自己責任にてお試しください。
 私の環境では問題なく動作していますが、将来のFL StudioやDirectWaveのアップデートで互換性が失われる可能性があったり、そもそもファイルフォーマットが公開されていないので、プログラムが意図した処理にならない可能性もあります。データの損失や互換性を考慮し、オリジナルファイルは消去しないことをお勧めします。
 

ビルド方法・使い方

 READMEの通りです。WindowsFL Studioと併せてWSL環境で使うのが便利だと思います。
 

雑記

 サンプラーと言ってもかつてのAKAIで言うところのSシリーズとMPCシリーズのように、音階のある楽器音をターゲットにしたものと、単発のパーカッションやドラムループをターゲットにしたものとがありますが、DirectWaveは前者です。同種のソフトウェアサンプラーでも、HALIONやKONTAKT用の音源はよく見かけますが、個人が作成したDirectWave用の音源はあまり見かけません。
 ハードウェアの楽器を独自にサンプリングして、自力でDirectWave用音源作るユーザーが増えるといいなぁと思いつつこのツールを公開しました。ループポイントを自動で見つけてくれる機能が無い*2ことを除けばDirectWaveは優秀なサンプラーですよ!
 



以上。

*1:正確にはダミー文字"X"で上書き

*2:ちなみに、オープンソースLoopAuditioneer というツールを使用するとループポイントを探すのが楽になります。ループポイントが見つかったらWAVファイルにループマーカーを埋め込めるので、DirectWaveに読み込んだ際にもループポイントが反映できます。