顯示具有 BeagleBoard 標籤的文章。 顯示所有文章
顯示具有 BeagleBoard 標籤的文章。 顯示所有文章

2011年5月5日 星期四

好久沒有買廠機--Music Fidelity V-Link Asynchronous USB to SPDIF converter


網兄 Paul 在〈令人喜出望外的 BeagleBoard Digital Stream 系統〉的留言裡介紹了 Music Fidelity 的新產品 V-Link,一款廉價而且無須驅動程式的非同步 USB to SPDIF 轉換器(Asynchronous USB to SPIDF converter)。

時值 2011 年,現在 Asynchronous USB Audio 裝置已不稀奇,但絕大多數的產品只支援 Windows 和 Mac OS,而我用的 BeagleBoard 運行 Linux 系統,就沒有太多非同步的選擇了。Music Fidelity 原廠網頁上並未提到 V-Link 支援 Linux,但 Head-fi 上有個 V-Link 的討論串,當中有網兄提到 V-Link 可以在 Linux 上運行。此外看到 V-Link 空空如也,簡潔異常的內部照片,讓我由衷讚嘆,當即妥託代買自美國 Amazon 購入 V-Link。



下訂後約莫一週,就順利收到了 Music Fidelity V-Link。其實我本來對 Music Fidelity 並沒有太深刻的印象,他們的系統聽過不少次,但都沒有記憶點,完全料想不到有天會買該廠產品。V-Link 屬於 V 系列,走小型、廉價路線,包裝相當「務實」,與其說是音響產品,其實更像滑鼠、耳麥等 3C 用品。




尺寸比想像中稍大一點,拿在手上比想像中輕一點,外觀處理不差。看到背面寫著產地是台灣,不禁喟然。台灣出產的東西,怎麼常常要繞地球一週才能回到台灣人手上呢?

在等待 V-Link 到來的那些天裡,已經事先重架好我的 BeagleBoard digital stream 系統。一收到 V-Link 就立刻接上系統試用。插上來自 BeagleBoard 的 USB 線,電源燈順利亮起;送出音樂訊號,信號鎖定燈也順利亮起。撥開前級的音量控制,音樂流瀉了出來,但卻伴隨著一連串或大或小,斷斷續續的爆聲,凌駕於音樂之上。

於是開始除錯。先把 V-Link 接到我的 Windows 系統上,用 Foobar2000 撥放相同的音樂檔。這次就順利了。在 Windows 上,V-Link 工作一切正常,沒有任何雜音,而且聲音還挺不錯。音質清麗透明,暫態靈敏,走向與我之前聽過的 USB 訊源不太一樣。在 Windows 上,V-Link 遠勝我的 PCM2706 based 轉換器,但稍不及 PCM2706 搭配 BeagleBoard 的聲音。所以我又把 V-Link 接回 BeagleBoard,繼續研究。

在 Ubuntu 下試了些指令,看起來 V-Link 都滿正常的,系統有順利抓到裝置,播放時也有得到正確的訊號。又試了不同的播放軟體,但不論是用 mplayer 或 gst-launch,結果都一樣,炒豆聲不絕於耳。想再繼續研究的,不過眼下實在沒空,只好先放著了,偶爾接 Windows 聽一下。上次買廠機是 2007 年的事情,買入 CEC TL51X 轉盤。後來 CEC 轉盤表現大為不如 Shigaclone,已經冷凍了一年。這次難得對廠機心動,結果出師不利,無法順利地連上我的 digital stream 系統。話說 Music Fidelity 的說明書上僅提及支援 Windows 與 Mac OS,事實上 V-Link 與 Windows 搭配表現也很出色,倒是不能怪罪原廠。總而言之,買廠機結果還要自己下功夫除錯,正是 DIYer 的宿命啊!

本來想等到一切搞定,V-Link 正常發聲之後,再寫這篇文章的。無奈最近忙到天荒地老,不知何年何月才能搞定,只好先草草寫篇「開箱文」,提醒一下對 V-Link 有興趣的 Linux 玩家。

2011年4月17日 星期日

BeagleBoard for THE Dummy


雖然與 TI(Texas Instruments、德州儀器)的音頻產品不太投緣,不過 TI 無疑是很不錯的公司,對開發者更是非常友善。最近發現 TI 發行了一本小冊子 OMAP and DaVinci Software for Dummies,免費索取,對我這嵌入式系統白痴真是一劑良藥。

