MPC-NE (開発中)

初めに

MPC-NE GUI

MPC-NE (Media Player Classic - Noriya Edition) は、動画・音声ファイルの再生に特化した Windows 向けメディアプレーヤーです。ASIOWASAPI 排他モードの両方に対応し、サウンドカード/DAC の能力を引き出す bit-perfect 再生を狙います。

軽量で、ファイルを開いてすぐ鳴らせること、出力経路 (ASIO / WASAPI 排他 / WASAPI 共有) を明示的に選べること、そして A/V 同期の崩れにくい動画再生を、ひとつのアプリで両立させることを目指しています。

名称は Media Player Classic 系列 (MPC / MPC-HC / MPC-BE) の命名にあやかったものですが、本ソフトウェアはそれらのプロジェクトとは一切関係がなく、公式な派生版・後継版・エディション違いではありません。各プロジェクトおよびその開発者から承認・提携・後援を受けたものでもありません。また、MPC-BE をはじめとする上記プロジェクトのソースコードは一切使用しておらず、本ソフトウェアは C# (WPF) を用いてゼロから新規開発したものです。再生処理には FFmpeg / NAudio 等のライブラリを利用しています。"Media Player Classic"、"MPC-HC"、"MPC-BE" 等の名称は、それぞれの権利者に帰属します。

目次

  1. 主な特徴
  2. 動作環境
  3. 配布ファイル
  4. 対応フォーマット
  5. 使い方
    1. ファイルを開く
    2. トランスポートバー
    3. 動画領域の操作
    4. メニュー構成
      1. ファイル
      2. 表示
      3. 出力
      4. 言語
      5. ヘルプ
    5. 出力モードの違い (ASIO / WASAPI 排他 / WASAPI 共有)
    6. ASIO 設定
    7. キーボードショートカット
  6. ユーザーデータ
  7. 動作確認について
  8. 免責事項
  9. 使用ライブラリ
  10. 商標について
  11. 更新履歴
  12. 開発者情報

主な特徴

