📄 sound-playing-howto-2.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312"> <META NAME="GENERATOR" CONTENT="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, MultiTrackerScreamTracker 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 所作, 和目前维护是由 AndrewJ. 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>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -