0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ALACを鳴らす

Last updated at Posted at 2025-07-02

Mac mini G4のiTunesでCDをLossLess(ALAC)で取り込んであります。

ALACは2004年くらいにAppleが開発したAudio Codecです。

これをMac以外で鳴らす方法を調べていました。

ALACは2011年にオープンソースになってgithubにあります。ソースツリーにはエンコードとデコードのコードがあります。このコードはCore Audio File(caf)での処理のコードになっていて、取り込んだファイルはm4aファイルなので、そのままは使えません。

ffmpegやfreacで変換する方法もありますが、変換は音質劣化につながるので、できるだけそのままで再生できる方法がいいです。またffmpegは大きすぎますし、freacは依存が多すぎです。

ffmpegなどでは2005年にリバースエンジニアリングで作られたDavid Hammertonさんのデコーダーが使われています。

いろいろ調べていたらAirMac ExpressにALACなファイルを送って鳴らすプログラムがありました。

たまたま使っていないAirMac Expressがあったので、ネットワークの設定をしてみました。なんだか不安定でかなりてこずりましたが、どうにかおうちのネットワークに入れることができました。

初代のAirMac Expressは以下のような構造になっているものと思われます。

AirMacExp (1).png

BCM4712はBroadcomの初期のMIPS SOCで今となっては遅いほうです。USB 1.0は12Mで遅いのですが、USB Audioは12Mで動くのでUSB DACをつなげるのは良い発想だと思います。

PCM2705は秋月でも売っているPCM2704と同系のDACでそんなに悪いものではありません。

AirMac Expressは3世代ありそれぞれDACが違うようです。Appleの製品は同型で後期のものはコストカットされているものが多く、初代が一番よかったりする事もあります。

SPDIFで外部のDACを使うこともできます。コネクタはオーディオジャックとの兼用です。

light-playはOpenWRTで開発されたようですが、NetBSDでも問題なくコンパイルできました。またmakeもBSD makeで通り綺麗に書いてあるようです。

動かしてみます。

% ./light-play 10.0.1.147 01.m4a

鳴りました。

AirMac ExpressはDHCPでアドレスを設定しますが、DHCPサーバで固定で割り振るような設定にしたほうが良いです。

iTunesからAirMac Expressを鳴らす時はストリームがAESで暗号化されていますが、light-playでは暗号化無しのストリームになるようです。正規の使用では使われることのないAirMac Expressが暗号化無しに対応してるってよくきがついたと思います。

light-playはセッションのクローズの処理に問題があるような気がします。ぼちぼち確認してみます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?