2014年9月18日 星期四

[ 工具軟體 ] foobar2000 - 音樂播放器中的樂高

foobar2000 logo

  音樂播放軟體,原本千千靜聽用了一段時間,最主要的原因呢,是因為歌詞秀很方便,但自從被百度收購之後,先是介面"皮膚"亂改(後來是恢復先前樣式的支援了),接下來就廣告越來越多囉。

  雖然有點煩,點幾下XX關閉也還在可以忍受範圍,但是呢,原本沒歌詞套件的 foobar2000 也進化囉,現在更有神網友寫出使用千千靜聽、蝦米、QQ歌詞秀資料庫的支援套件,所以~我就被拐過來囉。

  從問世以來,foobar2000 一直被譽為音質最佳的音樂播放軟體,當年它的介面我只想給個"不知所云"的感想,最近我是先在網路上欣賞到網友已經編好的美麗版本,例如這篇 華麗的音樂播放器Zetro Skin For Foobar2000 - erictfkc1220的創作 - 巴哈姆特 ,跟古早的比起來根本就是野豬妹大改造呀,那時並不知道,歌詞秀套件已經有支援千千靜聽伺服器的版本,是後來才發現的,但美麗版本先讓我感受到一些問題如下:

一、容易斷支援:

  foobar2000 很大方的開放原始碼讓大家自己改來改去,是款完全開放高自由度的音樂播放軟體。在軟體第一次執行時的初始設定,會"要求"(講白了是強迫)使用者做功能選用、區塊上的排版自訂,很多使用者也在此步驟 … 這個那個都是幹甚麼用的?會跑甚麼出來?丈二金剛摸不著頭緒,當年我也是這樣,接著就謝謝再聯絡了。

  美麗版本多是網友幫忙先配置好介面,無須使用者自己進行功能及版面配置的版本,所以囉,一旦 foobar2000 本身主套件更新,或美麗版本中的某個套件版本過期,而原先開發的網友沒繼續維護,也沒有熱情的專業粉協助維護的時候,就 time to say goodbye 囉。

二、介面調整有限制:

  因為美麗版本的介面功能,是基於開發網友自行編寫的設定檔,這些設定檔大多是先將介面固定後,再依固定的界面去寫設定檔,如果改介面或升級套件,很容易功能就不理你了。

  簡單說,就是依網友設定寫死不可更動,但是哩,美麗版本有些時候把功能按鍵藏到神祕的地方,要聽個歌是要多麻煩哩?

 

  後來我想呢,既然 foobar2000 可以自己拉區塊,而且套件可以自己抓自己裝,阿不然怎不試試看抓套件自己拼裝看看?美麗肯定是比不上網友認真的版本啦,但是版型跟功能,希望能接近自己比較想要的形式,實驗結果,算是成功吧,所以把一些可能會忘記的設定筆記下來,下次遇到又要手工藝的時候比較好作業。

  其中有些項目,是關係到軟體跟系統溝通的設定,已經出了 foobar2000 本身,我覺得這些自由度超高的部分,就是 foobar2000 能高音質的訣竅,可謂之"那時候 foobar2000 教我的那些事",也讓我對 foobar2000 是為播放軟體界樂高這檔事,給予實至名歸的肯定。

 

  我希望達成的使用目的有以下三項,其他一般般沒什麼特別:

一、播放中歌曲的唱片封面要顯示大圖

  在千千靜聽中,唱片封面圖很小一咪咪,我對畫面上用很大區塊顯示鬼畫符飄來飄去的頻譜顏色效果並不感興趣,一首歌只是一個箭頭動一下的播放清單,也不很感興趣,但多數音樂播放軟體偏偏都是這樣,多數網友美麗版也是這樣。

  請讓我看這首歌的專輯封面大圖跟歌詞,與其看那些跳來跳去的頻譜色條,我比較甲意看到這首歌的相關資訊,單單就這首播放中的歌。

  foobar2000 這方面倒是讓我很滿意,除了可以拉出大封面,托一位日本網友之福,連歌手資訊都能即時從 last.fm 或維基即時撈一些出來看(如果上面有的話),之前聽就聽,不常特別去看歌手資訊,既然自動送上門,順便看一下的機率就高很多,偶而會感到新奇,連網路廣播有提供歌手資訊的曲目,也能撈出來。

二、歌詞秀能用到畫面最大寬度

  最近都是聽日本卡通歌,有中日對照歌詞的時候,需要較寬的版面才能"舒適"顯示,另外我喜歡用大字,既然視窗作用中,幹嘛小家子小裡小氣盯著小視窗小字看到眼睛脫窗,直接用最寬,放大字體舒舒服服地看不就得了。