OMAP 和 DaVinci 都是 TI 提出來的嵌入式系統平台,我正在研究的 BeagleBoard 正是使用了 OMAP 晶片。但之前對於 OMAP 並不了解,只把 OMAP 版的 Ubuntu 燒錄到 SD 卡裡,讓 BeagleBoard 開機,之後就把 BeagleBoard 當作一般的 Linux 系統操作,並沒運用到 OMAP 先天的優點。

看了這本小冊之後,總算對 OMAP 有了點認識。原來 OMAP 晶片裡有兩個核心,一顆是 ARM CPU,處理 general purpose 的運算,另外還有一顆 DSP,用來負責多媒體應用,例如影音訊號的編碼、解碼等等。這種異質多核心(heterogeneous multi-core)的設計讓我眼睛發亮,CPU 與 DSP 各有所長,就我的應用中,系統運作、資訊傳輸的工作交給 CPU 來做,而串流解碼、播放如果可以交由 DSP 處理,必然可以進一步隔絕兩邊的干擾,降低 latency。尤其是 DSP 對 real-time 運算有先天上的優點。

所以說,如果只把 BeagleBoard 當作普通的 Arm 平台來用,就太可惜了。勢必要用到 DSP 的部份,才能充份發揮其優勢。這本小冊子只有一百頁,講得很淺,的確只是個 overview,看完仍然不知道具體的下手方向。但對於我這種全然外行的 dummy 來說,這本書把 OMAP 做了個簡明而有系統的概念介紹,已然相當受用。

不過我還是覺得 embedded system 的門檻有點高。像我這種非本科的業餘人士,憑著一股莽勁,到底能不能貫通 BealgeBoard 的重重關節呢?現在連 I2S 要怎麼拉出來都還無從下手呢!不過我真的很期待,讓 DSP 獨立處理串流播放之後,聽感會有什麼樣的變化。如果能夠從軟體面、系統面改善音效,那真的是非常非常好玩的事情,遠比換零件有趣太多了。單單這麼想像,頓時又熱血了起來。

2010年10月23日 星期六

令人喜出望外的 BeagleBoard Digital Stream 系統


一個多月前就拿到了 BeagleBoard,當時手邊幾台螢幕都沒有 DVI 或 HDMI 輸入,無法連接使用。上週買了一台有 DVI 輸入的新螢幕,終於可以開始玩這張 BeagleBoard xM。

拿到板子時,朋友已經事先幫我裝好 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 兩個計畫,讓我終於邁開腳步往目標前進,得到了許多寶貴的體驗,更聽了整年好聽的音樂。真的非常感謝諸位朋友一直以來的幫助。


2010年9月12日 星期日

BeagleBoard-xM


六月的文章所提到的 BealgeBoard 終於到貨,是最新的版本 BeagleBoard-xM。新版的輸出入介面更為豐富,對我來說最重要的是內建了 Ethernet 網路埠,不必額外買 micro SD 轉接 Ethernet。此外不再內建 storage,改用 4G 的 micro SD 作系統碟,此設計比之前更成熟更有彈性。內建四個 USB host 也相當便利。小小一張版子卻有 general purpose 電腦的功能,運算能力也差強人意,真的非常強大。可惜螢幕輸出用 DVI-D 接頭,我的老舊 LCD 沒有一台支援 DVI,因此目前尚未開始使用。


不過,這幾個月來對 digital stream 的想法有了點改變。經網友們的指教,以及音響展的聆聽經驗,目前對 Apple AirPort Express 與 Logitech SqueezeBox Touch (SBT) 這兩條方案更有興趣。尤其是 Apple AirPort Express 這條策略,既便宜(一組全新品才 3000 元),要改的環節也單純許多,而且夏天音響展時,Mircomega 與 La Rosita 的系統都發出了不錯的聲音。而 general purpose 的 BeagleBoard 拿來作 digital stream,固然有點 overkill,也不確定音質如何。既然其多媒體功能如此強大,拿來製作網路串流影片播放器,似乎更有意思一些。在影音之外,拿來做控制網路流量的 server 也挺好,單純當作小桌機上網,似乎也十分不賴。BeagleBoard 功能強大,應用範圍太廣,卻反而讓我失去了明確的目標。

2010年6月13日 星期日

再談 digital stream 的方案

雖然目前很喜歡 Shigaclone 的聲音,但我對 digital stream 還是很有興趣。之前寫過一篇文章,稍微討論了目前的 digital stream solution。我始終覺得 HTPC (Home Theater Personal Computer) 是個吃力不討好的方案,或許有些人不以為然,但一般 PC 的問題在於,體積大、耗電兇、溫度高、內部的震動和雜訊來源太多,難以控制。許多人費盡心血,自製上百瓦輸出的 linear power,加上厚重的機箱,還要搭配特別的散熱方式,才能造就稍微理想的 HTPC。這就我何以認為吃力不討好的原因。

