このプロジェクトについて

S-MU2000は、ヤマハMU2000をモデルにしたオープンソースのソフトウェア音源で、DAW内でプラグインとして動作します。内部(SH7043 CPUと2つのSWP30音源チップ)をエミュレートし、本物のファームウェアを変更せずに実行するため、音色と動作は実機に由来します。非公式プロジェクトであり、ヤマハとは無関係です。 現在の状態:WindowsではVST3とCLAP、macOS(Appleシリコン)ではVST3とAudio Unit(AUv2)として動作し、ハードウェア風の前面パネル画面とマウス・キーボード用エディタウィンドウを備えています。Linux版のGUI、VST3、CLAPは第三者が提供しましたが、作者はテストやサポートはできないと述べています。 ROMはリポジトリやリリースに含まれていません。ユーザーは自分のMU2000から4MBのプログラムROMと32MBのウェーブROMを抽出する必要があります。抽出手順とツールはdoc/dump/に文書化されています。プロジェクトは、ダンプしたROMイメージ、変更したファームウェア、カスタム.ydlファイルを再配布したり、Issue、PR、ディスカッション、リリースに投稿しないよう明示的に求めています。プログラムROMは、ヤマハが公開しているアップデータから再構築することもできます。 音質は、実機をS/PDIFで録音し、1/3オクターブ帯域で比較して確認されています:C4の1225のXGボイスのうち、1109が1.5dB以内で一致し、残り116のうち60は、ハードウェア間の再録音でも同程度のばらつきがあります。パフォーマンスモード、リバーブ/コーラスタイプ、コントローラ、ドラムごとのNRPN、マルチEQ、128ボイスを超えるボイススティーリングもカバーされています。残りの不一致はdoc/todo.mdに追跡されています。 SH2とMEG命令をマシンコードに変換するJITが含まれており、16パートのテスト曲では、Ryzen 7 9700XでCPU使用率は実時間の約22%です。LCDはファームウェアが描画する内容をレンダリングし、ボタンとダイヤルはクリック可能です。独自のクロックを持ちDAWから駆動されると遅延が蓄積するMAMEとは異なり、このソフトシンセはホストのオーディオコールバックによって駆動されます。 ツールには、gui(パネル、エディタ、エフェクトウィンドウ)、live(画面なしのMIDI入力)、render(MIDIからWAVへ)、panel(テキストのみのパネル駆動)、boot、statetest、blocktime、midisend、recが含まれます。MIDI入力は4ポートA〜D(64パート)で、--host-midiによるDINポートモードと、ポートごとに選択可能なTHRUがあります。バッテリーバックアップRAM設定は%LOCALAPPDATA%\S-MU2000\nvram\に保存されます。プラグインはその領域を読み取り、変更をDAWプロジェクトに保持します。パートボリューム、フィルタ、EG、EQ、マスターEQは、VST3/CLAPで名前付きオートメーションパラメータとして公開されています。 測定されたエンドツーエンドのレイテンシは、排他モードで117msから16ms、共有モードで50msに改善されました。READMEは共有モードでの38msの下限に言及し、--latency 10を推奨しています。インターフェース側のバッファサイズとサンプルレート(44100)も重要です。 ビルドには、WindowsではMSYS2/MinGW-w64でC++20、macOSではApple clang++、Linuxではg++が必要です。make testで回帰テストを実行します。ROMを必要としないサブセットも含まれます。コアチップ実装はBSD-3-ClauseライセンスのMAMEデバイスファイルから取得されていますが、MAME自体はリンクされていません。VST3インターフェース定義(MIT)、CLAPヘッダ(MIT)、Dear ImGui(MIT)は変更せずにインポートされています。リポジトリ独自のコードはBSD-3-Clauseで、NOTICE.txtに帰属が記載されています。MAMEのSWP30で見つかったバグはハードウェア測定に基づいて修正され、上流に提出されており、複数のPRがマージされ、他はレビュー中です。