三、功能按鍵方便使用

  其實這點原生的介面就算還OK了,是美麗版本因為太美麗,功能常常藏到選單第三層去才有的問題,介面操作很不方便,目前作用中狀態顯示也有給他弱到。

 

  foobar2000 我採用的是官方目前穩定最新版本 foobar2000 v1.3.3 final ,很多以前需要外加的套件,在此版本已經變內建,介面選用設定的基本步驟請參閱 啊嗄 - foobar2000 使用教學(3)(介面篇) 一文,這位大大解說仔細圖文並茂,我就不贅述了。我的介面切分成三個主區塊,介面圖下面解釋每個頁籤項目那邊很多,這邊就不重覆貼了:

一、左上 - 唱片封面區塊:

  在 foobar2000 中顯示要正確、搜尋結果要正確,是基於歌曲本身的 tag 欄位內容要編輯正確,唱片封面、歌手的相片管理也要事先準備好。

  歌手的部分,顯示不容易正確,即使正確,看起來也還是很雜亂,尤其是合唱曲。單一歌曲歌手很多人的時候,加上 Album Artist 參數來亂,顯示管理上也太麻煩,所以我以唱片封面顯示為主,歌手相關訊息就留給右上的"歌手資訊",網路上有就看,沒就算啦,要找單一歌手的曲目,我用媒體櫃跟專輯列表的搜尋功能來過濾,就不做歌手為主的顯示介面了。

  tag 管理上,我覺得 foobar2000 內建的不很理想,目前最推薦的 tag 管理軟體是 MP3TAG 這款,文字字碼編碼 Unicode 支援存檔都很正確,不會再出現蝌蚪文亂碼,曲目自動編號、檔名批次轉換、內崁專輯封面也很方便,而且開發者人真的有親切很不錯。

  之前我看到這軟體可以用 Amazon 當唱片資料庫來更新 tag 資訊,所以就厚臉皮跑去跟他敲碗,問他既然已經有有Amazon,因為搜尋參數可能是相同的,是不是能新增 Amazon JP 的資料庫支援?他很快一天就回覆了,本來就可以的唷 ~ 只要自己按照官方論壇 Web Sources Archive 這篇文章做點修改就能用了!

  有了 Amazon JP,直接刷刷刷,多數日文歌的 tag 跟專輯封面都嘛手到擒來,英文歌有Amazon US 不消說,一個專輯都幾分鐘就搞定了,反而是中文部分,因為中文業者這方面很 … 小氣,還是純手工的機會高一些。

  我有把專輯封面內崁在每首歌裡面(存寬500,手機跟電腦顯示就都夠用),所以在 File - Preferences - Advanced – Display - Album art - Embedded vs external 我調成 Prefer embedded ,省得唱片封面圖會因為其他原因跳來跳去,管理上也只須管好檔案,不必管資料夾了。

    • 使用套件:
      內建。
      選用 selection information - Album Art Viewer。
    • 設定調整:
      無。

二、右上 - 功能及其內容區塊

  下面跟著圖再一一解說。

三、下 - 歌詞顯示區塊

  就螢幕最大寬度、字很大我就滿意了,我很不喜歡有些歌詞為了顯示雙語,把時間軸分給中文、外語各一半的設置,跟千千靜聽比起來,foobar2000 可以"雙行顯示",阿就算字真的多到要換行,正在唱的那一句高亮顯示也不會有問題。

    • 設定調整:
      在該區塊用滑鼠右鍵開啟

      面板參數設置-
        調整頁面字型顏色。

      參數設置-

      常規:
        桌面歌詞我不愛用,取消。
        歌詞保存改為手動,避免存到錯誤的歌詞。
        僅同步保存也取消,降低存檔條件干擾。

      搜尋:
        歌詞保存至音頻文件同目錄。
        歌詞保存文件名參數 %filename% ,喜歡一樣放一起。

四、自訂按鈕:

foobar2000 其實能將功能表的選項,自訂成工作列按鈕,算是功能捷徑囉,新增所需要的ico檔我在電腦裡搜尋,直接把有的抽出來隨便用,自己新增了以下按鈕:

  1.open containing floder:

    開啟現正播放曲目的檔案所在資料夾。

  2.add location:

    開啟網路串流檔案,網路播放清單使用。

  3.send to playloist…:

    將所選項目新增到指定的播放列表。
    有這個搭配常置的空白預設播放列表,就不必用到 queue 了。
    雖然 queue 把播放一首歌當作一個執行緒的想法很炫,但我覺
    得播放列表比較親切好用,此選項雖內建,但預設並未顯示在功
    能表 playback 選單及滑鼠右鍵選單中,必須先在
    Preferences - Display - Context Menu -
    Utilities 中啟用才會只在滑鼠右鍵單的第二層顯示,但新增
    按鈕捷徑時,可以直接從選項中選取,不必先去啟用。

  4.Save as playlist:

    將所選項目,儲存成 m3u8 或 m3u 或 fpl 播放清單檔案,手
    滑不小心點到播放列表標題排序列,列表上歌曲順序會亂掉,有
    備份直接倒回去,就不必重排了。

  5.Save all playlist:

    將所有播放列表,存成 m3u8 或 m3u 或 fpl 播放清單檔案。

  6.Preferences:

    開啟軟體功能設定視窗。

  7.DSP Setting:

    開啟 DSP 設定,跟 Preferences 其實是同一個,只是會自

    動跳到 DSP 選項。

  8.Mute:

    靜音。

另外,軟體介面使用的字型如下圖:

foobar2000  font

  經實驗,這些字型用在播放列表、媒體櫃等介面,不會變亂碼,新細明體或微軟正黑體等中文字型,日文顯示會有問題,本來我想全都用Source Han Sans,但只在歌詞秀顯示正常,用在播放列表、媒體櫃、歌手資訊等介面,有些會沒法顯示怪怪的。

  這字體哪來?其實是玩其他網友的美麗版本時,網友安裝包中附上要求安裝的,是哪個版本我也已經忘記了,網路上搜一下說不定就能抓到了吧,我挑這個是因為字體很粗,我又眼弱希望愛護眼睛來著的,至於配色,我是直接從 foobar2000 預設可選的配置中挑一組不刺眼的配色就用了,是哪組~我又忘了,我動過 Highlight 但主要並不是自己調配的。

 

  接下來,就按照介面頁籤功能來做筆記囉:

一、歌手資訊

foobar2000 last.fm

    • 使用套件:
      foo_uie_biography
      選用 Untility - biography view 。
    • 設定調整:
      在該頁籤用滑鼠右鍵開啟
      將搜尋顯示固定為 Artist。
      Panel Preferences - Font Color 調整頁面字型顏色。

 

二、檔案詳細資訊

foobar2000 track detial

    • 使用套件;
      已內建。
      選用 selection information - Selection Properties,快速瀏覽所選檔案的詳細資訊,不必再點滑鼠右鍵到外跳視窗中觀看。
    • 設定調整:
      無。

 

三、播放列表

foobar2000 playlist

    • 使用套件:
      foo_simplaylist
      選用 Playlist View - simplaylist,主要用於在單一曲目上改善顯示,可在單一曲目列上顯示"已撥放時間"。
    • 設定調整:
      Preferences - Playback

      Playback follow Cursor
      Cursor follow Playback
      兩選項都勾選,播放列表才會自動捲動到現正播放歌曲。
      連點兩下狀態列,也會回到現正撥放列表曲目的位置。

四、網路廣播

foobar2000 web radio

    • 使用套件:

      其實這是一個播放列表,只是內容都是網路電台而已,不必新增套件。

        電台管理用 asx 檔處理比較好,因為能透過 asx 控制每個電台的顯示名稱,比較方便,若是用 Add location 來開啟電台,電台名稱顯示經常亂七八糟,且無法修改自訂,因此無法做成好用的網路電台播放列表,建立網路電台播放列表時,把 asx 檔案拖進去,電台列表就會自動生成了。

        但 asx 製作的網路電台播放列表也有缺點,他只吃網路電台的真實網址,遇到.m3u、.pls等需要再做展開的網路播放清單檔案,會無法直接開啟,只能用 Add location 剝洋蔥把網址取出來後才能用。

        ASX檔案格式範例可參考 Example Playlists (Windows) 一文 ,每個電台用一組<ENTRY></ENTRY>,我使用的欄位如下
