[Desktop App] DISC.TOC v0.4.0 — CDDB / FreeDB終了後も、CDを入れるだけで曲名を表示して再生。音楽CDプレーヤーの使い方ガイド
概要
DISC.TOC は、音楽CDを再生するためのデスクトップアプリです。CDを入れるだけで、アルバム名・アーティスト・曲名を表示します。
音楽CDには、曲名が入っていません(入っているのは目次=TOC だけです)。プレーヤーは、このTOCからディスクIDを作って、ネット上のデータベースに問い合わせて曲名を出しています。昔の定番だった CDDB / FreeDB 系は事情が変わり、「CDを入れても曲名が出ない」ことが増えました。
DISC.TOC は、オープンなデータベースの MusicBrainz に問い合わせて、曲名を出します。
- CDを入れると、アルバム名・アーティスト・曲名・年を自動で表示
- 管理者権限は要りません(普通のユーザー権限でCDを読みます。Linux は
cdromグループへの追加が要ります) - 曲をクリックすると、すぐ再生。シーク、音量、イコライザー、リピート、シャッフル付き
- 曲名が間違っている、載っていないCDは、自分で編集して保存できる
- 曲リストを TXT / CSV / CUE / JSON に書き出せる
- メイン・イコライザー・プレイリストは別ウィンドウ。ドラッグで動かせて、近づけると吸着する
- 選んだ曲、またはCD全曲を WAV に書き出せる
Windows 用のインストーラーと Linux 用のパッケージを、GitHub で配っています。Windows 版は署名をしていないので、最初に警告が出ることがあります(入れ方は下に書いています)。
DISC.TOC
Releases · fixtan/DISC.TOC
Windows 用インストーラー(.msi / .exe)と Linux 用パッケージ(.deb / .rpm / .AppImage)。署名なし。MIT ライセンス。
github.comスクリーンショット
DISC.TOC — 再生画面
DISC.TOC — ウィンドウを分けて並べる(v0.3.0)
アプリの特徴
- CDの目次(TOC)から MusicBrainz のディスクIDを計算して、曲名を引く。見つからないときは、TOC での近似検索に切り替える
- 候補が複数あるCD(版違いなど)は、上部のプルダウンで選べる
- 曲ごとにアーティストが違うコンピレーション盤にも対応
- 曲を選ぶと、読みながら再生する(全部読み終わるのを待たない)
- シーク、音量、10 バンドのイコライザー(プリセット付き)、スペクトラム表示、リピート、シャッフル
- スキンを切り替えられる(LAIN / AQUA)
- メイン / イコライザー / プレイリストが別ウィンドウ。自由に動かせて、ウィンドウ同士が吸着する。位置は次回起動で復元される
- 曲名・アーティストの手動編集。編集した内容は、ディスクごとに自動で保存され、次回からネットなしで表示される
- 書き出し:TXT / CSV / CUE / JSON。JSON は読み込んで復元できる
- MusicBrainz への登録ページを開くボタン(載っていないCDを、みんなで使うデータベースに登録できる)
- WAV 書き出し(選択曲 / 全曲)。傷で読めないところは無音で埋めて、件数を知らせる
対応OS:
- Windows 10 / 11(WebView2 が必要。Windows 11 には最初から入っています)
- Linux(v0.4.0 から。Debian 12 で動作確認)
対応ドライブ:光学ドライブ(CD-ROM / DVD / BD ドライブ)
入れ方
Releases から、次のどちらかを落とします。
| ファイル | 内容 |
|---|---|
DISC.TOC_x.x.x_x64-setup.exe | 普通のインストーラー |
DISC.TOC_x.x.x_x64_en-US.msi | MSI 形式のインストーラー |
どちらも署名をしていません。最初に、Windows の警告が出ることがあります。
- ファイルを実行する
- SmartScreen が「Windows によって PC が保護されました」と出したら、「詳細情報」→「実行」
- インストール後、スタートメニューの DISC.TOC を起動する
Linux
Releases から、使っているディストリビューションに合うものを落とします。
| ファイル | 内容 |
|---|---|
DISC.TOC_x.x.x_amd64.deb | Debian / Ubuntu 系 |
DISC.TOC-x.x.x-1.x86_64.rpm | Fedora 系 |
DISC.TOC_x.x.x_amd64.AppImage | インストール不要。chmod +x して実行 |
.deb は、sudo apt install ./DISC.TOC_x.x.x_amd64.deb で入れます。
CDドライブ(/dev/sr0 など)を読むには、ユーザーが cdrom グループに入っている必要があります。入っていないと、「許可がありません(Permission denied)」で、ドライブが開けません。
sudo usermod -aG cdrom $USER
実行したら、いったんログアウトして、入り直してください。
動作確認の状況
限られた環境で確認しています(Windows と Debian 12 で、それぞれドライブ 1 台、数枚のCD)。Linux の、ほかのディストリビューションや Wayland セッションでは、まだ確認していません。うまく動かないドライブやCDがあれば、GitHub の Issues で教えてください。
まず試す:CDを入れて、曲を再生する
- 音楽CDを、ドライブに入れる
- DISC.TOC を起動する(自動で読み込みます)
- 曲名が出たら、曲をクリックする
読み込みは、次の順で進みます。
- CDの目次を読む(TOC 読み込み中)
- 曲名を探す(検索中)
- 一覧に、曲名と長さが出る
ドライブの円盤が止まっていると、最初の1曲だけ、数秒遅れることがあります。円盤が回り始める時間なので、ソフトでは縮められません。2曲目からは速く切り替わります。
使い方
1. CDを読み込む
| 操作 | 内容 |
|---|---|
| 起動する | 自動で、いまのドライブを読み込む |
| ドライブの選択 | 上部のプルダウンで、読むドライブを選ぶ(選ぶと読み込み直す) |
| 「読込」 | もう一度、読み込み直す。CDを入れ替えたときに押す |
| 版の選択 | 候補が複数あるときだけ出るプルダウンで、別の版に切り替える |
曲名は、次の順番で探します。
- 保存済みのデータ(自分で編集して保存したもの)
- MusicBrainz にディスクIDで問い合わせる
- 見つからなければ、TOC で近似検索する
保存済みのデータがあるCDは、ネットに繋がずに、すぐ表示されます。
2. 再生する
| 操作 | 動き |
|---|---|
| 曲をクリック | その曲を再生する |
| ▶ | 再生(止まっているときは、選んだ曲 / 最初の曲から) |
| ⏸ | 一時停止・再開 |
| ⏹ | 停止 |
| ⏮ / ⏭ | 前の曲 / 次の曲 |
| シークバー | ドラッグして、再生位置を動かす |
| 音量バー | 音量を変える |
| REP | リピートの切り替え(なし → 全曲 → 1 曲) |
| SHUF | シャッフルの切り替え |
| ◐(右上) | スキンの切り替え(LAIN / AQUA) |
曲が終わると、次の曲へ自動で進みます。最後の曲(リピートなし)で止まります。
イコライザー
「EQ」を押すと、イコライザーのウィンドウが開きます(もう一度押すと閉じます)。10 バンドのスライダーと、プリセットのプルダウンがあります。スライダーを上げると、そのバンドの音が大きくなります。
3. ウィンドウを動かす
v0.3.0 から、メイン・イコライザー・プレイリストは別々のウィンドウです。
| 操作 | 内容 |
|---|---|
| タイトルバーをドラッグ | ウィンドウを動かす |
| ウィンドウを近づける | 縁に吸着する |
| Alt を押しながらドラッグ | 吸着しない |
| タイトルバーをクリック | 3つのウィンドウが、すべて手前に出る |
| 「EQ」「PL」ボタン | イコライザー / プレイリストのウィンドウを、表示・非表示にする |
| 各ウィンドウの ✕(EQ / PL) | そのウィンドウだけ閉じる |
| メインの – | 3つのウィンドウを、まとめて最小化する |
| メインの ✕ | アプリを終了する |
吸着してくっついているウィンドウは、メインを動かすと、まとめて動きます。離したウィンドウは、単独で動かせます。
ウィンドウの位置と表示状態は、終了するときに保存されます。次に起動したとき、同じ並びで開きます。プレイリストのウィンドウは、右下をドラッグして、大きさを変えられます。
4. 曲名を直す(編集)
曲名が間違っているときや、載っていないCDのときは、自分で入れます。
- 「編集」を押す(曲名の欄が、入力できるようになる)
- 曲名やアーティスト名を直す
- 「保存」を押す
保存した内容は、ディスクごとにファイル(JSON)として PC の中に残ります。次にそのCDを入れたときは、保存したものが最初に出ます。
保存先は、アプリのデータフォルダの discs の中です(Windows では %APPDATA%\com.lainlab.disctoc\discs\、Linux では ~/.local/share/com.lainlab.disctoc/discs/)。
5. 曲リストを書き出す・読み込む
「書き出し」の左のプルダウンで形式を選んでから、「書き出し」を押します。保存先は、保存ダイアログで選びます。
| 形式 | 内容 |
|---|---|
| TXT | 曲リストのテキスト |
| CSV | 表計算ソフト向け(Excel で文字化けしないように BOM 付き) |
| CUE | CUE シート(曲の開始位置つき) |
| JSON | すべての情報。「JSON読込」で戻せる |
「JSON読込」は、書き出した JSON を読み込んで、曲名を復元します。ディスクIDが違うCDの JSON、またはトラック数が合わない JSON は、読み込めません(間違ったCDに入れないための確認です)。
JSON を渡せば、別の PC で同じCDの曲名を使えます。
6. WAV に書き出す
プレイリストの下の「WAV」の行から、CDの音を WAV ファイルにします。
| ボタン | 内容 |
|---|---|
| 選択曲 | いま選んでいる(再生中の)曲を、WAV にする |
| 全曲 | CDの全曲を、WAV にする |
| 中止 | 書き出し中だけ出る。途中でやめる |
- 「選択曲」か「全曲」を押す
- 保存先のフォルダを選ぶ
- 下のステータス行に、進み具合が出る(
書き出し中 3/25 42% 曲名)
ファイル名は、01 - 曲名.wav の形です。曲ごとにアーティストが違うCDは、01 - アーティスト - 曲名.wav になります。
- 書き出し中は、再生が止まります(同じドライブを同時に読むと、どちらも遅くなるため)
- 書き込み中は
.wav.partというファイルで、最後まで書けたら.wavに変わります。途中でやめたときは、.partが消えます - 傷などで読めない部分は、何度かやり直したうえで無音で埋めて、終わったときに件数を知らせます
WAV はCDの音そのままです(16bit / 44.1kHz / ステレオ)。MP3 などにしたいときは、ほかのソフトで変換してください。
7. MusicBrainz に登録する
曲名が載っていないCDは、「MB登録」を押すと、MusicBrainz の登録ページがブラウザで開きます。自分で曲名を入れて登録すると、ほかの人も使えるようになります。登録には、MusicBrainz のアカウントが要ります。
注意事項
- 対応は Windows と Linux です。macOS は対象外です
- Linux 版は Debian 12 で動作確認しています。ほかのディストリビューションや Wayland では、未確認です
- 音楽CD(CD-DA)用です。データCDや DVD-Video は再生できません
- コピーガード付きのCD(CCCD など)は、読めないことがあります
- 曲名の取得時に、CDの目次(TOC から作ったディスクID)を MusicBrainz に送ります。曲の音や、ほかの情報は送りません
- 取得は、MusicBrainz のルールに合わせて、1 秒に 1 回以内の間隔で行います
- MusicBrainz に載っていないCDは、曲名が出ません。「編集」で自分で入れてください
- 保存済みのデータがあるCDは、MusicBrainz に問い合わせません
- WAV 書き出し以外の音声形式(MP3 / OGG / FLAC)は、まだありません
- Windows 版は署名をしていないので、最初に警告が出ることがあります
よくある質問 (FAQ)
Q. 管理者権限は要りますか
A. 要りません。ドライブを読み取りだけで開くので、普通のユーザー権限で動きます。ただし Linux では、ユーザーがcdromグループに入っている必要があります(入れ方は「入れ方」の Linux の節に書いています)。
Q. 曲名が出ません
A. そのCDが MusicBrainz に載っていない可能性があります。「編集」で自分で入れて「保存」すると、次回から出ます。「MB登録」から、MusicBrainz に登録することもできます。
Q. 曲名が違う版のものが出ます
A. 候補が複数あるときは、上部のプルダウンで別の版を選べます。選んだあとに「編集」と「保存」をすると、その内容が次回から出ます。
Q. CDを入れ替えたのに、前のCDのままです
A. 「読込」を押してください。
Q. 最初の1曲だけ、再生が始まるのが遅いです
A. ドライブの円盤が止まっているところから回り始めるので、数秒かかります。2曲目以降は速く切り替わります。
Q. 保存した曲名を、MusicBrainz の最新のものに取り直したいです
A. 保存済みのデータがあるCDは、MusicBrainz に問い合わせません。取り直したいときは、保存先のdiscsフォルダの、そのCDの JSON ファイルを削除してから、「読込」を押してください。
Q. 管理者権限なしで、本当にCDの音が読めるのですか
A. 読めます。ドライブを読み取りだけで開いて、OS の標準の命令(Windows はIOCTL_CDROM_READ_TOCとIOCTL_CDROM_RAW_READ、Linux はCDROMREADTOCENTRYとCDROMREADAUDIO)で、目次と音を読んでいます。仕組みは、技術記事に書いています。
Q. 書き出した WAV に、プチプチ音が入っています
A. 傷などで読めなかった部分は、無音で埋めています。終わったときに「読めなかったセクタ N 個」と出るので、その件数を見てください。ディスクを拭いて、もう一度試すと、読めることがあります。
Q. Linux で、ドライブが「見つかりません」または「Permission denied」と出ます
A. ユーザーがcdromグループに入っていない可能性があります。sudo usermod -aG cdrom $USERを実行して、ログアウト → ログインし直してください。ls -l /dev/sr0でグループがcdromになっているかも、確認できます。
Q. 起動すると、警告が出ます
A. Windows 版は署名をしていないためです。「詳細情報」→「実行」で進めます。
Q. 曲名や音が、外部に送られませんか
A. 送るのは、曲名を探すための、CDの目次(ディスクID)だけです。音は PC の外に出ません。送り先は MusicBrainz です。
Q. Winamp や Windows Media Player とは関係がありますか
A. ありません。DISC.TOC は、MusicBrainz や、ほかのどの音楽プレーヤーとも関係のない、個人開発のアプリです。
技術記事
作り方は、技術記事にまとめています。
[Tauri #07] Tauri v2:CDDB / FreeDB終了後にCDの曲名が出ない問題を、MusicBrainzと自作プレーヤー「DISC.TOC」で解決した // PROTOCOL.LAIN
CDDBとFreeDB終了の経緯、MusicBrainzへの乗り換え、管理者権限なしでCDを読む方法、ストリーミング再生、WAV書き出しまでの記録。
lain-lab.com更新履歴
| バージョン | 日付 | 内容 |
|---|---|---|
| v0.4.0 | 2026/10/6 | Linux 対応を追加(.deb / .rpm / .AppImage。Debian 12 で動作確認)。ドライブの読み取りを、Linux 用に追加 |
| v0.3.0 | 2026/10/6 | メイン・イコライザー・プレイリストを別ウィンドウに分離(枠なし)。ドラッグで移動、ウィンドウ同士の吸着、位置と表示状態の復元、タイトルバーのクリックで全ウィンドウを手前に |
| v0.2.0 | 2026/10/6 | WAV 書き出しを追加(選択曲 / 全曲。読めない部分は無音で埋めて報告。途中で中止できる) |
| v0.1.0 | 2026/10/6 | 初回公開(CDの読み取り、MusicBrainz から曲名の取得、再生・イコライザー、手動編集、TXT / CSV / CUE / JSON の書き出し・読み込み) |
クレジット
ライセンス
DISC.TOC は MIT ライセンスです。ソースコードは GitHub で公開しています。
GitHub - fixtan/DISC.TOC: Audio CD player with track names, no admin rights needed
音楽CDを入れるだけで曲名を表示して再生する、Tauri v2製のWindows / Linux向けアプリ。
github.comデータ
曲名などは、MusicBrainz から取得しています。MusicBrainz の中心のデータは、CC0 で公開されています。
ライブラリ
- Tauri — MIT / Apache-2.0(アプリの枠組み)
- reqwest — MIT / Apache-2.0(MusicBrainz への問い合わせ)
- windows-sys — MIT / Apache-2.0(Windows の API)
- libc — MIT / Apache-2.0(Linux の API)
画面側(再生、イコライザー、編集)は、外部のライブラリを使わず、自作です。