[Desktop App] DISC.TOC v0.4.0 — CDDB / FreeDB終了後も、CDを入れるだけで曲名を表示して再生。音楽CDプレーヤーの使い方ガイド

[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

スクリーンショット

DISC.TOC — 再生画面

DISC.TOC — 25曲入りのCDを読み込んで再生しているところ。曲ごとにアーティストが違うコンピレーション盤

DISC.TOC — ウィンドウを分けて並べる(v0.3.0)

DISC.TOC — メイン、イコライザー、プレイリストの3つのウィンドウを縦に吸着させたところ

アプリの特徴

  • 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.msiMSI 形式のインストーラー

どちらも署名をしていません。最初に、Windows の警告が出ることがあります。

  1. ファイルを実行する
  2. SmartScreen が「Windows によって PC が保護されました」と出したら、「詳細情報」→「実行」
  3. インストール後、スタートメニューの DISC.TOC を起動する

Linux

Releases から、使っているディストリビューションに合うものを落とします。

ファイル内容
DISC.TOC_x.x.x_amd64.debDebian / Ubuntu 系
DISC.TOC-x.x.x-1.x86_64.rpmFedora 系
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を入れて、曲を再生する

  1. 音楽CDを、ドライブに入れる
  2. DISC.TOC を起動する(自動で読み込みます)
  3. 曲名が出たら、曲をクリックする

読み込みは、次の順で進みます。

  1. CDの目次を読む(TOC 読み込み中)
  2. 曲名を探す(検索中)
  3. 一覧に、曲名と長さが出る

ドライブの円盤が止まっていると、最初の1曲だけ、数秒遅れることがあります。円盤が回り始める時間なので、ソフトでは縮められません。2曲目からは速く切り替わります。

使い方

1. CDを読み込む

操作内容
起動する自動で、いまのドライブを読み込む
ドライブの選択上部のプルダウンで、読むドライブを選ぶ(選ぶと読み込み直す)
「読込」もう一度、読み込み直す。CDを入れ替えたときに押す
版の選択候補が複数あるときだけ出るプルダウンで、別の版に切り替える

曲名は、次の順番で探します。

  1. 保存済みのデータ(自分で編集して保存したもの)
  2. MusicBrainz にディスクIDで問い合わせる
  3. 見つからなければ、TOC で近似検索する

保存済みのデータがあるCDは、ネットに繋がずに、すぐ表示されます。

2. 再生する

操作動き
曲をクリックその曲を再生する
▶再生(止まっているときは、選んだ曲 / 最初の曲から)
⏸一時停止・再開
⏹停止
⏮ / ⏭前の曲 / 次の曲
シークバードラッグして、再生位置を動かす
音量バー音量を変える
REPリピートの切り替え(なし → 全曲 → 1 曲)
SHUFシャッフルの切り替え
◐(右上)スキンの切り替え(LAIN / AQUA)

曲が終わると、次の曲へ自動で進みます。最後の曲(リピートなし)で止まります。

イコライザー

「EQ」を押すと、イコライザーのウィンドウが開きます(もう一度押すと閉じます)。10 バンドのスライダーと、プリセットのプルダウンがあります。スライダーを上げると、そのバンドの音が大きくなります。

3. ウィンドウを動かす

v0.3.0 から、メイン・イコライザー・プレイリストは別々のウィンドウです。

操作内容
タイトルバーをドラッグウィンドウを動かす
ウィンドウを近づける縁に吸着する
Alt を押しながらドラッグ吸着しない
タイトルバーをクリック3つのウィンドウが、すべて手前に出る
「EQ」「PL」ボタンイコライザー / プレイリストのウィンドウを、表示・非表示にする
各ウィンドウの ✕(EQ / PL)そのウィンドウだけ閉じる
メインの –3つのウィンドウを、まとめて最小化する
メインの ✕アプリを終了する

吸着してくっついているウィンドウは、メインを動かすと、まとめて動きます。離したウィンドウは、単独で動かせます。

ウィンドウの位置と表示状態は、終了するときに保存されます。次に起動したとき、同じ並びで開きます。プレイリストのウィンドウは、右下をドラッグして、大きさを変えられます。

4. 曲名を直す(編集)

曲名が間違っているときや、載っていないCDのときは、自分で入れます。

  1. 「編集」を押す(曲名の欄が、入力できるようになる)
  2. 曲名やアーティスト名を直す
  3. 「保存」を押す

保存した内容は、ディスクごとにファイル(JSON)として PC の中に残ります。次にそのCDを入れたときは、保存したものが最初に出ます。

保存先は、アプリのデータフォルダの discs の中です(Windows では %APPDATA%\com.lainlab.disctoc\discs\、Linux では ~/.local/share/com.lainlab.disctoc/discs/)。

5. 曲リストを書き出す・読み込む

「書き出し」の左のプルダウンで形式を選んでから、「書き出し」を押します。保存先は、保存ダイアログで選びます。

形式内容
TXT曲リストのテキスト
CSV表計算ソフト向け(Excel で文字化けしないように BOM 付き)
CUECUE シート(曲の開始位置つき)
JSONすべての情報。「JSON読込」で戻せる

「JSON読込」は、書き出した JSON を読み込んで、曲名を復元します。ディスクIDが違うCDの JSON、またはトラック数が合わない JSON は、読み込めません(間違ったCDに入れないための確認です)。

JSON を渡せば、別の PC で同じCDの曲名を使えます。

6. WAV に書き出す

プレイリストの下の「WAV」の行から、CDの音を WAV ファイルにします。

ボタン内容
選択曲いま選んでいる(再生中の)曲を、WAV にする
全曲CDの全曲を、WAV にする
中止書き出し中だけ出る。途中でやめる
  1. 「選択曲」か「全曲」を押す
  2. 保存先のフォルダを選ぶ
  3. 下のステータス行に、進み具合が出る(書き出し中 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 や、ほかのどの音楽プレーヤーとも関係のない、個人開発のアプリです。

技術記事

作り方は、技術記事にまとめています。

更新履歴

バージョン日付内容
v0.4.02026/10/6Linux 対応を追加(.deb / .rpm / .AppImage。Debian 12 で動作確認)。ドライブの読み取りを、Linux 用に追加
v0.3.02026/10/6メイン・イコライザー・プレイリストを別ウィンドウに分離(枠なし)。ドラッグで移動、ウィンドウ同士の吸着、位置と表示状態の復元、タイトルバーのクリックで全ウィンドウを手前に
v0.2.02026/10/6WAV 書き出しを追加(選択曲 / 全曲。読めない部分は無音で埋めて報告。途中で中止できる)
v0.1.02026/10/6初回公開(CDの読み取り、MusicBrainz から曲名の取得、再生・イコライザー、手動編集、TXT / CSV / CUE / JSON の書き出し・読み込み)

クレジット

ライセンス

DISC.TOC は MIT ライセンスです。ソースコードは GitHub で公開しています。

データ

曲名などは、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)

画面側(再生、イコライザー、編集)は、外部のライブラリを使わず、自作です。