MusicXML ピアノロール エディタ (MusicXML Piano Roll Editor)

MusicXML 形式のボーカル譜を VS Code 内で視覚的に編集・再生し、AI 歌声合成ソフト「NEUTRINO」と連携できるカスタムエディタ拡張機能です。
外部のDAWを起動せずに、VS Code 上でメロディ作成、歌詞入力、オケ音源との同時再生、NEUTRINO による歌声合成、ピッチ・音素タイミングの調声を行えます。
主な機能
1. ピアノロールと楽譜編集
- 音高・長さ・タイミング編集: マウスのドラッグ操作でノートの配置、移動、長さの伸縮を行えます。
- 歌詞・ブレス入力: ノートのダブルクリックによる歌詞入力のほか、ひらがな歌詞の一括割り当てに対応しています。ブレス記号の入力も行えます。
- ノート編集操作: 範囲選択、全選択(
Ctrl+A)、コピー・切り取り・貼り付け(Ctrl+C / Ctrl+X / Ctrl+V)、即時削除(Ctrl+ダブルクリック)、アンドゥ/リドゥに対応しています。
- 画面ズーム:
Ctrl + マウスホイールまたはトラックパッドのピンチ操作で、時間軸の拡大・縮小を滑らかに行えます。
- XMLテキストとの相互切り替え: エディタ右上のボタンから、ピアノロール表示と MusicXML テキスト表示を切り替えられます。
2. Web Audio によるマルチトラック再生
- 内蔵シンセ音源: Web Audio API を用いたシンセ音源を内蔵しており、外部音源なしで即座に試聴できます。
- メトロノーム機能: ウッドブロック調のアタック音を採用し、オケや歌声と重ねても聞き取りやすいクリック音を再生します(
M キーで ON/OFF 切替)。
- ノイズ抑制と音量保護: 発音・停止時のクリックノイズを抑え、マスターリミッターとDCブロッキングフィルターを備えています。
3. サブMusicXMLトラックとゴーストノート表示
- マルチトラック楽譜表示: ハモリやコーラスなどのサブ MusicXML ファイルをトラックとして追加できます。エクスプローラーからのドラッグ&ドロップや、右クリックメニュー(「ピアノロールにトラック追加」)から追加可能です。
- ゴーストノート表示: サブトラックの音符を背景に半透明で表示し、音程の重なりを確認しながら主旋律を編集できます。
- トラックごとの独立制御: ミュート(M)、ソロ(S)、音量スライダーによる調整に対応しています。
4. 外部オーディオトラックの同時再生・波形表示・トリミング
- 伴奏音源の同時再生: WAV、MP3、M4A、FLAC、OGG、AAC などの音声ファイルを配置し、メロディと同期再生できます。
- 波形描画: タイムライン上に音声の波形を表示します。
- 先頭トリミングとオフセット調整: 波形の端をドラッグして曲頭の無音部分をトリミングし、再生開始タイミングを調整できます。
5. JavaScript による MIDI ファイル取り込み
- SMF 直接パース: 外部モジュールに依存せず、標準MIDIファイル(Format 0 / Format 1)を直接解析します。
- メロディ抽出: エクスプローラーで
.mid / .midi ファイルを右クリックして「ピアノロールへ送る(MIDIメロディ取込)」を選ぶか、エディタ上にドラッグ&ドロップするとノートデータに変換されます(エクスプローラー選択時に Alt+A でも取り込めます)。
6. NEUTRINO (AI歌声合成) 連携と調声
- 歌声合成の実行: メロディと歌詞から NEUTRINO を呼び出し、歌声WAVを生成します。
- 充実したピッチ調声ツールバー
- ペン(フリーハンド描画): ピッチ曲線を鉛筆ツールで自由に描けます。指数移動平均(EMA)による手ブレ補正を備えています。
- 消しゴム: ドラッグまたはクリックした区間を、合成直後の未編集ピッチへ戻します。
- 平滑化(Smooth): ドラッグした範囲のピッチカーブの急な揺れを整え、滑らかにします。
- ケロケロ(Robot / オートチューン): ピッチをノートの基準音階へ吸着させます。
- ビブラート(Vibrato): 周波数(Hz)と深さを指定して自然な揺らぎを付与します。
- 音素タイミング(Timing)編集
- 各音素の発声境界ラインをドラッグして、発音のタイミングや長さを直感的に調声できます。
- フレーズ差分合成: 変更のあったフレーズのみを自動で部分再合成し、編集作業をスムーズに進められます。
- ボイスモデル選択: MERROW、NAKUMO、REINA、RUNO、SOMA など、インストール済みのモデルをGUI上で自由に選択できます。
基本的な使い方
1. 新規楽譜の作成
- コマンドパレット(
Ctrl+Shift+P / Cmd+Shift+P)を開き、MusicXML: 新規楽譜を作成 を実行します(またはエクスプローラー右上のアイコンをクリックします)。
- 作成するファイル名(例:
MySong.musicxml)を入力すると、初期化された楽譜がピアノロールで開きます。
2. 既存ファイルの編集
- エクスプローラーで
.musicxml または .xml ファイルを開くと、ピアノロールエディタが表示されます。
- 右上の「表示切り替え(ピアノロール ⇄ XML)」アイコンをクリックすると、XMLソースコードと相互に切り替えられます。
3. ノート・メロディ編集
- ノートの追加: グリッドの空いているマスを左クリックします。
- 音高・位置変更: ノート中央をドラッグして移動します。
- 長さ変更: ノートの右端を左右にドラッグして伸縮します。
- 歌詞の入力: ノートをダブルクリックして歌詞(ひらがな)を入力するか、ツールバーの「歌詞一括入力」を使用します。
- ブレス記号: ノート上で右クリック(またはツールバーのブレスモード)からブレスの有無を設定します。
- コピー&ペースト: ノートを選択して
Ctrl+C でコピーし、Ctrl+V で貼り付けます。
- 削除: ノートを選択して
Delete キーを押すか、Ctrl キーを押しながらノートをダブルクリックします。
- ズーム操作:
Ctrl + マウスホイールで時間軸を拡大・縮小できます。
4. 再生コントロール
Space キー: 再生 / 一時停止
Enter キー: 曲の先頭(0小節目)へ巻き戻し
M キー: メトロノームの ON / OFF 切り替え
- ルーラー(小節番号領域)をクリック: 再生ヘッドの移動(シーク)
- ループ再生: ツールバーのループボタンで指定範囲を繰り返し再生します。
5. トラックの追加
- サブMusicXML: エクスプローラーの
.musicxml をタイムラインにドラッグ&ドロップするか、右クリックメニュー(「ピアノロールにトラック追加」)、またはトラックエリア上部の「+」ボタンから追加します。
- 伴奏オーディオ: 伴奏ファイルをタイムラインにドラッグ&ドロップします(VS Codeのエクスプローラーからは
Shift キーを押しながらドロップします)。
NEUTRINO 歌声合成の設定
NEUTRINO を利用する場合は、あらかじめ公式サイトから NEUTRINO をダウンロードして配置してください。
1. エディタ画面の設定ボタンから行う場合(推奨)
ツールバー左端の 「環境設定(歯車アイコン)」 をクリックすると、設定モーダルが表示されます。
- NEUTRINO本体フォルダ: 「参照...」ボタンから NEUTRINO のルートフォルダ(
bin や model があるフォルダ)を選択します。
- メインライブラリ: 検出された音声ライブラリ(ボイスモデル:
MERROW, NAKUMO, REINA など)をプルダウンから選択します。
- サポートライブラリ: 歌い方やスタイルのサポートモデルを使用する場合はプルダウンから選択します(なしも可)。
- リアルタイム自動合成: 調声編集時(ピッチ・音素タイミング)に差分フレーズを自動再合成するかをスイッチで切り替えられます。
- 保存: 「保存する」をクリックすると設定が即時反映・保存されます。
2. VS Code の設定画面から行う場合
VS Code の設定(Ctrl+, / Cmd+,)を開き、検索バーに musicxml と入力して設定することも可能です。
musicxml.neutrinoPath: NEUTRINO のルートフォルダの絶対パスを指定します。
musicxml.defaultVoiceModel: 使用するデフォルトの歌声モデル名を指定します。
musicxml.defaultSupportModel: サポートモデル名を指定します。
※パスが未設定の状態でエディタから歌声合成を実行した場合は、自動でフォルダ選択ダイアログが表示されます。
3. 合成と調声の実行
- ツールバーの 「NEUTRINO」 ボタンをクリックし、「最初から生成」 を実行します(約10〜15秒で歌声WAVが生成されます)。
- 合成完了後、ツールバーの「ピッチ編集」や「タイミング編集」を有効にすると、ピッチ曲線や音素境界が表示され、マウスで直感的に調声できます。
拡張機能の設定項目
| 設定キー |
デフォルト値 |
説明 |
musicxml.neutrinoPath |
"" |
NEUTRINO インストールフォルダの絶対パス |
musicxml.defaultVoiceModel |
"MERROW" |
デフォルトで使用する歌声モデル名 |
musicxml.defaultSupportModel |
"" |
サポートモデル(スタイル指定)を使用する場合のモデル名 |
主なショートカットキー
| キー操作 |
動作 |
Space |
再生 / 一時停止 |
Enter |
曲の先頭へ巻き戻し |
M |
メトロノームの ON / OFF 切り替え |
Delete / Backspace |
選択中のノートを削除 |
Ctrl + A / Cmd + A |
すべてのノートを選択 |
Ctrl + C / Cmd + C |
選択中のノートをコピー |
Ctrl + X / Cmd + X |
選択中のノートを切り取り |
Ctrl + V / Cmd + V |
コピーしたノートを貼り付け |
Ctrl + Z / Cmd + Z |
元に戻す (Undo) |
Ctrl + Y / Cmd + Shift + Z |
やり直す (Redo) |
Ctrl + S / Cmd + S |
楽譜を保存 |
Ctrl + Click / Cmd + Click |
ノートの複数選択(追加・解除) |
Ctrl + Double Click |
ノートの即時削除 |
Ctrl + マウスホイール |
時間軸(横方向)の拡大 / 縮小 |
Alt + A (エクスプローラー選択時) |
選択した MIDI ファイルをピアノロールへ取り込み |
動作環境
- Visual Studio Code: 1.70.0 以上
- 対応OS: Windows / macOS / Linux
- 依存環境: 純JavaScript(Node.js / Webview)で動作するため、基本編集・MIDIインポート・Web Audio再生は追加の実行環境なしで動作します。
- 歌声合成エンジン: NEUTRINO – Muon (v2.x) / Tau (v3.x) 系列(推奨: 最新の Tau シリーズ)
※ v2.x 以降の統合推論パイプラインに対応しています(初期の v1.x Electron 世代の個別ボコーダー呼び出し構成には未対応です)。
ライセンス
MIT License (c) 2026 ref33
| |