拿到板子時,朋友已經事先幫我裝好 Ubuntu 10.04 系統,開機之後直接進入 X-Window,操作起來就像一般的電腦一樣。BeagleBoard xM 有 1GHz CPU,記憶體 512MB,又有豐富的輸出入介面,已經可以當作 general purpose 電腦使用。比較大的效能瓶頸是硬碟的 I/O,BeagleBoard 用 micro SD 卡當硬碟,讀寫頗慢,每當大量資料處理或記憶體使用逼近上限時,效能就有明顯下降。
BeagleBoard xM 有內建音效輸出入裝置,但沒有數位輸出。要取得數位輸出,必需從板上拉 i2s 出來,或者像一般的 PC 一樣,用 USB Audio 取得。拉 i2s 有些麻煩,而一般的 USB Audio 表現又讓人失望,所以我一時也想不出這張板子在我音響系統中的定位。因此,剛開始的幾天,我只把 BeagleBoard 當作一台小電腦使用,還裝了 Chromium 瀏覽器上網。可以上網之後,於是又試著播放 mpeg 影片,卻發現影像正常,但音訊類比輸出卻一無聲息。再試著播放幾個純音樂檔,也是全然寂靜,於是開始找尋音效的解答。
在網路上看了諸多文章,試了幾種解法,又試著把 kernel 升級到 10.10(Maverick),卻始終無法讓 BeagleBoard 發出聲音。氣餒之餘,拿出先前 DIY 的 USB to SPDIF 轉換器,接上 BeagleBoard,再接上主役的 DAC NOS TDA1541A,想不到聲音就出來了。BeagleBoard 發出的第一聲是一小段小提琴演奏,聲音倒也乾淨,於是隨手點了另一個 flac 檔,Andsnes 演奏的 Schubert 鋼琴奏鳴曲 D959 第四樂章。就在快板流暢地奔放出來的那個瞬間,我聽得傻了--我從來不曾在電腦上弄出過這種聲音!那是相當乾淨清晰,而且柔軟純正的聲音,和過去用電腦播放出來那能量感豐富,略為強勢卻不耐聽的聲音迥然不同,但我用的是同一張不太講究的 USB/SPDIF 轉接卡啊!所差者只是從 PC 換成 BeagleBoard。
這種結果遠出意料,所以連忙用 Shigaclone 播放原 CD 確認,再把 USB/SPDIF 轉接卡接回 PC,播放同一個 flac 檔。三者相比之下,Shigaclone 和 BeagleBoard/USB 各自展現了不同的迷人之態,Shigaclone 的動態比較大,聲音比較豐厚活潑;BeagleBoard 則是清新柔和,兩者都有很好的音樂性。PC/USB 乍聽之下反而接近 Shigaclone,同樣具有動態大量感飽足的調性,但過一分鐘就會覺察到生硬的「數碼聲」而無法久聽。這下 BeagleBoard 真是打破我的成見了,想不到 PCM27xx 這種不理想的 USB/SPDIF 轉換架構,遇上合適的主機,也能發出柔美動人毫無數碼味的聲音。
多年前用 PCM2706 搭棚自製的 USB to SPDIF 轉換器。
線路從 datasheet 修改而來,USB BUS 供電。
這下我一改態度,開始正視 BeagleBoard 在音響上的可能性了。首先想到的當然是電源,於是立刻出門補了一些零件,做了一個專屬的線性供電,並用 TL780-05 穩壓,代替先前湊數的 USB BUS。TL780-05 只有 1.5A 的輸出能力,BeagleBoard 本身吃得電不多,但外接的 USB 裝置也都會共享同一個電源,因此接上鍵盤滑鼠之後,穩壓的負擔也頗重。因此理想的情況是 BeagleBoard 設定好就移除這些週邊裝置,專心播音樂。
其次是怎麼播音樂的問題。板上的 micro SD 卡只有 4G,不可能放太多音樂檔。於是我想到了 Linn DS 系列的做法,用 UPnP(Universal Plug and Play)標準,透過 Ethernet 播放遠端硬碟裡的影音檔。但我對 UPnP 不熟,只好從頭開始察資料學習。UPnP 影音系統主要有三個角色,Media Server 是提供影音資料的來源,例如是電腦主機或網路硬碟。Media Renderer 是真正播放音樂的裝置,例如 Linn DS 系列產品都是 Media Renderer,而在我的情況中,Media Renderer 自然就是 BeagleBoard。Control Point 則是操作工具,指揮 Media Renderer 去撥放 Media Server 裡的資料。Control Point 可以是電腦,也可以是 PDA 或手機等等。幾個小時之後,我在 PC 上架好了 Media Server,也同時裝好了 Control Point 軟體,卻一直搞不定 Media Renderer 的部份。由於 Media Renderer 多半是廠製成品機,出廠即裝載完成,一般買家用戶不需要碰觸這部份,因此這方面的軟體和資源都特別少。加上我也不是什麼電腦高手,更是第一次操作 embedded system,幾經失敗,奮戰良久,最後終於完成了 UPnP 系統的架設,讓 BeagleBoard 成為 Media Renderer 在遠端控制下播放音樂。
所以,現在 BeagleBoard 的操作和 Linn DS 系統差不多,甚至我也是用 Linn 釋出的 control point 軟體 Kinsky 當作操作介面。除了電腦之外,同時也可以用手機或 PDA 操控。只要在同一個 LAN 上,任何裝置只要有 UPnP control point 軟體,都可以隨興的瀏覽 server 上的音樂檔案庫並且選曲播放,遠比一般 CD-Player 的搖控方便多了。
直接使用 Linn 的控制軟體 KinskyDesktop,簡單便利。
系統架成之後,我反覆地聆聽好些曲目,並不時接回 Shigaclone 和 PC 比較,結果我更深刻地確定了 BeagleBoard 的優秀。與我目前所調出來的 Shigaclone 相比,BeagleBoard/USB 聲音清淡,分離度好,空氣感佳,全頻段的分佈相當平坦,有種優質的代現聲,甚至原本品質不佳的 MP3 也居然動聽入耳,讓人訝異。Shigaclone 音色比較飽滿濃郁,動態起伏大,音樂張力強,密度更高。PC/USB 能量感最充沛,此外別無所長,細節、音色、空氣感、動態對比都遠遜,看電影尚可,聽音樂則氣質欠佳,令人不耐。整體來說,目前最好還是 Shigaclone,但粗具雛形的 BeagleBoard 聲音相當清新鮮銳,富有特色,讓我著迷地不斷聽下去。
話說回來,現在 BeagleBoard 的 renderer 軟體還不夠穩定,偶爾會發生解碼錯誤跳曲目的情況。此外,目前 Ubuntu 系統搭載太多東西,應該清理一下,讓播放軟體在更乾淨的環境下運作。除此之外,我對於 Linux 音效播放的運作頗感興趣,不知道能否在這部份再一進步修改,簡化/強化某些流程,讓聲音變得更好。最後,如果能從 BeagleBoard 成功拉出 I2S,跳過 USB 這步,理論上聲音會更上層樓。我很好奇究竟能把 BeagleBoard 弄到什麼樣的程度:既然「數碼聲」並非那麼難以克服,我對 digital stream 的未來自然更加樂觀了。
今年真是豐收的一年。全系統中我最重視的向來是訊源,但過去一直無法自製好聲又耐操的轉盤。今年 Shigaclone 與 BeagleBoard 兩個計畫,讓我終於邁開腳步往目標前進,得到了許多寶貴的體驗,更聽了整年好聽的音樂。真的非常感謝諸位朋友一直以來的幫助。