ASIO ネイティブ再生 (bit-perfect)
ASIO ドライバーを通して、ファイルのサンプリングレート (44.1kHz / 48kHz / 96kHz / 192kHz など) をそのまま DAC に送り出します。ファイルごとにレートを自動で切替えます。音量を 100% にしているときは、ボリューム処理を一切通さずに送り出すので、CD / ハイレゾの音声データを 1 ビットも変えずに DAC に届けます。
ASIO リサンプル再生 (高速トラック切替)
ASIO ドライバーを 1 つのサンプリングレート (既定 48kHz) に固定し、ファイルのほうを内部で揃えて送る方式です。ネイティブ再生だと曲を切替える度に発生する「ドライバー再初期化と DAC のウォームアップ」を省けるため、次のファイルを開いてから音が出るまでの待ち時間が数秒短くなります。ネイティブ / リサンプルはメニューから即切替できます。
WASAPI 排他モード
Windows のサウンドミキサーを介さず、選んだ出力デバイスを MPC-NE が独占して書き込みます。レート変換 / 音量調整 / 他アプリの音をすべて回避するため、bit-perfect 再生になります。事前にデバイスの対応フォーマットを確認してから掴むので、対応外のレートでエラー終了するリスクが下がります。
WASAPI 共有モード
標準的な Windows サウンドミキサーを通る経路です。他のアプリと同時に音を鳴らしたい場合や、ASIO / 排他で掴めなかった場合の代替として使えます。
3 系統の出力を 1 メニューに統合
「出力」メニューに ASIO / WASAPI 排他 / WASAPI 共有 が並び、それぞれの中にシステムが認識しているドライバー / 出力デバイスが列挙されます。選んだ瞬間に再生中の音もそのまま切替わるので、同じ曲を別経路で鳴らし比べる試聴が直感的に行えます。他アプリがドライバーを掴んでいるなどで目的の出力に切替えられない場合は、自動的に WASAPI 共有 (既定のデバイス) で再生を継続し、ステータスバーに「(共有にフォールバック中)」と表示します。
DSD 再生 (PCM 変換)
DSD64 / DSD128 (.dsf / .dff) を FFmpeg のデコーダで 176.4kHz の PCM に変換して再生します。DSD ネイティブ出力 / DoP 出力には対応していません。
音声ファイルのジャケット画像表示
FLAC / MP3 / M4A 等にジャケット画像が埋め込まれていれば、自動で取り出して画面に表示します。ジャケットが埋め込まれていないファイルでは、EXE と同じフォルダの default-cover.png (同梱の MPC-NE ロゴ画像) を代わりに表示します。同名ファイルを別の画像に置き換えれば、その画像が表示されます (アプリ再起動で反映)。
音声ファイル時の固定ウィンドウサイズ
音声ファイル (映像なしの音楽ファイル等) を開いたときは、ウィンドウサイズが 640×480 に固定されます。曲を切替える度にウィンドウサイズが変動しない、落ち着いた挙動になります。
ハードウェアデコードによる動画再生 (D3D11VA)
GPU の動画デコード機能 (D3D11VA) を利用して、CPU を温存しながら 4K / 高ビットレート動画を再生します。デコード結果を GPU の中で直接表示用に渡すため、CPU メモリへのコピーが発生せず、重い動画でも CPU 負荷が軽く済みます。
カクつきの少ない動画描画
動画の描画タイミングをディスプレイのリフレッシュと直接同期させる経路を持っています。WPF 標準の描画経路では発生しがちな細かいカクつき (judder) を抑え、24p / 30p / 60p のどれでも滑らかな映像で再生します。
音声を主とした A/V 同期
音声を時計の主役とし、動画フレームの表示タイミングをそれに合わせて取り出す設計です。動画側の小さなタイミング揺れに音がつられないので、聴感優先で同期します。
ソフトボリューム (bit-perfect を保持)
音量を 100% にしているときは、ボリューム処理を一切通さない完全な bypass = bit-perfect です。それ以外の音量では、出力経路ごとに最適な方法で音量を下げます。スライダー / マウスホイール / ホットキー / 画面オーバーレイ (OSD) で素早く調整できます。
キーボードショートカットの完全カスタマイズ
再生 / 停止・ミュート・シーク・音量・全画面など主要操作はすべてキー割当を変更できます。重複した割当は登録時に警告ダイアログで弾くため、後から「効かないキー」に悩むことがありません。
テーマ (ライト / ダーク / システム追従)
Windows 11 風の Fluent デザインで、ライト / ダーク / システム設定追従を実行時に切替えできます。既定はダーク (メディアプレーヤー向けの黒基調)。
初期表示モード
動画を開いたときの初期ウィンドウサイズを「映像実寸」「画面縦に合わせる」「全画面表示」から選べます (既定は「画面縦に合わせる」)。DVD などで使われる非正方形画素 (横長/縦長ピクセル) も正しいアスペクト比で表示します。
常に手前に表示
他のウィンドウの上に重ねたままにできます。動画を流しっぱなしにする使い方で便利。
ポータブル設定 (USB 持ち運び可)
設定ファイルは EXE と同じフォルダの settings.json に保存されるため、USB メモリにフォルダごと入れて持ち運べます。書き込み不可な場所 (Program Files 配下など) にインストールされた場合は自動で %AppData%\MPC-NE\ にフォールバックします。
二重起動防止 + ドラッグ&ドロップ
既に起動中の場合は警告ダイアログを出して終了します (サイレント拒否しません)。ウィンドウへのファイルドラッグ&ドロップで開けます。
日英バイリンガル UI
メニューから日本語 / English を切替可能。OS の言語設定から初期言語を自動判定します。

動作環境

配布ファイル

準備中です。リリース後にこの場所に ZIP ファイルへのリンクを掲載します。

対応フォーマット

音声ファイル
.wav / .w64 / .flac / .mp3 / .m4a / .m4b / .aac / .ogg / .oga / .opus / .wma / .dsf / .dff / .ape / .aif / .aiff / .tak / .wv / .tta / .mka
動画コンテナ
.mp4 / .m4v / .mkv / .webm / .avi / .mov / .wmv / .flv / .ts / .m2ts / .mts / .mpg / .mpeg / .vob / .ogv / .3gp
サンプルレート / ビット深度
FFmpeg が読めるものはすべて読みます (44.1k / 48k / 88.2k / 96k / 176.4k / 192k / 352.8k / 384k、16bit / 24bit / 32bit int / 32bit float など)。実際に出せる組合せは選択中の出力経路 (ASIO / WASAPI 排他 / WASAPI 共有) と接続中の DAC / ドライバーの能力に依存します。ステータスバーの「Format」欄に現在の出力フォーマットが表示されます。
DSD
.dsf / .dff (DSD64 / DSD128) は 176.4kHz PCM に変換して再生します。ネイティブ DSD / DoP 出力は非対応です。

※ コンテナ拡張子は「開ける」かどうかの判定に使うリストで、内部のコーデックは FFmpeg が処理します。一覧にない拡張子はファイルダイアログとドラッグ&ドロップの両方で除外されます。

使い方

ダウンロードしたファイル群を全て同じフォルダに配置してください。そして MPC-NE.exe を実行してください。