但 HTPC 卻也有很好的可能性,可以做出類似 Linn DS 系列的產品,只是要跳脫往常「夸父追日」式的 approach 而已(之前有網友說「夸父追日」太過刻薄,但我才疏學淺,想不到更好的辭彙。如果有更貼切的形容,請留言指教,我會考慮更換用辭)。前述一般 PC 有著體積大、耗電兇、溫度高的問題,但只要用 ARM 之類 embedded system 的平台來代替一般 Intel PC,就一口氣解決了這三個問題。Embedded system 好處是小巧、省電、不太需要額外的風扇,缺點是運算能力較慢,空間小。慢雖慢,現在的 embedded system 往往也有 GHz 以上的能力了,RAM 也有 128MB 甚至 256MB 以上,對於播放音樂(即使是有壓縮的 flac 或 mp3)綽綽有餘。而且 embedded system 開發板並不貴,功能卻相當強大。例如 BeagleBoard,小小一張板子,採用 TI OMAP3530 處理器,支援各種輸出入介面,甚至還有 I2S 輸出!重點是,BeagleBoard 只要 2W 5V 的供電,也就是說,最大只要 400mA 就夠了。做一個高品質的 5V / 400mA 穩壓再簡單不過,即使是 LM7805 之類的穩壓 IC 也有相當好的表現,難度與數百瓦的 HTPC 有天壤之別。區區 2W 的耗電,這個板子也不可能太熱,所以風扇等散熱措施自然通通不必了。而且這張板子非常小,7.6cm見方,加上電源,仍然可以裝在堅固緊實的小盒子裡。



要怎麼將 BeagleBoard 當作 digital stream 訊源,有幾個環節要考慮,我目前的構想分別如下:

1. 音樂來源。有兩個方法,一是像 Linn 一樣,把檔案放在網路硬碟上,BeagleBoard 透過網路抓取音樂內容。另一個方法是將音樂放在 SD 卡或 USB 隨身碟上,插入 BeagleBoard 即可。(BeagleBoard 內建 SD 卡槽,當然也內建了 USB port)。

2. 音樂輸出。BeagleBoard 內建了類比訊號輸出,效果如何不知。除非其內建 DAC 出奇的好,不然仍是拉數位訊號,送到 DAC 上處理比較理想。BeagleBoard 可以輸出 I2S,所以可以將 I2S 直入 DAC,也可以用額外的板子,將 I2S 轉成 SPDIF 再輸出。diyAudio 上有人指出,BeagleBoard 的 I2S 其 clock 是由 PLL 產生,會引入額外的 jitter。這是值得考慮的問題,但實際上未必差很多,要測試方知。另外也可以走 USB 輸出,和一般 PC 類似。但因 BeagleBoard 電源乾淨,沒有風扇,震動少,比起一般電腦仍有優勢。

3. 系統與控制。BeagleBoard 隨板已裝好 Linux 系統,Linux 的彈性很大,可以把不需的功能都關掉,再重編 kernel。而且目前已有現成的音樂播放軟體,要播放 flac 或 mp3 也不困難。當然也可以針對系統的組態,重新寫程式,用更理想的方式處理 stream,得到更佳的輸出。至於控制,最原始的方法當然是用 ssh 連進 BeagleBoard,下指令播放音樂。如果覺得這種介面過份 nerd ,也可以用其他方式解決,例如用 UPnP (Universal Plug and Play) 協定來控制,於是又和 Linn DS 一樣方便了。

其餘的部份與一般音響 DIY 大同小異,電源、機箱、避震、reclock,CD-Player 能玩的,這兒也都能試試。我很好奇這種 BeagleBoard 能達到多好的效果,因此已經預訂了一張板子,就看到時能怎麼玩了。反正 BeagleBoard 等於是 general purpose PC,在音響上不理想,尚可用來玩其他 DIY 應用。

上述的架構大致接近 Linn 的 approach。除此之外,Ayre QB-9 所使用的 USB asynchronous transfer 以及 Mircomega WM-10 以 Apple AirPort Express 為基礎改造的無線數位訊源,也都是挺好的主意。現在坊間已經有不少 USB asynchronous transfer 的產品或套件,並不貴;買台 Apple AirPort Express 來改也是差不多的價格。這些方式不但比 HTPC 簡單、便宜,又從先天上避開了 HTPC 的問題,作為 DIY digital stream 的基礎,無疑更有 niche。


從 Apple AirPort Express 改造而來的 Mircomega WM-10

LinkWithin

Related Posts Plugin for WordPress, Blogger...