CDリッピングと音楽ファイル化。

一昔前はiRiverとかのデジタルオーディオプレイヤー、またはMP3プレイヤーとステレオイヤホンいうのが巷を席巻していましたが、今はみんなワイヤレスヘッドホンでスマホで、iTunesとかYouTubeとかAmazonミュージックとかのストリーム再生なんでしょうか。

自分の場合はCDを購入して聴くことが多いのですが、外出時には当然CDプレイヤーを持っていくことはないです。スマホのストレージに音楽ファイルを入れておいて、お気に入りのプレイヤーアプリで再生という使い方が多いです。

で、久しぶりにCDを買ったので、これまでのようにリッピングしようかと思い、新しいメインPCに定番で使っていたCDexをインストールしようとNASのフォルダを開いたところ、Windowsセキュリティが反応してPUABundler:Win32/FusionCoreが入ってるから検疫する?と聞いてきました。

このFusionCoreはいわゆるマルウェアやアドウェアというタイプで、不要な広告を表示するもの。無害といえば無害だけど、ユーザの許可なくインストールされて動作するという点ではお行儀の悪いソフトです。

CDex自体は2020年以降のアップデートはされていないようです。なので他にいいのがないかどうかを探してみることにしました。

目的はCDから音楽データを吸い出してスマホで再生可能な音楽ファイルに変換すること。変換は最近使っているFDK_AACが使えればいいな、という程度です。それからもうひとつ重要なのが、吸い出しの際にCDDBからアーティストや曲名を拾ってこれること。これがないとFile001.wavなどというものになってしまい、ファイル名からなんの曲なのかがわからなくなってしまいます。

ちなみにこれまで長い間利用していたCDデータベースの freedb.org は2020年3月末で終了していたのに今さら気づきました。ということは2年以上も音楽CDを購入していなかったってことかしら。

その代わりではないですが、MusicBrainzという音楽Wikipediaみたいなサービスがあり、そちらを使うことでfreedb.orgと同じことができるようです。


最初はWindows用で探したら、Monkey's Audioというものが見つかりました。が、どうやらこれ単体ではCDからのリッピングはできないようです。リッピングツールは別に用意して、WAV形式で吸い出したものをMonkeysAudioで圧縮するという手順になるのですが、リッピングツールとしては非常に評価の高いExact Audio Copyが使えます。音楽CDはデータCDのようなエラー訂正の仕組みはないのですが、音楽データを正確にリッピングすることができるらしい、です。

Exact Audio CopyはWAVデータとして保存することもできますが、同時にエンコードもできるようです。デフォルトでは以下のような外部エンコーダに対応しているようです。



外部エンコーダなので、別途エンコーダ自体を用意しないといけません。以前にFFmpeg 5.0をコンパイルしてみる。でFDK_AACのエンコーダをビルドしているのでたぶんこれが使えるとは思いますが、もうちょっと安直にできないかな、と探してみました。

最後に見つけたのがfre:acです。
fre:ac is a free audio converter and CD ripper with support for various popular formats and encoders.
ということで、いろんなフォーマットやエンコーダをサポートしています。CDDBもGnuDbという音楽データベースに対応しているようです。
Gnudb.org a new home for the freedb.org database to make sure it stays free.

 freedb.orgのデータベースを移行したんでしょうか。GNUプロジェクトとの直接の関係はないように見受けられますが、Wikipediaには次のように書いてあります。

2020年3月31日をもってサービス終了することが告知され、全てのサービスが終了し、gnudb.orgへ自動的に転送されるようになっている。

どうやらfreedb.orgへのアクセスはgnudb.orgに転送されるようです。

それはさておき、fre:acはデフォルトで以下のようなエンコーダをサポートしています。


FDK-AACが入ってますね。ラッキーです。ワンストップでリッピングからエンコードまででき、かつ <アーティスト名>/<>/nn-曲名.m4a のように出力ファイルの場所と名前を指定できるので、これでいこうと思います。

そのうち、倉庫に保管してるCDもエンコードし直すかな。


ちなみにちなみに、Linuxではどうかと思って検索してみたら、abcdeというのが見つかって、このabcdeはshスクリプトでツール類を適宜起動してリッピングからエンコードまでやってくるようなんですが、WSL2でのArchLinuxにcdparanoia入れてabcdeで動くか、と思ったらそもそもcdparanoia自体が動きませんでした。
正確に言うと、cdparanoiaは起動時に /dev/cdrom や /dev/hd0a などのブロックデバイスを探しにいくのですが、WSL2では親側のCDドライブ(DVDでもBDでも)をマウントするには

mount -t drvfs q: /mnt/q

みたいにマウントして参照する以外はまだできていないようで、この時点でアウトっぽいです。

Windowsでシンボリックリンクを試してみる。

きっかけは、1つのファイルを別の名前で起動したら違う動きになるようなスクリプトを書く、でした。  busybox なんかでは、同じ実行形式ファイルの名前を、lsにすればlsと同じ、cpとすればcpと同じ動作をするようにしてますが、Pythonスクリプトでそれと同じように argv...