ファイルを開く

以下のいずれかの方法でファイルを開けます。

トランスポートバー

ウィンドウ下部のバーから、再生に関する基本操作が行えます。

開く / 再生 / 一時停止 / 停止
ファイルダイアログを開く、現在のファイルを再生する、一時停止する、停止 (先頭位置に戻す) する操作を行います。
音量ボタン (ミュート切替)
クリックでミュート ON / OFF を切替えます。ミュート中はアイコンが切替表示され、解除すると元の音量に戻ります。
音量スライダー
0% 〜 100% の範囲でソフトボリュームを調整します。100% のときは bit-perfect (完全 bypass)。スライダー上でマウスホイールを回しても変更可能です。
シークスライダー
再生位置をドラッグ / クリックで移動します。スライダー上のクリック位置に直接ジャンプします (IsMoveToPointEnabled)。
時刻ラベル
現在位置 / 全体時間を 00:00 / 00:00 形式で表示します。

ウィンドウ最下段のステータスバーには、左から「状態 (待機 / 再生中 / 一時停止 / 停止 / エラー)」「出力 (現在使用中の出力経路名)」「映像 (解像度・fps・コーデック)」「フォーマット (出力サンプルレート・ビット深度)」が表示されます。

動画領域の操作

マウスホイール
動画領域上でホイールを回すと音量を上下できます。
ダブルクリック
全画面表示と通常表示を切替えます (キーボードの「全画面切替」ショートカットと同等)。
音量オーバーレイ (OSD)
音量を変更すると、動画領域の左下に半透明の表示で現在の音量値が短時間出ます (自動フェードアウト)。全画面表示中でも見えます。
開く...
音声 / 動画ファイルを選ぶダイアログを開きます。対応拡張子のフィルタが自動で適用されます。
ショートカットキー設定...
ショートカットキー設定ダイアログ
キーボードショートカットの一覧を表示し、各アクションのキー割当を変更できます。空欄をクリックして任意のキーを押すと登録、「既定」で出荷時設定に戻し、「クリア」で割当を外せます。他のアクションと重複するキーを割り当てようとすると警告ダイアログで阻止されるので、後から「効かないキー」を生む事故が起きません。
終了
アプリケーションを終了します。設定は自動保存されます。
読み込み時の初期表示 → 映像実寸 / 画面縦に合わせる / 全画面表示
動画ファイルを開いたときの初期ウィンドウサイズを切替えます。 音声ファイル時はこの設定は無視されます。
テーマ → システム設定に追従 / ライト / ダーク
WPF Fluent ThemeMode を切替えます。設定はアプリ間で永続化されます。既定はダーク。
常に手前に表示
ON にすると他のウィンドウの前に常に表示されます。

システムが認識している出力先がカテゴリごとに列挙されます。クリックすると即座にその経路へ切替わります (再生中なら音もそのまま続行)。

ASIO → (検出されたドライバー一覧) / ASIO 設定...
PC にインストールされている ASIO ドライバーが列挙されます。「ASIO 設定...」でモード (Native / Resample) や DAC margin を調整できます (後述)。ASIO ドライバーが見つからない場合は「(ASIO ドライバーなし)」と表示されます。
WASAPI 排他 → (各エンドポイント)
Windows が認識しているレンダーエンドポイントごとに、排他モードで掴むエントリが並びます。
WASAPI 共有 → 既定のデバイス / (各エンドポイント)
「既定のデバイス」を選ぶと、Windows のシステム既定デバイスの変更に追従します。個別エンドポイントを選べばその端子に固定。
日本語 / English
UI の表示言語を切替えます。設定はアプリ間で永続化されます。
ReadMe
このページ (noriya.info の MPC-NE ReadMe) を既定のブラウザで開きます。
バージョン情報
本アプリのバージョンと配布元サイト (noriya.info) へのリンクを表示します。

出力モードの違い (ASIO / WASAPI 排他 / WASAPI 共有)

ASIO (ネイティブ)
もっとも素直な bit-perfect 経路です。ファイルのサンプルレートをそのままドライバーに渡し、ドライバーが DAC を再構成します。レートが変わる度にドライバーの再初期化が走るため、次のファイルを開いてから音が出るまでに 1〜数秒の "暖機時間" が掛かります。音質最優先で 1 曲ずつじっくり聴く用途向け。
ASIO (リサンプル)
ドライバーを固定レート (既定 48kHz) で 1 回だけ初期化し、ファイルのほうを内部で揃える方式です。bit-perfect は崩れますが、ドライバーの再初期化と DAC 暖機を省けるため、次のファイルを開いてからの待ち時間が体感ゼロ秒になります。気軽に次々ファイルを切替える用途向け。既定はこちらです。
WASAPI 排他
Windows のサウンドミキサーを介さず、選んだ出力デバイスに排他で書き込みます。ASIO ドライバーを持たない DAC でも bit-perfect を狙えるのが利点です。デバイスが受け付けないサンプルレート / ビット深度の組合せを選んでしまうとエラー停止するため、再生開始前にデバイスへ問い合わせて鳴らせる形式を確認してから掴みます。サンプルレートによっては ASIO より相性が良い場合もあります。
WASAPI 共有
Windows 標準の共有ミキサー経由。他のアプリと同時に音を鳴らせます。Windows がソースをデバイスのフォーマットにリサンプルするため厳密な bit-perfect ではありませんが、もっとも互換性が高い経路で、ASIO / 排他で掴めなかった場合の代替としても使われます。

ASIO 設定

「出力 → ASIO → ASIO 設定...」で開くダイアログでは、以下を調整できます。

ASIO 再生モード (Native / Resample)
上述の通り。設定変更は次回のファイル再生から反映されます。
リサンプル出力レート
Resample モードのときにドライバーを初期化するサンプルレート。既定は 48000Hz。ドライバーが要求レートを受け付けない場合は Native モードと同じ "同系列フォールバック" (例: 48k 不可 → 96k 試行) が走ります。
再生開始までの無音保持時間 (ネイティブモード用 / 0〜3000ms)
ASIO ネイティブモード時のみ有効な設定です (リサンプルモードではドライバー再初期化が起きないため使われません)。ネイティブモードではファイル毎にドライバーが再初期化されますが、再初期化が終わった直後はハードウェア DAC 側の立ち上がりがまだ完了しておらず、実際の音が鳴らないことがあります (Steinberg 系で顕著)。この値は、ドライバー安定検出後に追加で確保する無音時間です。頭切れが起きる場合は大きく開始が遅すぎる場合は小さく調整してください。ドライバーが内部で待ち時間を入れる種類のものでは、この値は使われません。つまみをダブルクリックで既定値 (1200ms) に戻ります。0 で無効化。

キーボードショートカット

既定のキー割当を以下に示します。すべて「ファイル → ショートカットキー設定」から自由に変更できます。

再生 / 一時停止
Space
停止
Esc
10 秒戻し / 10 秒進み
/
1 秒戻し / 1 秒進み
Z / X
音量を上げる / 下げる
/
ミュート切替
M
全画面切替
Enter (動画領域のダブルクリックでも切替可能)
先頭にシーク
Home

マウスホイールでの音量調整は動画領域上 / 音量スライダー上のどちらでも有効です (キー割当不要)。

ユーザーデータ

設定データは以下のいずれかに自動保存されます (ポータブル優先)。

<exe を置いたフォルダ>\settings.json (優先)
EXE 直下の settings.json。USB メモリにフォルダごと入れて持ち運ぶような使い方ができます。書き込み権限があればこちらが使われます。
%AppData%\MPC-NE\settings.json (フォールバック)
EXE 直下に書き込めない場合 (Program Files 配下にインストールしたなど) のフォールバック先。

保存される内容: 出力選択 (出力種別 + ドライバー名 / デバイス ID) / ASIO 再生モード / リサンプルレート / DAC 安定化時間 / ウィンドウ位置・サイズ / 常に手前に表示 / テーマ / 初期表示モード / 音量 / キーバインドの個別変更。

EXE と同じフォルダにある default-cover.png は、音声ファイル (映像なし) でジャケット画像が埋め込まれていない場合に代わりに表示する画像です。同名で上書きすれば、お好みの画像 (アルバムジャケット / 自分の写真等) に差し替えられます。アプリ再起動で反映されます。削除すると黒画面になります。

不具合調査用に、ASIO 関連の詳細ログが <exe を置いたフォルダ>\asio-diagnostic.log に出力されます。不具合報告の際はこのファイルを添付していただけると原因特定に役立ちます。

アンインストール時は、EXE 一式の削除に加えて上記設定ファイル / ログも削除してください。

動作確認について

本アプリは開発者の手元の Windows 11 環境で、以下の構成で動作確認しています。

免責事項

使用ライブラリ

商標について

更新履歴

v1.0.0 (準備中)
初版リリース予定。

開発者情報

開発者 Noriya
E-mail noriyahd28v@gmail.com
ご質問やフィードバックがございましたら、上記連絡先までお気軽にお寄せください。不具合報告の場合は、EXE フォルダ内の asio-diagnostic.log を添付していただけると助かります。