1 <ASX version="3.0">
2
3 <TITLE>清單名稱(會顯示在album欄位)</TITLE>
4 <AUTHOR>我填跟清單名稱相同的內容</AUTHOR>
5
6 <ENTRY>
7 <REF href="網路電台網址一" />
8 <REF href="單一電台有多組網址時可增加此tag填寫" />
9 <TITLE>電台名稱會顯示在title欄位</TITLE>
10 <AUTHOR>歌手會顯示在artist欄位,我是填電台名稱</AUTHOR>
11 <MOREINFO href = "電台網址" />
12 <ABSTRACT> 電台描述,我還是貼網址 </ABSTRACT>
13 </ENTRY>
14
15 </ASX>



    • 設定調整:

      Preferences - NetWorking

      啟用 Enble Dynamic track titles -
      當網路電台提供播放現在曲目標籤資訊時,可於播放列表上動態顯示歌曲及歌手名稱,並於歌手資訊中看到該曲目的歌手介紹,國內只有"奇美古典音樂電台"有用此設定,但是曲目太冷門,last.fm 跟維基上常常又都是沒資料,但國外許多網路電台這部分資訊都有提供,顯示很豐富,以前還看過一個網路廣播軟體連專輯封面都爬出來,其實,絕對是門好買賣呀,國內到底要畫地自限到什麼時候?

      唱片封面區塊顯示網路電台圖案:

      不想顯示則無需做任何修改。若想顯示電台圖案在唱片封面區塊,則須做以下修改

      ☆建立電台圖示資料夾及LOGO圖檔-

      此資料夾不可放在C槽Program files等系統不允許程式進行搜尋的資料夾內,會無法顯示,要放在我的圖片或其他允許程式進行搜尋檢索的位置才能正常顯示。各家電台的LOGO,就網路上撈,順便抱怨一下,國內很多電台連個清楚乾淨LOGO都不是很好找,已經是個媒體了,連這都不重視嗎?
        
      ☆只用一張示意圖代表所有的網路電台-

      將圖片"檔案名稱"改成跟 ASX 檔中"清單名稱"的<TITLE>欄位所填一樣的名字,"清單名稱"的<TITLE>會被當成播放列表中,全部電台的album值。

      在 Preferences - Display -Front Cover
      新增一行參數:

        存放圖片資料夾檔案路徑\%Album%.*

       舉例如

       D:\radio\%Album%.*


      ☆每個電台都顯示個別的電台logo-

      我是用 Artist 欄位來做控制,對應的是 ASX 檔案中每個電台的<AUTHOR>欄位,並在front cover的圖片搜尋加入Artist作為搜尋參數。

      將每個電台圖片的"檔案名稱",改成跟ASX檔中,單一電台"AUTHOR"欄位一樣的名字。

      在 Preferences - Display -Front Cover
      新增一行參數:

        存放圖片資料夾檔案路徑\%Artist%.*

       舉例如

       D:\radio\%Artist%.*



五、播放列表清單


foobar2000 playlistMg




    • 使用套件:
      已內建。
      選用 Untility - Playlist Manager。

    • 設定調整:
      無。

 



六、媒體櫃


foobar2000 Media Lib tree view



 媒體櫃跟播放清單的差別,是會自動監看指定資料夾的檔案變動,自動
 把新增的檔案加入顯示,移除的檔案從顯示中移除。播放清單則是固定
 的,檔案新增或砍掉,都需要自行訂正重新編輯才能正確顯示跟播放。
 因此媒體櫃的檔案顯示,相對方便、正確,非必須,但設定下也好囉。




    • 使用套件:
      已內建。
      選用 Media Library Viewer - Album List,提供文字式樹狀檔案結構瀏覽。

    • 設定調整:
      預設點選播放清單時,foobar2000 會自動新增建立一個播放列表,並把所選項目加入那個播放列表,然後跳到那個播放列表開始自動撥放。

      個人覺得這功能很干擾,我只是要看看歌曲檔案、專輯內容,每點一下就都強制自動播放是怎樣?很討厭捏!

      要把這設定關掉,在下面 facets 也要做設定變更,才能完全停用這功能,喜歡這功能的就不必做相關設定了。

      Preferences - Media Library Viewer
      取消勾選
      Library viewer selection playlist

      Preferences - Media Library Viewer - Album List
      取消以下勾選
      Start playback when sending selection to playlist

      Creat alawys-sorted autoplaylist


七、專輯列表


foobar2000 album list



  也是媒體櫃,跟上述樹狀同一個,只是顯示改成圖示介面而已。
  專輯封面區左上角有個沒圖示的空格,是"所有檔案"的虛擬集合,
  ,千萬別手癢幫它加圖示,那樣會把所有MP3檔案的封面圖示全都
  刷掉,我之前去動它,還好發現得早強制關閉程式,有救回大多數
  檔案,都沒發現就得哭哭,全部重新再做一次手工藝了。
  




    • 使用套件:
      foo_facets
      選用 Media Library Viewer - facets,可依專輯封面圖示瀏覽專輯內容。

    • 設定調整:
      Preferences - Media Library - Facets - Columns
      [%Album%] 改 %Album%,原設定不顯示專輯欄空白歌曲
      [%Artist%] 改 %Artist%,原設定不顯示歌手欄空白歌曲

      Preferences - Media Library - Facets - Library
      Selection action -> None
      Double-Click action -> None
      Middle-click action -> Autoscroll(default)

 



八、等化器


foobar2000 EQ




    • 使用套件:
      已內建。
      選用 Untility - Equalizer。

    • 設定調整:
      無。

  除了顯示介面之外,我採用了來強化音質的 WASAPI output support,一開始也搞不清楚這是在銃蝦密,本來還以為是顯示介面用的套件,看了 如何在 Windows 7 下聆聽最佳品質的音樂?(數位輸出 by WASAPI) 一文後才搞清楚,原來這個叫做 WASAPI 的設定,是把 foobar2000 音樂的 output ,直接烙 windows 作業系統來處理。


  因為是 windows 帶硬體直接來處理,音效品質不受播放軟體的處理能力限制,而是硬體能跑多好就會有多好,阿當然硬體好的,聲音就能好聽很多,連我這台普普通通的主機板內建音效晶片筆電,都能明顯感受到其中是有差異的(不然就是我有金耳朵了),想來 foobar2000 音質能超優的訣竅,就是這個囉。


  原本哩,windows作業系統收到播放軟體給的音樂播放工作前,音樂軟體或其他多媒體撥放軟體,要先自己把聲音處理成 windows 作業系統能接受的格式,再交給 windows 進行播放。


  windows 作業系統的限制,大多就是硬體的限制,例如我這台電腦,硬體上能接受的格式分為16位元跟24位元,從 44100Hz ~ 192000Hz 音源規格訊號,這範圍以外就無法播放,音樂檔案現在大多至少44100Hz,沒遇到過什麼問題,但是在看影片跟聽廣播的時候,如果啟用 WASAPI,就常常會出現問題了,因為那些檔案有時會出現低於 44100Hz 以下的音源規格(我就遇過 32000Hz),未啟用 WASAPI 前,軟體會自己幫你調好,但若啟用 WASAPI,等於是把未處理的音源檔案直接丟給 windows,阿太低(太高的目前還不太可能會出現),當然就發生無法撥放的狀態 。


  為了提升音質,又能兼顧檔案播放的相容性,我做了以下配置,基本原則是,辛苦的高重新取樣,就丟給 windows,不必播放軟體本身太用力,因為效果相對也是差的,甚至聽不出差別,要避免的只是不要讓播放軟體,將 windows 不能接受的最低播放頻率以下的檔案(在我這台是44100Hz,每台電腦的設定一硬體規格,可能會不一樣),直接丟給 windows,造成無法播放,在各相關軟體做了以下設置:



一、windows:


  當 Windows 重新取樣的數值越高的時候,聲音明顯有變好聽,在軟體裡重取提多高,如果 windows 沒改,音質差異其實不大。


   結論是重新做高取樣這種辛苦的工作,交給身強體壯的 Windows 系統來做就好,其他軟體就不必多做無用功了。所以我把 windows 的音效卡調到他的最高音質表現 24位元 192000Hz,杜比音效、音場EQ、立體聲,阿就也一起交給螃蟹公司音效卡的軟體來處理了,既然播放軟體端沒暗崁不放,可以解除限制,四核加八RAM跟音效晶片別閒在那邊,都出來幫忙用力好好跑跑。


二、foobar2000:


  首先當然是安裝 WASAPI output support 套件




    • 使用套件:
      foo_out_wasapi
      WASAPI output support,啟用 WASAPI 功能。

      foo_dsp_multiresampler
      這重新取樣套件軟體的名字叫 Sox,是說他重新取樣的效能比 foobar2000 內建的重新取樣器好,更多資訊請看 Sox Faq,不想裝用內建的(PPHS)也可。

    • 調整設定:
      Preferences - Playback - Output
      Device:WASAPI - WASAPI(event)
      Output format:24 bit

      Preferences - Playback - DSP Manager
      啟用 multiResampler - 設定取樣為 44100Hz

 


三、K-Lite Codec Pack:(沒用此軟體的可略過)


  啟用 ffdshow audio decoder 中的重新取樣功能,一樣定在 44100Hz,這樣我的 Windows Media Player x64 就不會被打掛囉有用 x86 的,記得 x86 跟 x64 都把重新取樣設定拉出來用。


 


阿就以上,全部調整完啦,改天有剛好,再來玩玩看 foobar2000 的手機版本吧。