pkg://Sound-Playing-HOWTO-html.tar.gz:13351/Sound-Playing-HOWTO-2.html
downloads
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5">
<META NAME="GENERATOR" CONTENT="ZH-SGML-Tools 1.0.9">
<TITLE>The Linux Sound Playing HOWTO 中譯版 : 播放各種聲音格式</TITLE>
<LINK HREF="Sound-Playing-HOWTO-3.html" REL=next>
<LINK HREF="Sound-Playing-HOWTO-1.html" REL=previous>
<LINK HREF="Sound-Playing-HOWTO.html#toc2" REL=contents>
</HEAD>
<BODY>
<A HREF="Sound-Playing-HOWTO-3.html">Next</A>
<A HREF="Sound-Playing-HOWTO-1.html">Previous</A>
<A HREF="Sound-Playing-HOWTO.html#toc2">Contents</A>
<HR>
<H2><A NAME="s2">2. 播放各種聲音格式</A></H2>
<P>聲音格式有很多種(WAV,MIDI, MPEG 等).
以下我們列出各種格式與可播放其格式的應用程式.
<P>
<P>
<H2><A NAME="ss2.1">2.1 MIDI</A>
</H2>
<P>MIDI 就是 Musical Instrument Device Interface的縮寫.
MIDI檔案通常有延伸檔名 <CODE>.mid</CODE>. 它們包含編排的訊息,
也就是何時用什麼樂器以何種方式來播放...等的訊息.
根據你的硬體(也許與你用來播放的軟體也有關),
播放出來的聲音可能很震撼,也可能徹底令人失望.
<P>
<P>
<H3>adagio</H3>
<P>此包裝包含 <CODE>mp</CODE> (命令列下的MIDI檔播放程式)和 <CODE>xmp</CODE>
(XView 介面下的 MIDI 檔播放程式),
不要與所謂的模組[module]播放程式混淆 <CODE>xmp</CODE>).
你將需要 SlingShot 延伸來使用 <CODE>xmp</CODE>).
它包含其他程式來播放Adagio scores.
<P>
<P>如果你有 GUS, <CODE>mp</CODE> 能夠播放MOD檔
( 看章節
<A HREF="#sec-modules">Modules</A> ,
得到更多與模組有關的資訊).
<P>有些擾人的臭蟲[bug](當 0.5 版在些硬體上)是聲音中斷在終端.
也就是,沒有照原本 MIDI 檔記錄的中斷聲音方式,
而是中斷播放音符在最後音符還有一段音程之前.
它已不阻止我使用 <CODE>mp</CODE>, 它可能阻止某人使用它在 '即時'[real]工作.
它的安裝也相對地較慢.
<P>這包裝中並沒有提到版權(至少我沒找到),
所以我假設它能夠自由的再散佈與修改. (藉由著作權法的嚴格解釋,
沒有東西可以給一個人有權利去做這樣的事情,
但我有點疑惑這會是原作者的用意嗎.)
<P>它是由 Greg Lee 將 CMU MIDI Toolkit 移植到 Linux 的.
(though there was enough added to make this questionable)
(<CODE>lee@uhunix.uhcc.hawaii.edu</CODE>).
<P>它可以取於
<A HREF="ftp://tsx-11.mit.edu/pub/linux/packages/sound/adagio05.tar.gz">ftp://tsx-11.mit.edu/pub/linux/packages/sound/adagio05.tar.gz</A>.
這樣所包含的二元檔是以 a.out 格式 (連結到以前的程式函式庫),
而在二元碼的檔 <CODE>xmp</CODE> 設定在 X11R6 環境
(XFree86 3.1.1, libc 4.7.2).
<CODE>mp</CODE> 的二元碼的檔在 <CODE>a.out</CODE> 環境可以工作很好.
<P>你將需要費點牛力來編譯它.
事實上,那也不需要費太多力氣啦.
你所要作的就是在 Makefile 內的 <CODE>SHROBJ</CODE> 和 <CODE>XMPOBJ</CODE>
的尾端加上 <CODE>-lfl</CODE>. 這是連結到 <CODE>flex</CODE> 程式函式庫,
其並不是預先就連結的.然後照安裝步驟作.若你想編譯 <CODE>xmp</CODE>,
不要忘了要有安裝 XView 和 SlingShot extensions .
<P>
<P>
<H3>TiMidity</H3>
<P>有些人建議這種 <EM>實驗性的</EM> 程式,因為有好的音質
(這是真的,在 Sound Blaster 16上,它比起 <CODE>mp 好多了,
而且大概不會與具有波形合成器[wavetable]的音效卡像是 GUS 相差太多.)
然而它面臨高 CPU 負載. 它播放 MIDI 是藉由將 MIDI 轉換成 WAV,
然後再播放 WAV (你也能夠轉換 MIDI 檔成 WAV 檔,而不播放它,
如果你想要的話.) 這就是 CPU 如此重要的理由.
它也有可選擇性的 ncurses, SLang, Tcl</CODE>Tk or Motif 介面.
<P>你需要有 Gravis Ultrasound patch files 來使用這個程式.
檢視 TiMidity 包含的 FAQ , 獲取更多資訊.
<P>作者是 Tuukka Toivonen (<CODE>tt@cgs.fi</CODE>).
<P>最新的 TiMidity 版本可取得在
<A HREF="http://www.cgs.fi/~tt/timidity/">TiMidity home page</A>.
此首頁也有連結到小程式庫的地方含有 GUS patches.
<P>
<P>
<H3>playmidi</H3>
<P>這是一個 MIDI 播放程式,可用來播放 FM, GUS, 及外接 MIDI.
與其它 MIDI 播放程相較下,它應該有較快的安裝時間.
它也能夠播放 Creative Music Files 格式, Microsoft RIFF files格式,
以及從像 Ultima 7 遊戲來的較大之檔案.
<P>它有 X 介面和 SVGA 介面. 它也有選項即時播放藉由追縱每個通道
[channel]的所有附註以及目前播放的時刻
(自動的被內含在 <CODE>xplaymidi</CODE> 和 <CODE>splaymidi</CODE>).
<P>你應該做以下動作
<P>
<BLOCKQUOTE><CODE>
<PRE>
$ splaymidi foo.mid; stty sane
</PRE>
</CODE></BLOCKQUOTE>
<P>若你要使用 SVGA 介面時. 因為它不適當地重置[reset]終端 tty 模式.
SVGA 介面在不久將來可能會被去除.
<P>它的作者是 Nathan Laredo
(<CODE>laredo@gnu.org</CODE> 或 <CODE>laredo@ix.netcom.com</CODE>).
<P>它可取於
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/playmidi-2.3.tar.gz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/playmidi-2.3.tar.gz</A>.
<P>
<P>
<H2><A NAME="sec-modules"></A> <A NAME="ss2.2">2.2 Modules</A>
</H2>
<P>Modules (在電腦音樂中)是數位音樂檔, 由一組樣本及序列資訊組成,
告知何時播放樣本(樂器)在哪個軌調什麼音,可自由選擇地表現效果,
舉例像是 振動音[vibrato].
<P>它超越 MIDI 的好處是它幾乎能包含任何聲音(包括人類的語音).
另一好處是它在各平台上聽起來都一樣,因為取樣是在模組中.
缺點是跟 MIDI 比起來檔案較大.另一缺點是它沒有真正的標準格式
(唯一的真正標準是 ProTracker,而又很多模組並不與其相容).
它起源在 Amiga.
<P>最普通的格式是有副檔名為 <CODE>.mod</CODE>. 還有很多其它種副檔名,
與它們所屬的格式有關.
<P>
<P>
<H3>tracker</H3>
<P>這是可攜帶程式(它已經被移植[port]到各種平台)
播放音軌[Soundtracker]和前軌[Protracker]音樂模組.
它使用 16 bit 的立體輸出[stereo],而我認為音質很棒.
若你需要一個簡單方式減少 CPU 負擔,可使用 <CODE>-mono</CODE> 選項.
<P>這是可作為禮物的[giftware]程式(引用自原作者).
作者為 Marc Espie (<CODE>Marc.Espie@ens.fr</CODE>).
<P>含 Makefile 檔的版本已經用力轉[tweaked]到 Linux,
它可取於
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/tracker-4.3-linux.tar.gz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/tracker-4.3-linux.tar.gz</A>.
<P>
<H3>gmod</H3>
<P>這是 Gravis Ultrasound 卡的音樂模組播放程式.
4/6/8 channel MOD, 8 channel 669, MultiTracker
ScreamTracker III (S3M) 都是被支援的格式.
<P>它要求 3.0 版以後的聲音驅動程式.
而且當然是 GUS. 你可以需要修改核心來使音量控制成為你所要的.
<P>這是 X 介面.它使用 QT toolkit (需要 0.99 版以後).
查詢一下
<A HREF="http://www.troll.no/">QT toolkit homepage</A> 取得更多有關
QT 的資訊.
<P>這是可以自由的散佈. 它是由
Hannu Savolainen 所作, 和目前維護是由 Andrew
J. Robinson (<CODE>robinson@cnj.digex.net</CODE>).
<P>它可取於
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/gmod-3.1.tar.gz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/gmod-3.1.tar.gz</A>.
<P>
<P>
<H3>MikMod</H3>
<P>這個可攜帶模組播放程式可以播放 XM, ULT, STM, S3M, MTM,
MOD 和UNI 格式.( UNI 格式是被 MikMod 的內部格式.)
它有支援 尖嘯聲[zipped]的模組檔. 它使用 16 bit 立體聲音輸出.
若你要減低 CPU 負擔,可加上 <CODE>-m</CODE> 選項(單端輸出).
<P>Unix 版本使用 ncurses 或 Tcl/Tk 作為其介面.
它可能使用成程式函式庫[library],不僅是獨立程式而已.
<P>它的原始作者是 Jean-Paul Mikkers
(<CODE>mikmak@via.nl</CODE>). 它目前是由 Jake Stine
(<CODE>dracoirs@epix.net</CODE>)來維護. 這是共享軟體,
如果你要使用在商業上,那麼你必須註冊.
你也必須取得允許才可在商業上的再散佈
(非商業上的再散佈不需要取得允許).
<P>這可以取得在
<A HREF="http://www.freenet.tlh.fl.us/~amstpi/mikmod.html">MikMod home page</A>.
<P>
<P>
<H3>xmp</H3>
<P>這是個 模組播放程式 (不要與 Adagio's <CODE>xmp</CODE> 混淆),
它可以播放 MOD, S3M, MTM, PTR, STM, 669, 和 XM 模組
(其他格式也被支援,但仍在實驗階段或未完成). 如果你有
具有波形合成器[wavetable synthesis]的音效卡
(GUS 或 SoundBloaster 32AWE),
那麼你可使用這類音效卡來降低 CPU 的負載.
它也支援壓縮模組.
<P><CODE>xmp</CODE> 的 X 前端程式也可以取得了.
<P>作者是 Claudio Matsuoka
(<CODE>claudio@pos.inf.ufpr.br</CODE>) 和 Hipolito Carraro Jr.
<P>這可取得在
<A HREF="http://xmp.home.ml.org/">xmp home page</A>.
<P>
<H3>s3mod</H3>
<P>這程式播放 4/6/8 軌的模組和 Scream Tracker 3 模組.
它藉由內定的 22000 Hz 取樣頻率的使用 8 bit 單端輸出[mono].
你可以使用 <CODE>-s</CODE> 選項來驅動立體音[stereo],
<CODE>-b</CODE> 來驅動 16 bit 輸出,
和 <CODE>-f</CODE> 來設定取頻率.然而,聲音輸出比 tracker 糟 (有點雜訊),
所以我建議使用 <CODE>tracker</CODE> 取代 <CODE>s3mod</CODE> 來播放原始 MOD 檔
(除非你有不夠力的機器).它相較於 tracker 有遠小於 CPU 負載.
<P>該版權為Daniel Marks 和 David Jeske
(<CODE>jeske@uiuc.edu</CODE>) 所有, 但你能對它做任何處理
(除了你不能宣稱你所寫外).
<P>它可取於
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/s3mod-v1.09.tar.gz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/s3mod-v1.09.tar.gz</A>.
<P>
<P>
<H3>mod</H3>
<P>這個 <EM>beta</EM> 程式播放 MODs (15/31-樂器,到 32 種聲音),
MTMs, ULTs 和 S3Ms 在 Gravis Ultrasound 卡上.它也能用來包裝模組,
若你有安裝 <CODE>gzip</CODE>, <CODE>lharc</CODE>, <CODE>unzip</CODE>, 和 <CODE>unarj</CODE> .
它不能播放 Powerpacked 模組或某些 Amiga 作曲者包裝的模組
["PACK" signature].
<P>這要求至少 3.0 版的聲音驅動程式.
它在 2.90-2 版以前的聲音驅動程式 <EM>不會</EM> 正常工作.
文字介面要求 ncurses. 還有包含使用 Tcl/Tk 的 X 介面.
<P>作者是 Mikael Nordqvist (<CODE>mech@df.lth.se</CODE> or
<CODE>d91mn@efd.lth.se</CODE>).
<P>它可取於
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/mod-v0.81.tgz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/mod-v0.81.tgz</A>.
<P>
<P>
<H3>nspmod</H3>
<P>這是 <EM>alpha</EM> 模組播放程式,它可以播放 MTM, S3M, 和 MOD 模組.
它是企圖成為模組播放程式在音效卡上沒有 DSP 下.
(不要與 Creative Labs 公司宣稱的 DSP 相混淆.)
它稍微占用 CPU 負擔, 和 <CODE>tracker</CODE> 比較起來相似.
<P>
<P>它有項特色是可讓你自己想要的模組重覆[modules loop].
重覆次數能夠藉由使用 <CODE>-l</CODE> 選項來限制.
它只使用 8 bit 聲音輸出(當在 0.1 版時).
<P>作者是 This was written by Toru Egashira
(<CODE>toru@jms.jeton.or.jp</CODE>).
<P>它可取於
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/nspmod-0.1.tar.gz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/nspmod-0.1.tar.gz</A>.
<P>
<P>
<H3>yampmod</H3>
<P>這個 <EM>alpha</EM> 程式是被設計使用最小 CPU 資源,來播放 4-channel
模組. 它
<EM>不是</EM> 被設計產生高音質.
所以產生的唯一聲音輸出是 22 kHz 單端輸出[mono].
再者,這輸出並未達它應有的清淅程度,表現出它是 alpha 版.
<P>作者是 David Groves
(<CODE>djg@djghome.demon.co.uk</CODE>).
<P>這可取於
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/yampmod-0.1.tar.gz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/yampmod-0.1.tar.gz</A>.
<P>
<P>
<H2><A NAME="ss2.3">2.3 MPEG 音流</A>
</H2>
<P>MPEG 是標準解讀在數位儲存設備上之影像及相關聲音編碼.
MPEG 通常就會聯想到影像,而該標準的聲音部分可被分開來使用.
該標準的聲音部分定義成三種層次, layer I, II, 與 III.
能夠解碼較高層次的播放程式也能解碼較低層次.
(舉例,layer III 的播放程式能夠播放 layer II的檔.
而 layer I MPEG 聲音檔通常有副檔名 <CODE>.mpg</CODE>
(所以若有一個檔是這樣的副檔名,其不能被 MPEG 影像播放程式來播映,
它大概是音流[audio stream].), layer II
通常有副檔名 <CODE>.mp2</CODE>, 而 layer III
通常有副檔名 <CODE>.mp3</CODE>. 這種聲音壓縮非常好.
一個 2 megabytes 的 layer II MPEG
聲音檔大概能繃緊自一個 25 megabytes 的自然 PCM 取樣檔,
且保有一樣的品質.
<P>
<P>
<H3>mpg123</H3>
<P>這個 <EM>beta</EM> 程式是播放 MPEG 音流很有效率,
它支援 layers I, II, and III.它是從很多原始程式所建立的程式碼.
它可以直接播放及時的由 HTTP 讀到的音流.
(換句話說,某人可以直接透過全球資訊網來播放 MPEG 音流.)
<P>主要作者是 Michael Hipp
(<CODE>Michael.Hipp@student.uni-tuebingen.de</CODE>).
它的未修改的形式可以免費的使用,散佈於非商業用余.
包含免費軟體的收錄 (像 FTP 伺服器的 CD-ROM 檔案資料拷貝[images]
明確地的允許.
<P>它的最新版本可取於
<A HREF="http://mpg.123.org/">mpg123 homepage</A>.
<P>
<P>
<H3>maplay 1.2</H3>
<P>此 MPEG 聲音流播放程式只支援 layer I 和 layer II 音流,
而缺少支援 layer III 音流. 在 Linux,它只支援 16 bit 的音效.
<P>它很強烈要好的 CPU, 它花了 55% 的 CPU time 在 60MHz Pentium.
在 66MHz 486上,它的輸出會令人無法忍受的,因為 CPU 無法趕上聲音.
若這發生在你那,你設法播放以只用音流的單邊播放
(使用 <CODE>-l</CODE> 或 <CODE>-r</CODE> 選項)取代內定的立體音質.
<P>為了要順利編譯,在其檔案中有些改變是需要的.
換句話說,你需要加以下幾行到 <CODE>configuration.sh</CODE>
所起始的檔案中.
<P>
<BLOCKQUOTE><CODE>
<PRE>
#! /bin/sh
</PRE>
</CODE></BLOCKQUOTE>
<P>作者是 Tobias Bading (<CODE>bading@cs.tu-berlin.de</CODE>).
<CODE>maplay</CODE> 1.2 可取於
<A HREF="ftp://ftp.cs.tu-berlin.de/pub/misc/maplay1.2/maplay1_2.tar">ftp://ftp.cs.tu-berlin.de/pub/misc/maplay1.2/maplay1_2.tar</A>.
<P>
<P>
<H3>maplay 1.3b</H3>
<P>這是非官方版版本(換句話說,不是原作者所作的 <CODE>maplay</CODE> 1.2,
所以它能跑比較低 CPU 負載. 它主要藉由使用事實上工作在 SPARC
以外的其他平台上的 u-law output 來達成.
注意的是它內定使用 u-law output,
所以聲音品質是比較差的.
<P>此改修改版是 Orlando Andico 所作
(<CODE>orly@gibson.eee.upd.edu.ph</CODE>).
<P>這可取於
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/maplay-1.3b-Linux.tar.gz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/maplay-1.3b-Linux.tar.gz</A>.
<P>
<P>
<H3>maplay3</H3>
<P>這播放程式是從 <CODE>maplay</CODE> 1.2 改編來的.
它加入支援 MPEG Layer 3 聲音流.目前它似乎有些臭蟲在播放時
(你可以聽到一些刺耳的雜訊). 你可以調整[twid.dle]選項來解決這個問題.
<P>此修改版是 Timo Jantunen 所作.
(<CODE>timo.jantunen@hut.fi</CODE> 或 <CODE>jeti@cc.hut.fi</CODE>).
它是可以免費的使用,但用來賺錢則不被允許.
然而,我完全不確定這版權的有效性,因為原有的 <CODE>maplay</CODE> 是在
GNU General Public License 下,而 GNU General Public License
是不許改編版本能有不同的版權宣告.
<P>它可取於
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/maplay3.tar.gz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/maplay3.tar.gz</A><P>
<P>
<H3>splay</H3>
<P>這 <EM>beta</EM> 播放程式是另一個從 <CODE>maplay</CODE>
1.2 改編來的 (事實上,它是 <CODE>maplay</CODE> 1.2+ 所改編的.
而 <CODE>maplay</CODE> 1.2+ 是從 <CODE>maplay</CODE>
改編到 MS Windows 上唯一的版本.)
它加入支援 MPEG Layer 3 音流. 它也能夠播放 WAV 檔.
它還能夠跨過 HTTP 連線接收來播放音流.
<P><CODE>splay</CODE> 的另一項特色是它能被使用成一程式函數庫 (在LGPL下),
所以它可以讓其他程式使用.
它也設法改善表現,藉由使用緒[threading](如果你需要 <CODE>pthread</CODE>
來使用這個特色) 和一些協調整合[inline assembly].
<P><CODE>splay</CODE> 使用命令列介面和選擇性的 X 介面 (它使用 QT).
<P>若在編譯後,它沒有正常工作 (e.g. 它發生 segmentation
faults), 試著不用緒來編譯它.
<P>作者是 Jung Woo-jae (<CODE>jwj95@eve.kaist.ac.kr</CODE>).
<P>它可取得在
<A HREF="http://adam.kaist.ac.kr/~jwj95/">splay's home page</A>.
<P>
<P>
<H3>Sajber Jukebox</H3>
<P>這個程式是 MPEG 圖形介面的聲音播放程式.它是建設在 <CODE>splay</CODE> 上,
它包含支援 MPEG audio layers 到 III. 它也能播放及時從 HTTP
上讀取的 MPEG 聲音流.它也很容易設定.
<P>它使用 QT toolkit
(至少 1.2版以上是需要的).
它也使用 LinuxThreads
程式函數庫 (此二元碼檔只正常運作在 0.5版).
<P>作者是 Joel Lindholm
(<CODE>wizball@kewl.campus.luth.se</CODE>).
<P>最新版可取之於
<A HREF="ftp://kewl.campus.luth.se/pub/jukebox">ftp://kewl.campus.luth.se/pub/jukebox</A>.
<P>
<P>
<H3>amp</H3>
<P>此 <EM>beta</EM> MPEG 聲音播放程式只支援 MPEG Layer 3 音流.
它能夠直接播放在音效卡上,而且它能輸出到自然的 PCM 或 WAV 檔.
這也占相當大的 CPU 負載 (大約在 133MHz Pentium 上要 60% ).
<P>作者是 Tomislav Uzelac
(<CODE>tuzelac@rasip.fer.hr</CODE>). 它可以免費的使用,散佈,
只要它不要在未經允許下商業上販售(雖然如此,
將其包含在含有免費軟的 CD-ROM 上,明確的被允許的).
<P>它可取於
<A HREF="ftp://ftp.rasip.fer.hr/pub/mpeg/amp-0.7.3.tgz">ftp://ftp.rasip.fer.hr/pub/mpeg/amp-0.7.3.tgz</A>.
<P>
<P>
<H3>XAudio</H3>
<P>這個 <EM>alpha</EM> 程式函式庫是被寫成快速完成 MPEG
音流解碼程式函式庫到各種 GUI 前端程式. 它支援
MPEG audio layers I, II, 和 III.它能夠隨機存取位元流[bitstreams].
命令列介面被涵括進來. 而 Motif (Lesstif) 前端程式也被涵括在 Linux
的版本中.
<P>這是由 Gilles Boccon-Gibod, Alain Jobart 和其他人所作的.
連接到此函式庫的前端程式也可免費的下載.
而函式庫本身必須要被授權使用 (原始碼和二元碼程式的授權是可以取得的).
<P>連接到此函式庫的前端程式可以取得在
<A HREF="http://www.mpeg.org/xaudio/">XAudio home page</A>.
<P>
<P>
<H3>Layer 3 Shareware Encoder/Decoder</H3>
<P>事實上,這是種轉換器,它能轉換 MPEG Layer 3 音流到
WAV, AIFF, SND, AIFC, 或是自然的 PCM 取樣檔.
Linux版本並沒有直接輸出聲音到音效卡上. 某人必須先將其轉成其他格式.
<P>然而,當你設法去播放使用 <CODE>sox</CODE> 的轉換檔,你大概將會有雜訊,
因為在 PCM取樣上,字的順序並不正確
(至少在 Intel 平台上是這樣).
你必須給予 <CODE>sox</CODE> 這個選項 <CODE>-x</CODE> 來解決這個問題.
但有些播放程式無法被告知字順序是錯的,所以你可能不必去擔心這個問題.
<P>若你有比較快的電腦 (大概至少要 100Mhz Pentium),
那麼你能試試直接播放 MPEG Layer 3 音流,
而不需要先轉成其他格式聲音檔,像以下例子(這例子假設你正使用
<CODE>sox</CODE> 且播放 44.1kHz 立體取樣.)
<P>
<BLOCKQUOTE><CODE>
<PRE>
$ l3dec foo.mp3 -sto | play -t raw -x -u -w -c 2 -r 44100 -
</PRE>
</CODE></BLOCKQUOTE>
<P><CODE>-r</CODE> 之後的數字是音流的取樣率,而在 <CODE>-c</CODE>
之後數字則是與它是 mono 或 stereo (甚至或 quad)有關.
若這看起來太複雜,你能夠使用像 shell script 或 alias 的東西.
<P>這是共享軟體,版權屬於 Fraunhofer-IIS.
在 x86 系統的Linux上之展示版可取於
<A HREF="ftp://ftp.fhg.de/pub/layer3">ftp://ftp.fhg.de/pub/layer3</A>.
展示版只能轉換 layer III 音流.
<P>
<P>
<H3>X11Amp</H3>
<P>這個 <EM>beta</EM> 軟體是圖形介面的 MPEG音流播放程式,
很像是 Windows 程式 <CODE>winamp</CODE>.
<P>沒有看到任何的版權說明 (我假設它是可以供個人自由的使用).
它是由 Mikael Alm (<CODE>psy@x11amp.bz.nu</CODE>), Thomas Nilsson
(<CODE>fatal@x11amp.bz.nu</CODE>), 和 Olle Hallnas
(<CODE>crocodile@x11amp.bz.nu</CODE>) 所維護.
<P>它可以取得於
<A HREF="http://www.x11amp.bz.nu/">X11Amp's homepage</A>.
目前只有提供給 Intel Linux 和 FreeBSD 用的二元碼檔.
<P>
<P>
<P>
<H2><A NAME="ss2.4">2.4 WAV</A>
</H2>
<P>從 <CODE>sox</CODE> 手冊頁上引述:
<P>
<BLOCKQUOTE>
這出現非常相似 IFF檔,但不完全一樣.
它們是原生的 Windows 3.1 上音樂檔.
明顯地, Windows 3.1 是如此令人難以相信它的重要性,
對於電腦工業上,它明確的必須要有它自己擁有的聲音格式.
</BLOCKQUOTE>
<P>它通常有副檔名 <CODE>.wav</CODE>.
<P>也請看章節
<A HREF="#sec-sox">sox</A> 和
<A HREF="#sec-bplay">bplay</A> 以取得更多除了這樣所列之外的
WAV 播放程式.
<P>
<P>
<H3>wavplay</H3>
<P>這程式支援播放和錄製 WAV 格式.
它使用鎖定[locking]所以一次中只能有一聲音被播放.
它的鎖定能力也能夠使用在分離於聲音的播放能力.
<P>除了 command-line 介面,它也有 Motif 介面,其可與 Lesstif 來配合使用.
<P>原始作者是 Andre Fuechsel
(<CODE>af1@irz.inf.tu-dresden.de</CODE>),
但再被發展至成形的作者 Warren W. Gay
(<CODE>bx249@freenet.toronto.on.ca</CODE> or <CODE>wwg@ica.net</CODE>).
<P>它可取於
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/wavplay-1.0.tar.gz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/wavplay-1.0.tar.gz</A>.
<P>
<P>
<H2><A NAME="ss2.5">2.5 其它東西</A>
</H2>
<P>這節列出播放聲音格式的東西,其不值得各自獨立成一節
(換句話說,唯一播放程式可取得的格式),
或是一個播放程式就能播放比較多的格式.
<P>
<P>
<H3><A NAME="sec-sox"></A> sox</H3>
<P>這程式事實上是個轉換器,也就是它轉換一種聲音格式到另一種.
然而有些版本的 <CODE>sox</CODE>, 當採用 <CODE>play</CODE>, 來播放聲音
( 在 Sound HOWTO 中的 <CODE>play</CODE> 應用程式大概會參照到這).
它支援自然[raw]的 (沒有標頭的)二元嗎及文字的資料, IRCAM Sound Files,
Sound Blaster <CODE>.voc</CODE>, SPARC <CODE>.au</CODE> (w/header), Mac
HCOM, PC/DOS <CODE>.sou</CODE>, Sndtool, 和 Sounder,
NeXT <CODE>.snd</CODE>, Windows 3.1 RIFF/WAV, Turtle Beach <CODE>.smp</CODE>,
CD-R, 以及 Apple/SGI AIFF 和 8SVX 格式.
<P>
<P>在1.3.6x kernels的某些地方, 你可能必須做一些改變在某個檔中,
使得它能直接播放聲音.換句話說,你必須改變 <CODE>sbdsp.c</CODE>
的 179 行,從
<P>
<BLOCKQUOTE><CODE>
<PRE>
if (abuf_size < 4096 || abuf_size > 65536) {
</PRE>
</CODE></BLOCKQUOTE>
<P>變到
<P>
<BLOCKQUOTE><CODE>
<PRE>
if (abuf_size < 1 || abuf_size > 65536) {
</PRE>
</CODE></BLOCKQUOTE>
<P>但然後再做一次.你可以不必這樣做.這樣做將不會斷掉任何東西.
<P>
<P>著作與版權屬很多人, 而且可用在各種用途.
<P>它可取於
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/Lsox-linux.tar.gz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/Lsox-linux.tar.gz</A>.
<P>較近的版本是由 Chris Bagwell 所作
(tt/cbagwell@sprynet.com/) (建立在原始 <CODE>sox</CODE>
的最新 gamma 版本, 而且包含以上修正) 可取於
<A HREF="http://home.sprynet.com/sprynet/cbagwell/projects.html">http://home.sprynet.com/sprynet/cbagwell/projects.html</A>.
此外,這版支援 MS ADPCM 和 IMA ADPCM WAV formats.
<!--
ADPCM
-->
<P>
<P>
<H3><A NAME="sec-bplay"></A> bplay</H3>
<P>這是 <EM>beta</EM> 程式可以播放自然的[raw]聲音, WAV, and VOC 檔.
它也可以錄製這些檔.它使用各種技巧以取得盡可能的最高速,
使得既使在慢機器上能讓吾人尚可接受的執行.
其中一項技巧是要求安裝的程式是setuid root.
偏執狂的希望使用這程式可以想去使用 Ian Jackson
(<CODE>ijackson@gnu.ai.mit.edu</CODE>)所做的 Debian package ,
其關閉需要設 setuid bit 的這種特色.
<P>作者為 David Monro (<CODE>davidm@gh.cs.usyd.edu.au</CODE>).
<P>它可取於
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/bplay-0.96.tar.gz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/bplay-0.96.tar.gz</A>.
<P>
<P>
<H3>SIDPLAY</H3>
<P>這程式模擬 Commodore 64 的聲音介面設備晶片
[Sound Interface Device chip]
(MOS 6581,一般叫它 SID) 和 微處理器單元 (MOS 6510).
所以它可以載入與執行 C64 機械碼的程式,它產生音樂或聲音.
一般而言,這些是獨立碼和資料片斷,它已經是從遊戲和宣傳程式抓取[ripped]
下來的,和已經被直接從 C64 轉過來的.
<P>
<P>它內定使用命令列介面. 也有 Tk 和 QT 介面可分別取得在主要的包裝[package]內.
<P>它是由 Michael Schwendt
(<CODE>sidplay@geocities.com</CODE>) 所維護.
<P>它可以取得在
<A HREF="http://www.geocities.com/SiliconValley/Lakes/5147/">SIDPLAY's home page</A>.
<P>
<P>
<H3>RealAudio Player</H3>
<P>這程式讓你聽到一種專有格式的聲音,其能夠即時跨過網際網路,
而不需要先下傳整首聲音檔.它能夠單獨使用,
但它事實上是想要搭配瀏覽器(最清楚支援的是 Mosaic 和 Netscape)使用.
在沒有 X 下,它不能使用(你不能用它來搭配文字操作模式下的 Lynx 使用).
<P>然而,存在一種嚐試方法(hack)可以在文字模式的主控台下能夠跑
RealAudio 播放程式.
它要有 X virtual frame buffer (Xvfb) server 才可以運作.
它可以取得在
<A HREF="ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/traplayer-0.5.tar.gz">ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/traplayer-0.5.tar.gz</A>.
<!--
traplayer
-->
<P>這程式是由 Progressive Networks, Inc. 所作.
它不可以再散佈,修改...等.
看一下其版權,就會正確詳盡知道你能做什麼. 它可以免費被取得在
<A HREF="http://www.realaudio.com/">RealAudio home page</A>.
<P>
<P>
<H3>cat</H3>
<P>某人也許會想說 <CODE>cat</CODE> ,有點濫用的連結工具,是怎麼處理播放聲音.
我將透通一個例子,來展示它的用途.
<P>
<BLOCKQUOTE><CODE>
<PRE>
$ cat sample.voc > /dev/dsp
$ cat sample.wav > /dev/dsp
$ cat sample.au > /dev/audio
</PRE>
</CODE></BLOCKQUOTE>
<P>處理一個 <CODE>.au</CODE> 檔的 <CODE>cat</CODE> 到 <CODE>/dev/audio</CODE>
通常將會正常工作,而且若夠幸運的使一個檔(在你的平台上)
有正確的位元組順序...等,使用 PCM 取樣(像是
<CODE>.wav</CODE> or <CODE>.voc</CODE>) 到 <CODE>/dev/dsp</CODE>
之聲音檔的 <CODE>cat</CODE> 甚至可能聽起來正確.
<P>那不是 <CODE>cat</CODE> 的完全沒什用的用途.它可能是有用的,舉例來說,
如果有一個聲音檔,而你的所有程式沒有一個認得它,而你知道它使用
PCM 取樣,那麼你也許能得到一個非常接近的想法在其聽起來像是這種方式
(如果你很幸運的話).
<P>
<P>
<HR>
<A HREF="Sound-Playing-HOWTO-3.html">Next</A>
<A HREF="Sound-Playing-HOWTO-1.html">Previous</A>
<A HREF="Sound-Playing-HOWTO.html#toc2">Contents</A>
</BODY>
</HTML>