家用數位音樂轉盤

前言

隨時代進步
音樂儲存媒體也多次發生重大變化
就我知道音樂播放機開始
就從廣播、磁帶、CD、MD、MP3、iPod、串流音樂媒體等
磁帶和MP3基本己經從我的生活消失了
偶爾會拿出來播放的還有CD而己了

動機

日常想聽點什麼時就是手機打開Spotify就有音樂可聽
還有youtube、Podcast滿滿串流媒體可選
Spotify多次在這裡被提到是因為我有訂閱
也是唯一的串流音樂訂閱服務
因為它有豐富的古典音樂可以當資料庫查詢

Windows下的實作

最近想舊物利用拿PCM2707這顆經典USB DAC來播數位音樂
找出一台回收的老筆電內建的OS是Windows10
安裝上ALL4ASIO和ASIO Birdge Hi-Fi Cable Control
來優化數位音訊的延遲和反應
ALL4ASIO是共享軟體很值得一玩
但這聲音還是離我理想有段距離

Linux下的實作

我回憶起早些年有在Linux上做聲音的優化實驗
發佈作業系統是選用Ubuntu Studio 22.04 amd4
特別之處在於數位音訊處理取代較通用易設定的
PulseAudio audio server
改用上JACK audio server
JACK Wiki
除此之外還特別在Linux kernel選使用了
Low latency runtime kernel縮短軟體層與硬體處的訊號交換時間
除了在設定JACK有遇到一些較為復雜的設定
其他其實都算直覺的就動手玩就對了
JACK設定的IN-OUT bridge
像我有外接USB DAC
那USB DAC的聲音輸出要指向JACK的IN
再來JACK的OUT要指向系統的PuseAudio volume control
然後在PuseAudio Volume control設定IN為JACK

有影響的參數為

Jack Sample Rate: 48000 or 44100 are typical settings that work with many devices.
Jack Buffer Size (Latency): This is hardware specific. Check you interface manual. Start with 128
Jack Periods: Also hardware specific. 3 is good setting for USB interfaces.
Jack Backend: alsa

測試聲音

先打開Firefox播youtube上的影片確定聲音正常
但這裡我也遇到firefox有聲音但Spotify沒聲音
是去檢查了PulseAudio的設定把IN/OUT設對
Spotify才播出了好聽動人的音樂

重要資源網站

KXStudio
Hackmd.ko
Ubuntu Studio

ScreenShot for Ubuntu Studio Controls

JACK Master Setting
JACK Extra Devices
JACK Session Management
PulsaAudio Volume Control

ARM CPU base music player

經過一段時間聆聽後,
無意間在網路音響論譠中看到新的系統叫Ropieee,
可以運行在SBC Raspberry Pi3/4,
利用測試過的Raspberry Pi 3B把SD寫入Ropieee Image,
設定好IP和USB DAC Sound輸出,
輸入可以是經由Spotify和AirPlay
表現出來的聲音也是十分優美的。