\documentclass[letterpaper]{article}
\nonstopmode
\akai
\usepackage{linuxdoc-sgml}
\usepackage{qwertz}
\usepackage{url}
\usepackage[latin1]{inputenc}
\usepackage{t1enc}
\usepackage[english]{babel}
\usepackage{epsfig}
\usepackage{null}
\def\addbibtoc{
\addcontentsline{toc}{section}{\numberline{\mbox{}}\relax\bibname}
}%end-preamble
\setcounter{page}{1}
\title{The Linux Sound Playing HOWTO ÖÐÒë°æ       }
\author{×÷Õß:Yoo C. Chung,
        {\ttfamily wacko@laplace.snu.ac.kr}\\ 
      ÒëÕß: J.S. Lin, {\ttfamily r6921068@ms.cc.ntu.edu.tw}}
\date{v1.6, 11 August 1998}
\abstract{       ±¾ÎÄ¼þÁÐ³ö Linux ÉÏ²¥·Å¸÷Ê½ÉùÒô¸ñÊ½µÄÓ¦ÓÃ³ÌÊ½.      }


\begin{document}
\maketitle
\tableofcontents

\section{½éÉÜ}

Õâ·ÝÎÄ¼þÊÇ Sound Playing HOWTO (ÈçºÎ²¥·ÅÉùÒô).
ËüÁÐ³öºÜ¶àÉùÒô¸ñÊ½ÒÔ¼°ÓÃÀ´²¥·ÅËüÃÇµÄÓ¦ÓÃ³ÌÊ½.
ËüÒ²ÁÐ³öÒ»Ð©Ê¹ÓÃÔÚÕâ³ÌÊ½Ó¦ÓÃ³ÌÊ½µÄ¹¤×÷{[}hacks]ºÍÉè±¸.
»¹ÓÐÒ»Ð©ÆäËûÓëÉùÒôÓÐ¹Ø,µ«Óë²¥·ÅÃ»ÓÐÖ±½ÓÓÐ¹ØµÄÓ¦ÓÃ³ÌÊ½.
È»¶ø,´ËÎÄ¼þ¾Í {\itshape Ã»ÓÐ\/} ÃèÊöÈçºÎ¼ÜÉèÖ§Ô®ÉùÒôµÄ Linux ÏµÍ³.
Çë²Î¿¼ Jeff Tranter µÄ Linux Sound HOWTO,
È¡µÃ°²×°Ö§Ô®ÉùÒôµÄ Linux ÏµÍ³Ö®²½ÖèÒÔ¼°ËùÖ§Ô®µÄÓ²Ìå.

ÔÚÕâ¶ùÖ»´¦ÀíÕý³£Ê¹ÓÃÕßµÄÉùÒôÓ¦ÓÃ³ÌÊ½.»»»°Ëµ,
ËüÖ»¹ØÐÄÒ»°ãÊ¹ÓÃÕßÔÚÉùÒôµÄÓ¦ÓÃÉÏËùÐèÒªÖªµÀµÄÊÂÇé,
¶ø·ÇÆæÌØµÄÒªËØÏñÊÇÓïÒôºÏ³É,»òÔÚ Sound HOWTO Ëù´¦ÀíµÄÓ²ÌåÒªËØ.






\subsection{±¾ÎÄ¼þµÄ°æÈ¨}

Ö»Òª°æÈ¨Ðû¸æ±£ÁôÏÂ,±¾ÎÄ¼þÊÇ¿ÉÒÔ×ÔÓÉµØÉ¢²¥ÓëÐÞ¸Ä
(Èç¹ûÈÎºÎµÄÐÞ¸Ä¶¼ÄÜÍ¨ÎÒµÄ»°,ÎÒ»áºÜ¸Ð¼¤µÄ.)
È»¶ø,Ëü²»µÃ±»°ÚÔÚÈÎºÎ¸ü½øÒ»²½µÄÏÞÖÆÏÂ,
¶øÇÒ,ÐÞ¸ÄµÄÎÄ¼þ±ØÐëÊÇ¸úÕâÆªÒ»ÑùµÄ°æÈ¨.
ÔÙÕß,×÷Õß¼°Ìá¹©ÕßµÄÀ´Ô´µÄ¸½×¢Ò²±ØÐëÃ÷È·µÄÖ¸³ö.
{[}Also, credit must be given where due.]






\subsection{ËùÁÐ³öÓ¦ÓÃ³ÌÊ½µÄ°æÈ¨}

Èç¹ûÃ»ÓÐÈÎºÎ°æÈ¨µÄÌá¼°,
ÄÇ÷á¸ÃÓ¦ÓÃ³ÌÊ½ÊÇÔÚ GNU General Public License µÄ±£»¤ÏÂ.






\subsection{ÄÄ¡õ¿ÉÒÔÈ¡µÃ±¾ÎÄ¼þ}

±¾ÎÄ¼þ×î½üµÄ¹Ù·½°æ±¾¿ÉÈ¡µÃÔÚ
\nameurl{http://sunsite.unc.edu/LDP/}{Linux Documentation Project}.  
±¾ÎÄ¼þ×î½üµÄ·Ç¹Ù·½°æ±¾¿ÉÈ¡µÃÔÚ 
\nameurl{http://laplace.snu.ac.kr/wacko/howto/}{}.

±¾ÎÄ¼þ(ÒÑ¾­¹ýÊ±)µÄº«ÎÄ°æ¿ÉÈ¡µÃÔÚ 
\nameurl{http://laplace.snu.ac.kr/wacko/howto/Sound-Playing-HOWTO.ks}{}.

±¾ÎÄ¼þµÄÈÕÎÄ°æ¿ÉÈ¡µÃÔÚ
\nameurl{http://jf.gee.kyoto-u.ac.jp/JF/JF-ftp/euc/Sound-Playing-HOWTO.euc}{}.






\subsection{»Øº¯}

ÎÒ²»ÊÇÎÞËù²»ÖªµÄ,¶øÇÒÔÚ´ËÎÒ²¢Ã»ÓÐÊ¹ÓÃ¹ýËùÓÐÕâÐ©Ó¦¸Ã³ÌÊ½
(ÓÐÐ©ÉõÖÁÎÒ»¹Ã»ÊÔ)
ËùÒÔÈôÓÐÐ©´íÎóÊÇÃâ²»ÁËµÄ.ÔÙÕß³ÌÊ½Í¨³£³ÖÐøÔÚ·¢Õ¹ÖÐ,
Òò´Ë,ÎÄ¼þºÜÈÝÒ×¾Í»á¹ýÊ±.
Òò´Ë,Èç¹ûÄã·¢ÏÖÈÎºÎ´íÎó,ÇëÀ´ÐÅ¸øÓèÖ¸½Ì.
½¨Òé»òÆäËûÓë±¾ÎÄ¼þÓÐ¹ØÊÂÇéÒ²¶¼ºÜ»¶Ó­.     






\subsection{¸ÐÐ»}

ÔÚÕâHOWTOÎÄ¼þÖÐÌá¼°µÄËùÓÐÓ¦ÓÃ³ÌÊ½×÷Õß,»¹ÓÐ,
Ìá¹©ÉùÒôÇý¶¯³ÌÊ½µÄHannu Savolainen ,
¼°Ìá¹©×÷ÒµÏµÍ³×î¸ù±¾µÄLinus  Torvalds.

ÎÒ»¹Òª¸ÐÐ» Raymond Nijssen
({\ttfamily raymond@es.ele.tue.nl}), Jeroen Rutten
({\ttfamily jeroen@es.ele.tue.nl}), Antonio Perez
({\ttfamily aperez@arrakis.es}), Ian Jackson
({\ttfamily ijackson@gnu.org}), ÒÔ¼° Peter Amstutz
({\ttfamily amstpi@freenet.tlh.fl.us}) ËùÌá¹©µÄ×ÊÑ¶¼°Ð­Öú.






\section{²¥·Å¸÷ÖÖÉùÒô¸ñÊ½}

ÉùÒô¸ñÊ½ÓÐºÜ¶àÖÖ(WAV,MIDI, MPEG µÈ).
ÒÔÏÂÎÒÃÇÁÐ³ö¸÷ÖÖ¸ñÊ½Óë¿É²¥·ÅÆä¸ñÊ½µÄÓ¦ÓÃ³ÌÊ½. 






\subsection{\idx{MIDI}}

MIDI ¾ÍÊÇ Musical Instrument Device InterfaceµÄËõÐ´.
MIDIµµ°¸Í¨³£ÓÐÑÓÉìµµÃû {\ttfamily .mid}.  ËüÃÇ°üº¬±àÅÅµÄÑ¶Ï¢,
Ò²¾ÍÊÇºÎÊ±ÓÃÊ²÷áÀÖÆ÷ÒÔºÎÖÖ·½Ê½À´²¥·Å...µÈµÄÑ¶Ï¢.
¸ù¾ÝÄãµÄÓ²Ìå(Ò²ÐíÓëÄãÓÃÀ´²¥·ÅµÄÈíÌåÒ²ÓÐ¹Ø),
²¥·Å³öÀ´µÄÉùÒô¿ÉÄÜºÜÕðº³,Ò²¿ÉÄÜ³¹µ×ÁîÈËÊ§Íû.     






\subsubsection{\cdx{adagio}}

´Ë°ü×°°üº¬ {\ttfamily mp} (ÃüÁîÁÐÏÂµÄMIDIµµ²¥·Å³ÌÊ½)ºÍ {\ttfamily xmp}
(XView ½éÃæÏÂµÄ MIDI µµ²¥·Å³ÌÊ½),
²»ÒªÓëËùÎ½µÄÄ£×é{[}module]²¥·Å³ÌÊ½»ìÏý {\ttfamily xmp}).
Äã½«ÐèÒª SlingShot ÑÓÉìÀ´Ê¹ÓÃ {\ttfamily xmp}).
Ëü°üº¬ÆäËû³ÌÊ½À´²¥·Å\idx{Adagio scores}.             



Èç¹ûÄãÓÐ GUS, {\ttfamily mp} ÄÜ¹»²¥·ÅMODµµ
( ¿´ÕÂ½Ú \ref{sec-modules} {(Modules)} ,
µÃµ½¸ü¶àÓëÄ£×éÓÐ¹ØµÄ×ÊÑ¶).           

ÓÐÐ©ÈÅÈËµÄ³ô¡õ{[}bug](µ± 0.5 °æÔÚÐ©Ó²ÌåÉÏ)ÊÇÉùÒôÖÐ¶ÏÔÚÖÕ¶Ë.
Ò²¾ÍÊÇ,Ã»ÓÐÕÕÔ­±¾ MIDI µµ¼ÇÂ¼µÄÖÐ¶ÏÉùÒô·½Ê½,
¶øÊÇÖÐ¶Ï²¥·ÅÒô·ûÔÚ×îááÒô·û»¹ÓÐÒ»¶ÎÒô³ÌÖ®Ç°.
ËüÒÑ²»×èÖ¹ÎÒÊ¹ÓÃ {\ttfamily mp}, Ëü¿ÉÄÜ×èÖ¹Ä³ÈËÊ¹ÓÃËüÔÚ '¼´Ê±'{[}real]¹¤×÷.
ËüµÄ°²×°Ò²Ïà¶ÔµØ½ÏÂý.  

Õâ°ü×°ÖÐ²¢Ã»ÓÐÌáµ½°æÈ¨(ÖÁÉÙÎÒÃ»ÕÒµ½),
ËùÒÔÎÒ¼ÙÉèËüÄÜ¹»×ÔÓÉµÄÔÙÉ¢²¼ÓëÐÞ¸Ä. (½åÓÉÖø×÷È¨·¨µÄÑÏ¸ñ½âÊÍ,
Ã»ÓÐ¶«Î÷¿ÉÒÔ¸øÒ»¸öÈËÓÐÈ¨ÀûÈ¥×öÕâÑùµÄÊÂÇé,
µ«ÎÒÓÐµãÒÉ»óÕâ»áÊÇÔ­×÷ÕßµÄÓÃÒâÂð.)

ËüÊÇÓÉ Greg Lee ½« CMU MIDI Toolkit ÒÆÖ²µ½ Linux µÄ.
(though there was enough added to make this questionable)
({\ttfamily lee@uhunix.uhcc.hawaii.edu}).

Ëü¿ÉÒÔÈ¡ì¶ \nameurl{ftp://tsx-11.mit.edu/pub/linux/packages/sound/adagio05.tar.gz}{}.
ÕâÑùËù°üº¬µÄ¶þÔªµµÊÇÒÔ a.out ¸ñÊ½ (Á¬½áµ½ÒÔÇ°µÄ³ÌÊ½º¯Ê½¿â),
¶øÔÚ¶þÔªÂëµÄµµ {\ttfamily xmp} Éè¶¨ÔÚ X11R6 »·¾³ 
(XFree86 3.1.1, libc 4.7.2).
{\ttfamily mp} µÄ¶þÔªÂëµÄµµÔÚ {\ttfamily a.out} »·¾³¿ÉÒÔ¹¤×÷ºÜºÃ.

Äã½«ÐèÒª·ÑµãÅ£Á¦À´±àÒëËü.
ÊÂÊµÉÏ,ÄÇÒ²²»ÐèÒª·ÑÌ«¶àÁ¦ÆøÀ².
ÄãËùÒª×÷µÄ¾ÍÊÇÔÚ Makefile ÄÚµÄ {\ttfamily SHROBJ} ºÍ {\ttfamily XMPOBJ}
µÄÎ²¶Ë¼ÓÉÏ {\ttfamily -lfl}. ÕâÊÇÁ¬½áµ½ {\ttfamily flex} ³ÌÊ½º¯Ê½¿â,
Æä²¢²»ÊÇÔ¤ÏÈ¾ÍÁ¬½áµÄ.È»ááÕÕ°²×°²½Öè×÷.ÈôÄãÏë±àÒë {\ttfamily xmp},
²»ÒªÍüÁËÒªÓÐ°²×° XView ºÍ SlingShot extensions .         






\subsubsection{\idx{TiMidity}}

ÓÐÐ©ÈË½¨ÒéÕâÖÖ {\itshape ÊµÑéÐÔµÄ\/} ³ÌÊ½,ÒòÎªÓÐºÃµÄÒôÖÊ
(ÕâÊÇÕæµÄ,ÔÚ Sound Blaster 16ÉÏ,Ëü±ÈÆð {\ttfamily mp ºÃ¶àÁË,
¶øÇÒ´ó¸Å²»»áÓë¾ßÓÐ²¨ÐÎºÏ³ÉÆ÷[wavetable]µÄÒôÐ§¿¨ÏñÊÇ GUS Ïà²îÌ«¶à.)
È»¶øËüÃæÁÙ¸ß CPU ¸ºÔØ. Ëü²¥·Å MIDI ÊÇ½åÓÉ½« MIDI ×ª»»³É WAV,
È»ááÔÙ²¥·Å WAV (ÄãÒ²ÄÜ¹»×ª»» MIDI µµ³É WAV µµ,¶ø²»²¥·ÅËü,
Èç¹ûÄãÏëÒªµÄ»°.) Õâ¾ÍÊÇ CPU Èç´ËÖØÒªµÄÀíÓÉ.
ËüÒ²ÓÐ¿ÉÑ¡ÔñÐÔµÄ ncurses, SLang, Tcl}Tk or Motif ½éÃæ.

ÄãÐèÒªÓÐ Gravis Ultrasound patch files À´Ê¹ÓÃÕâ¸ö³ÌÊ½. 
¼ìÊÓ TiMidity °üº¬µÄ FAQ , »ñÈ¡¸ü¶à×ÊÑ¶. 

×÷ÕßÊÇ Tuukka Toivonen ({\ttfamily tt@cgs.fi}).

×îÐÂµÄ TiMidity °æ±¾¿ÉÈ¡µÃÔÚ \nameurl{http://www.cgs.fi/tt/timidity/}{TiMidity home page}.  
´ËÊ×Ò³Ò²ÓÐÁ¬½áµ½Ð¡³ÌÊ½¿âµÄµØ·½º¬ÓÐ GUS patches.






\subsubsection{\cdx{playmidi}}

ÕâÊÇÒ»¸ö MIDI ²¥·Å³ÌÊ½,¿ÉÓÃÀ´²¥·Å FM, GUS, ¼°Íâ½Ó MIDI.
ÓëÆäËü MIDI ²¥·Å³ÌÏà½ÏÏÂ,ËüÓ¦¸ÃÓÐ½Ï¿ìµÄ°²×°Ê±¼ä.
ËüÒ²ÄÜ¹»²¥·Å Creative Music Files ¸ñÊ½, Microsoft RIFF files¸ñÊ½,
ÒÔ¼°´ÓÏñ Ultima 7 ÓÎÏ·À´µÄ½Ï´óÖ®µµ°¸.

ËüÓÐ X ½éÃæºÍ SVGA ½éÃæ. ËüÒ²ÓÐÑ¡Ïî¼´Ê±²¥·Å½åÓÉ×·×ÝÃ¿¸öÍ¨µÀ
{[}channel]µÄËùÓÐ¸½×¢ÒÔ¼°Ä¿Ç°²¥·ÅµÄÊ±¿Ì
(×Ô¶¯µÄ±»ÄÚº¬ÔÚ {\ttfamily xplaymidi} ºÍ {\ttfamily splaymidi}).

ÄãÓ¦¸Ã×öÒÔÏÂ¶¯×÷           

\begin{tscreen}
\begin{verbatim}
$ splaymidi foo.mid; stty sane
              
\end{verbatim}
\end{tscreen}


ÈôÄãÒªÊ¹ÓÃ SVGA ½éÃæÊ±. ÒòÎªËü²»ÊÊµ±µØÖØÖÃ{[}reset]ÖÕ¶Ë tty Ä£Ê½.
SVGA ½éÃæÔÚ²»¾Ã½«À´¿ÉÄÜ»á±»È¥³ý. 

ËüµÄ×÷ÕßÊÇ Nathan Laredo
({\ttfamily laredo@gnu.org} »ò {\ttfamily laredo@ix.netcom.com}).

Ëü¿ÉÈ¡ì¶ \nameurl{ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/playmidi-2.3.tar.gz}{}.






\subsection{\idx{Modules}\label{sec-modules}}

Modules (ÔÚµçÄÔÒôÀÖÖÐ)ÊÇÊýÎ»ÒôÀÖµµ, ÓÉÒ»×éÑù±¾¼°ÐòÁÐ×ÊÑ¶×é³É,
¸æÖªºÎÊ±²¥·ÅÑù±¾(ÀÖÆ÷)ÔÚÄÄ¸ö¹ìµ÷Ê²÷áÒô,¿É×ÔÓÉÑ¡ÔñµØ±íÏÖÐ§¹û,
¾ÙÀýÏñÊÇ Õñ¶¯Òô{[}vibrato].

Ëü³¬Ô½ MIDI µÄºÃ´¦ÊÇËü¼¸ºõÄÜ°üº¬ÈÎºÎÉùÒô(°üÀ¨ÈËÀàµÄÓïÒô).
ÁíÒ»ºÃ´¦ÊÇËüÔÚ¸÷Æ½Ì¨ÉÏÌýÆðÀ´¶¼Ò»Ñù,ÒòÎªÈ¡ÑùÊÇÔÚÄ£×éÖÐ.
È±µãÊÇ¸ú MIDI ±ÈÆðÀ´µµ°¸½Ï´ó.ÁíÒ»È±µãÊÇËüÃ»ÓÐÕæÕýµÄ±ê×¼¸ñÊ½
(Î¨Ò»µÄÕæÕý±ê×¼ÊÇ ProTracker,¶øÓÖºÜ¶àÄ£×é²¢²»ÓëÆäÏàÈÝ).
ËüÆðÔ´ÔÚ Amiga.

×îÆÕÍ¨µÄ¸ñÊ½ÊÇÓÐ¸±µµÃûÎª {\ttfamily .mod}. »¹ÓÐºÜ¶àÆäËüÖÖ¸±µµÃû,
ÓëËüÃÇËùÊôµÄ¸ñÊ½ÓÐ¹Ø. 






\subsubsection{\cdx{tracker}}

ÕâÊÇ¿ÉÐ¯´ø³ÌÊ½(ËüÒÑ¾­±»ÒÆÖ²{[}port]µ½¸÷ÖÖÆ½Ì¨)
²¥·ÅÒô¹ì{[}Soundtracker]ºÍÇ°¹ì{[}Protracker]ÒôÀÖÄ£×é.
ËüÊ¹ÓÃ 16 bit µÄÁ¢ÌåÊä³ö{[}stereo],¶øÎÒÈÏÎªÒôÖÊºÜ°ô.
ÈôÄãÐèÒªÒ»¸ö¼òµ¥·½Ê½¼õÉÙ CPU ¸ºµ£,¿ÉÊ¹ÓÃ {\ttfamily -mono} Ñ¡Ïî.

ÕâÊÇ¿É×÷ÎªÀñÎïµÄ{[}giftware]³ÌÊ½(ÒýÓÃ×ÔÔ­×÷Õß).
×÷ÕßÎª Marc Espie ({\ttfamily Marc.Espie@ens.fr}).

º¬ Makefile µµµÄ°æ±¾ÒÑ¾­ÓÃÁ¦×ª{[}tweaked]µ½ Linux,
Ëü¿ÉÈ¡ì¶ \nameurl{ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/tracker-4.3-linux.tar.gz}{}.




\subsubsection{\cdx{gmod}}

ÕâÊÇ Gravis Ultrasound ¿¨µÄÒôÀÖÄ£×é²¥·Å³ÌÊ½.
4/6/8 channel MOD, 8 channel 669, MultiTracker
ScreamTracker III (S3M) ¶¼ÊÇ±»Ö§Ô®µÄ¸ñÊ½.

ËüÒªÇó 3.0 °æÒÔááµÄÉùÒôÇý¶¯³ÌÊ½.
¶øÇÒµ±È»ÊÇ GUS. Äã¿ÉÒÔÐèÒªÐÞ¸ÄºËÐÄÀ´Ê¹ÒôÁ¿¿ØÖÆ³ÉÎªÄãËùÒªµÄ.     

ÕâÊÇ X ½éÃæ.ËüÊ¹ÓÃ QT toolkit (ÐèÒª 0.99 °æÒÔáá).
²éÑ¯Ò»ÏÂ \nameurl{http://www.troll.no/}{QT toolkit homepage}  È¡µÃ¸ü¶àÓÐ¹Ø
QT µÄ×ÊÑ¶.

ÕâÊÇ¿ÉÒÔ×ÔÓÉµÄÉ¢²¼. ËüÊÇÓÉ
Hannu Savolainen Ëù×÷, ºÍÄ¿Ç°Î¬»¤ÊÇÓÉ Andrew
J. Robinson ({\ttfamily robinson@cnj.digex.net}).

Ëü¿ÉÈ¡ì¶ \nameurl{ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/gmod-3.1.tar.gz}{}.






\subsubsection{\idx{MikMod}}

Õâ¸ö¿ÉÐ¯´øÄ£×é²¥·Å³ÌÊ½¿ÉÒÔ²¥·Å XM, ULT, STM, S3M, MTM,
MOD ºÍUNI ¸ñÊ½.( UNI ¸ñÊ½ÊÇ±» MikMod µÄÄÚ²¿¸ñÊ½.)
ËüÓÐÖ§Ô® ¼âÐ¥Éù{[}zipped]µÄÄ£×éµµ. ËüÊ¹ÓÃ 16 bit Á¢ÌåÉùÒôÊä³ö.
ÈôÄãÒª¼õµÍ CPU ¸ºµ£,¿É¼ÓÉÏ {\ttfamily -m} Ñ¡Ïî(µ¥¶ËÊä³ö).  

Unix °æ±¾Ê¹ÓÃ ncurses »ò Tcl/Tk ×÷ÎªÆä½éÃæ.
Ëü¿ÉÄÜÊ¹ÓÃ³É³ÌÊ½º¯Ê½¿â{[}library],²»½öÊÇ¶ÀÁ¢³ÌÊ½¶øÒÑ.

ËüµÄÔ­Ê¼×÷ÕßÊÇ Jean-Paul Mikkers
({\ttfamily mikmak@via.nl}).  ËüÄ¿Ç°ÊÇÓÉ Jake Stine
({\ttfamily dracoirs@epix.net})À´Î¬»¤.  ÕâÊÇ¹²ÏíÈíÌå,
Èç¹ûÄãÒªÊ¹ÓÃÔÚÉÌÒµÉÏ,ÄÇ÷áÄã±ØÐë×¢²á.
ÄãÒ²±ØÐëÈ¡µÃÔÊÐí²Å¿ÉÔÚÉÌÒµÉÏµÄÔÙÉ¢²¼
(·ÇÉÌÒµÉÏµÄÔÙÉ¢²¼²»ÐèÒªÈ¡µÃÔÊÐí).

Õâ¿ÉÒÔÈ¡µÃÔÚ \nameurl{http://www.freenet.tlh.fl.us/amstpi/mikmod.html}{MikMod home page}.






\subsubsection{\cdx{xmp}}

ÕâÊÇ¸ö Ä£×é²¥·Å³ÌÊ½ (²»ÒªÓë Adagio's {\ttfamily xmp} »ìÏý),
Ëü¿ÉÒÔ²¥·Å  MOD, S3M, MTM, PTR, STM, 669, ºÍ XM Ä£×é
(ÆäËû¸ñÊ½Ò²±»Ö§Ô®,µ«ÈÔÔÚÊµÑé½×¶Î»òÎ´Íê³É). Èç¹ûÄãÓÐ 
¾ßÓÐ²¨ÐÎºÏ³ÉÆ÷{[}wavetable synthesis]µÄÒôÐ§¿¨
(GUS »ò SoundBloaster 32AWE), 
ÄÇ÷áÄã¿ÉÊ¹ÓÃÕâÀàÒôÐ§¿¨À´½µµÍ CPU µÄ¸ºÔØ.
ËüÒ²Ö§Ô®Ñ¹ËõÄ£×é.

{\ttfamily xmp} µÄ X Ç°¶Ë³ÌÊ½Ò²¿ÉÒÔÈ¡µÃÁË.

×÷ÕßÊÇ Claudio Matsuoka
({\ttfamily claudio@pos.inf.ufpr.br}) ºÍ Hipolito Carraro Jr. 

Õâ¿ÉÈ¡µÃÔÚ \nameurl{http://xmp.home.ml.org/}{xmp home page}. 




\subsubsection{\cdx{s3mod}}

Õâ³ÌÊ½²¥·Å 4/6/8 ¹ìµÄÄ£×éºÍ Scream Tracker 3 Ä£×é.
Ëü½åÓÉÄÚ¶¨µÄ 22000 Hz È¡ÑùÆµÂÊµÄÊ¹ÓÃ 8 bit µ¥¶ËÊä³ö{[}mono].
Äã¿ÉÒÔÊ¹ÓÃ {\ttfamily -s} Ñ¡ÏîÀ´Çý¶¯Á¢ÌåÒô{[}stereo],
{\ttfamily -b} À´Çý¶¯ 16 bit Êä³ö,
ºÍ {\ttfamily -f} À´Éè¶¨È¡ÆµÂÊ.È»¶ø,ÉùÒôÊä³ö±È tracker Ôã (ÓÐµãÔÓÑ¶),
ËùÒÔÎÒ½¨ÒéÊ¹ÓÃ {\ttfamily tracker} È¡´ú {\ttfamily s3mod} À´²¥·ÅÔ­Ê¼ MOD µµ
(³ý·ÇÄãÓÐ²»¹»Á¦µÄ»úÆ÷).ËüÏà½Ïì¶ tracker ÓÐÔ¶Ð¡ì¶ CPU ¸ºÔØ.

¸Ã°æÈ¨ÎªDaniel Marks ºÍ David Jeske
({\ttfamily jeske@uiuc.edu}) ËùÓÐ, µ«ÄãÄÜ¶ÔËü×öÈÎºÎ´¦Àí
(³ýÁËÄã²»ÄÜÐû³ÆÄãËùÐ´Íâ).

Ëü¿ÉÈ¡ì¶ \nameurl{ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/s3mod-v1.09.tar.gz}{}.






\subsubsection{\cdx{mod}}

Õâ¸ö {\itshape beta\/} ³ÌÊ½²¥·Å MODs (15/31-ÀÖÆ÷,µ½ 32 ÖÖÉùÒô),
MTMs, ULTs ºÍ S3Ms ÔÚ Gravis Ultrasound ¿¨ÉÏ.ËüÒ²ÄÜÓÃÀ´°ü×°Ä£×é,
ÈôÄãÓÐ°²×° {\ttfamily gzip}, {\ttfamily lharc}, {\ttfamily unzip}, ºÍ {\ttfamily unarj} .
Ëü²»ÄÜ²¥·Å Powerpacked Ä£×é»òÄ³Ð© Amiga ×÷ÇúÕß°ü×°µÄÄ£×é
{[}"PACK" signature].

ÕâÒªÇóÖÁÉÙ 3.0 °æµÄÉùÒôÇý¶¯³ÌÊ½.
ËüÔÚ 2.90-2 °æÒÔÇ°µÄÉùÒôÇý¶¯³ÌÊ½ {\itshape ²»»á\/} Õý³£¹¤×÷.
ÎÄ×Ö½éÃæÒªÇó ncurses. »¹ÓÐ°üº¬Ê¹ÓÃ Tcl/Tk µÄ X ½éÃæ.

×÷ÕßÊÇ Mikael Nordqvist ({\ttfamily mech@df.lth.se} or
{\ttfamily d91mn@efd.lth.se}).

Ëü¿ÉÈ¡ì¶ \nameurl{ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/mod-v0.81.tgz}{}.






\subsubsection{\cdx{nspmod}}

ÕâÊÇ {\itshape alpha\/} Ä£×é²¥·Å³ÌÊ½,Ëü¿ÉÒÔ²¥·Å MTM, S3M, ºÍ MOD Ä£×é.
ËüÊÇÆóÍ¼³ÉÎªÄ£×é²¥·Å³ÌÊ½ÔÚÒôÐ§¿¨ÉÏÃ»ÓÐ DSP ÏÂ.
(²»ÒªÓë Creative Labs ¹«Ë¾Ðû³ÆµÄ DSP Ïà»ìÏý.)
ËüÉÔÎ¢Õ¼ÓÃ CPU ¸ºµ£, ºÍ {\ttfamily tracker} ±È½ÏÆðÀ´ÏàËÆ.



ËüÓÐÏîÌØÉ«ÊÇ¿ÉÈÃÄã×Ô¼ºÏëÒªµÄÄ£×éÖØ¸²{[}modules loop].
ÖØ¸²´ÎÊýÄÜ¹»½åÓÉÊ¹ÓÃ {\ttfamily -l} Ñ¡ÏîÀ´ÏÞÖÆ.
ËüÖ»Ê¹ÓÃ 8 bit ÉùÒôÊä³ö(µ±ÔÚ 0.1 °æÊ±).

×÷ÕßÊÇ This was written by Toru Egashira
({\ttfamily toru@jms.jeton.or.jp}).

Ëü¿ÉÈ¡ì¶ \nameurl{ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/nspmod-0.1.tar.gz}{}.






\subsubsection{\cdx{yampmod}}

Õâ¸ö {\itshape alpha\/} ³ÌÊ½ÊÇ±»Éè¼ÆÊ¹ÓÃ×îÐ¡ CPU ×ÊÔ´,À´²¥·Å 4-channel 
Ä£×é. Ëü
{\itshape ²»ÊÇ\/} ±»Éè¼Æ²úÉú¸ßÒôÖÊ.
ËùÒÔ²úÉúµÄÎ¨Ò»ÉùÒôÊä³öÊÇ 22 kHz µ¥¶ËÊä³ö{[}mono].
ÔÙÕß,ÕâÊä³ö²¢Î´´ïËüÓ¦ÓÐµÄÇåäÀ³Ì¶È,±íÏÖ³öËüÊÇ alpha °æ.

×÷ÕßÊÇ David Groves
({\ttfamily djg@djghome.demon.co.uk}).

Õâ¿ÉÈ¡ì¶ \nameurl{ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/yampmod-0.1.tar.gz}{}.






\subsection{\idx{MPEG ÒôÁ÷}}

MPEG ÊÇ±ê×¼½â¶ÁÔÚÊýÎ»´¢´æÉè±¸ÉÏÖ®Ó°Ïñ¼°Ïà¹ØÉùÒô±àÂë.
MPEG Í¨³£¾Í»áÁªÏëµ½Ó°Ïñ,¶ø¸Ã±ê×¼µÄÉùÒô²¿·Ö¿É±»·Ö¿ªÀ´Ê¹ÓÃ.
¸Ã±ê×¼µÄÉùÒô²¿·Ö¶¨Òå³ÉÈýÖÖ²ã´Î, layer I, II, Óë III.
ÄÜ¹»½âÂë½Ï¸ß²ã´ÎµÄ²¥·Å³ÌÊ½Ò²ÄÜ½âÂë½ÏµÍ²ã´Î.
(¾ÙÀý,layer III µÄ²¥·Å³ÌÊ½ÄÜ¹»²¥·Å layer IIµÄµµ.
¶ø layer I MPEG ÉùÒôµµÍ¨³£ÓÐ¸±µµÃû {\ttfamily .mpg}
(ËùÒÔÈôÓÐÒ»¸öµµÊÇÕâÑùµÄ¸±µµÃû,Æä²»ÄÜ±» MPEG Ó°Ïñ²¥·Å³ÌÊ½À´²¥Ó³,
Ëü´ó¸ÅÊÇÒôÁ÷{[}audio stream].), layer II
Í¨³£ÓÐ¸±µµÃû {\ttfamily .mp2}, ¶ø layer III
Í¨³£ÓÐ¸±µµÃû {\ttfamily .mp3}. ÕâÖÖÉùÒôÑ¹Ëõ·Ç³£ºÃ.
Ò»¸ö 2 megabytes µÄ layer II MPEG
ÉùÒôµµ´ó¸ÅÄÜ±Á½ô×ÔÒ»¸ö 25 megabytes µÄ×ÔÈ» PCM È¡Ñùµµ,
ÇÒ±£ÓÐÒ»ÑùµÄÆ·ÖÊ.                






\subsubsection{\idx{mpg123}}

Õâ¸ö {\itshape beta\/} ³ÌÊ½ÊÇ²¥·Å MPEG ÒôÁ÷ºÜÓÐÐ§ÂÊ,
ËüÖ§Ô® layers I, II, and III.ËüÊÇ´ÓºÜ¶àÔ­Ê¼³ÌÊ½Ëù½¨Á¢µÄ³ÌÊ½Âë.
Ëü¿ÉÒÔÖ±½Ó²¥·Å¼°Ê±µÄÓÉ HTTP ¶Áµ½µÄÒôÁ÷.
(»»¾ä»°Ëµ,Ä³ÈË¿ÉÒÔÖ±½ÓÍ¸¹ýÈ«Çò×ÊÑ¶ÍøÀ´²¥·Å MPEG ÒôÁ÷.)

Ö÷Òª×÷ÕßÊÇ Michael Hipp
({\ttfamily Michael.Hipp@student.uni-tuebingen.de}).
ËüµÄÎ´ÐÞ¸ÄµÄÐÎÊ½¿ÉÒÔÃâ·ÑµÄÊ¹ÓÃ,É¢²¼ì¶·ÇÉÌÒµÓÃÓà.
°üº¬Ãâ·ÑÈíÌåµÄÊÕÂ¼ (Ïñ FTP ËÅ·þÆ÷µÄ CD-ROM µµ°¸×ÊÁÏ¿½±´{[}images]
Ã÷È·µØµÄÔÊÐí.                       

ËüµÄ×îÐÂ°æ±¾¿ÉÈ¡ì¶ \nameurl{http://mpg.123.org/}{mpg123 homepage}.






\subsubsection{\cdx{maplay 1.2}}

´Ë MPEG ÉùÒôÁ÷²¥·Å³ÌÊ½Ö»Ö§Ô® layer I ºÍ layer II ÒôÁ÷,
¶øÈ±ÉÙÖ§Ô® layer III ÒôÁ÷. ÔÚ Linux,ËüÖ»Ö§Ô® 16 bit µÄÒôÐ§.

ËüºÜÇ¿ÁÒÒªºÃµÄ CPU, Ëü»¨ÁË 55\% µÄ CPU time ÔÚ 60MHz Pentium.
ÔÚ 66MHz 486ÉÏ,ËüµÄÊä³ö»áÁîÈËÎÞ·¨ÈÌÊÜµÄ,ÒòÎª CPU ÎÞ·¨¸ÏÉÏÉùÒô.
ÈôÕâ·¢ÉúÔÚÄãÄÇ,ÄãÉè·¨²¥·ÅÒÔÖ»ÓÃÒôÁ÷µÄµ¥±ß²¥·Å
(Ê¹ÓÃ {\ttfamily -l} »ò {\ttfamily -r} Ñ¡Ïî)È¡´úÄÚ¶¨µÄÁ¢ÌåÒôÖÊ.

ÎªÁËÒªË³Àû±àÒë,ÔÚÆäµµ°¸ÖÐÓÐÐ©¸Ä±äÊÇÐèÒªµÄ.
»»¾ä»°Ëµ,ÄãÐèÒª¼ÓÒÔÏÂ¼¸ÐÐµ½ {\ttfamily configuration.sh}
ËùÆðÊ¼µÄµµ°¸ÖÐ.

\begin{tscreen}
\begin{verbatim}
#! /bin/sh
              
\end{verbatim}
\end{tscreen}


×÷ÕßÊÇ Tobias Bading ({\ttfamily bading@cs.tu-berlin.de}).
{\ttfamily maplay} 1.2 ¿ÉÈ¡ì¶  \nameurl{ftp://ftp.cs.tu-berlin.de/pub/misc/maplay1.2/maplay1_2.tar}{}.






\subsubsection{\cdx{maplay 1.3b}}

ÕâÊÇ·Ç¹Ù·½°æ°æ±¾(»»¾ä»°Ëµ,²»ÊÇÔ­×÷ÕßËù×÷µÄ {\ttfamily maplay} 1.2,
ËùÒÔËüÄÜÅÜ±È½ÏµÍ CPU ¸ºÔØ. ËüÖ÷Òª½åÓÉÊ¹ÓÃÊÂÊµÉÏ¹¤×÷ÔÚ SPARC
ÒÔÍâµÄÆäËûÆ½Ì¨ÉÏµÄ u-law output À´´ï³É.
×¢ÒâµÄÊÇËüÄÚ¶¨Ê¹ÓÃ u-law output,
ËùÒÔÉùÒôÆ·ÖÊÊÇ±È½Ï²îµÄ.

´Ë¸ÄÐÞ¸Ä°æÊÇ Orlando Andico Ëù×÷
({\ttfamily orly@gibson.eee.upd.edu.ph}).

Õâ¿ÉÈ¡ì¶ \nameurl{ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/maplay-1.3b-Linux.tar.gz}{}.






\subsubsection{\cdx{maplay3}}

Õâ²¥·Å³ÌÊ½ÊÇ´Ó {\ttfamily maplay} 1.2 ¸Ä±àÀ´µÄ.
Ëü¼ÓÈëÖ§Ô® MPEG Layer 3 ÉùÒôÁ÷.Ä¿Ç°ËüËÆºõÓÐÐ©³ô¡õÔÚ²¥·ÅÊ±
(Äã¿ÉÒÔÌýµ½Ò»Ð©´Ì¶úµÄÔÓÑ¶). Äã¿ÉÒÔµ÷Õû{[}twid.dle]Ñ¡ÏîÀ´½â¾öÕâ¸öÎÊÌâ.

´ËÐÞ¸Ä°æÊÇ Timo Jantunen Ëù×÷.
({\ttfamily timo.jantunen@hut.fi} »ò {\ttfamily jeti@cc.hut.fi}).
ËüÊÇ¿ÉÒÔÃâ·ÑµÄÊ¹ÓÃ,µ«ÓÃÀ´×¬Ç®Ôò²»±»ÔÊÐí.
È»¶ø,ÎÒÍêÈ«²»È·¶¨Õâ°æÈ¨µÄÓÐÐ§ÐÔ,ÒòÎªÔ­ÓÐµÄ {\ttfamily maplay} ÊÇÔÚ
GNU General Public License ÏÂ,¶ø GNU General Public License
ÊÇ²»Ðí¸Ä±à°æ±¾ÄÜÓÐ²»Í¬µÄ°æÈ¨Ðû¸æ.

Ëü¿ÉÈ¡ì¶  \nameurl{ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/maplay3.tar.gz}{}






\subsubsection{\cdx{splay}}

Õâ {\itshape beta\/} ²¥·Å³ÌÊ½ÊÇÁíÒ»¸ö´Ó {\ttfamily maplay}
1.2 ¸Ä±àÀ´µÄ (ÊÂÊµÉÏ,ËüÊÇ {\ttfamily maplay} 1.2+ Ëù¸Ä±àµÄ.
¶ø {\ttfamily maplay} 1.2+ ÊÇ´Ó  {\ttfamily maplay}
¸Ä±àµ½ MS Windows ÉÏÎ¨Ò»µÄ°æ±¾.)
Ëü¼ÓÈëÖ§Ô® MPEG Layer 3 ÒôÁ÷. ËüÒ²ÄÜ¹»²¥·Å WAV µµ.
Ëü»¹ÄÜ¹»¿ç¹ý HTTP Á¬Ïß½ÓÊÕÀ´²¥·ÅÒôÁ÷.  

{\ttfamily splay} µÄÁíÒ»ÏîÌØÉ«ÊÇËüÄÜ±»Ê¹ÓÃ³ÉÒ»³ÌÊ½º¯Êý¿â (ÔÚLGPLÏÂ),
ËùÒÔËü¿ÉÒÔÈÃÆäËû³ÌÊ½Ê¹ÓÃ.
ËüÒ²Éè·¨¸ÄÉÆ±íÏÖ,½åÓÉÊ¹ÓÃÐ÷{[}threading](Èç¹ûÄãÐèÒª {\ttfamily pthread}
À´Ê¹ÓÃÕâ¸öÌØÉ«) ºÍÒ»Ð©Ð­µ÷ÕûºÏ{[}inline assembly].

{\ttfamily splay} Ê¹ÓÃÃüÁîÁÐ½éÃæºÍÑ¡ÔñÐÔµÄ X ½éÃæ (ËüÊ¹ÓÃ QT). 

ÈôÔÚ±àÒëáá,ËüÃ»ÓÐÕý³£¹¤×÷ (e.g. Ëü·¢Éú segmentation
faults), ÊÔÖø²»ÓÃÐ÷À´±àÒëËü.

×÷ÕßÊÇ Jung Woo-jae ({\ttfamily jwj95@eve.kaist.ac.kr}).

Ëü¿ÉÈ¡µÃÔÚ \nameurl{http://adam.kaist.ac.kr/jwj95/}{splay's home page}.






\subsubsection{\cdx{Sajber Jukebox}}

Õâ¸ö³ÌÊ½ÊÇ MPEG Í¼ÐÎ½éÃæµÄÉùÒô²¥·Å³ÌÊ½.ËüÊÇ½¨ÉèÔÚ {\ttfamily splay} ÉÏ,
Ëü°üº¬Ö§Ô® MPEG audio layers µ½ III. ËüÒ²ÄÜ²¥·Å¼°Ê±´Ó HTTP
ÉÏ¶ÁÈ¡µÄ MPEG ÉùÒôÁ÷.ËüÒ²ºÜÈÝÒ×Éè¶¨.

ËüÊ¹ÓÃ QT toolkit
(ÖÁÉÙ 1.2°æÒÔÉÏÊÇÐèÒªµÄ).
ËüÒ²Ê¹ÓÃ LinuxThreads
³ÌÊ½º¯Êý¿â (´Ë¶þÔªÂëµµÖ»Õý³£ÔË×÷ÔÚ 0.5°æ).

×÷ÕßÊÇ Joel Lindholm
({\ttfamily wizball@kewl.campus.luth.se}).

×îÐÂ°æ¿ÉÈ¡Ö®ì¶ \nameurl{ftp://kewl.campus.luth.se/pub/jukebox}{}.    






\subsubsection{\cdx{amp}}

´Ë {\itshape beta\/} MPEG ÉùÒô²¥·Å³ÌÊ½Ö»Ö§Ô® MPEG Layer 3 ÒôÁ÷.
ËüÄÜ¹»Ö±½Ó²¥·ÅÔÚÒôÐ§¿¨ÉÏ,¶øÇÒËüÄÜÊä³öµ½×ÔÈ»µÄ PCM »ò WAV µµ.
ÕâÒ²Õ¼Ïàµ±´óµÄ CPU ¸ºÔØ (´óÔ¼ÔÚ 133MHz Pentium ÉÏÒª 60\% ).

×÷ÕßÊÇ Tomislav Uzelac
({\ttfamily tuzelac@rasip.fer.hr}).  Ëü¿ÉÒÔÃâ·ÑµÄÊ¹ÓÃ,É¢²¼,
Ö»ÒªËü²»ÒªÔÚÎ´¾­ÔÊÐíÏÂÉÌÒµÉÏ··ÊÛ(ËäÈ»Èç´Ë,
½«Æä°üº¬ÔÚº¬ÓÐÃâ·ÑÈíµÄ CD-ROM ÉÏ,Ã÷È·µÄ±»ÔÊÐíµÄ).

Ëü¿ÉÈ¡ì¶ \nameurl{ftp://ftp.rasip.fer.hr/pub/mpeg/amp-0.7.3.tgz}{}.






\subsubsection{\cdx{XAudio}}

Õâ¸ö {\itshape alpha\/} ³ÌÊ½º¯Ê½¿âÊÇ±»Ð´³É¿ìËÙÍê³É MPEG 
ÒôÁ÷½âÂë³ÌÊ½º¯Ê½¿âµ½¸÷ÖÖ GUI Ç°¶Ë³ÌÊ½. ËüÖ§Ô®
MPEG audio layers I, II, ºÍ III.ËüÄÜ¹»Ëæ»ú´æÈ¡Î»ÔªÁ÷{[}bitstreams].
ÃüÁîÁÐ½éÃæ±»º­À¨½øÀ´. ¶ø Motif (Lesstif) Ç°¶Ë³ÌÊ½Ò²±»º­À¨ÔÚ Linux
µÄ°æ±¾ÖÐ.

ÕâÊÇÓÉ Gilles Boccon-Gibod, Alain Jobart ºÍÆäËûÈËËù×÷µÄ.
Á¬½Óµ½´Ëº¯Ê½¿âµÄÇ°¶Ë³ÌÊ½Ò²¿ÉÃâ·ÑµÄÏÂÔØ.
¶øº¯Ê½¿â±¾Éí±ØÐëÒª±»ÊÚÈ¨Ê¹ÓÃ (Ô­Ê¼ÂëºÍ¶þÔªÂë³ÌÊ½µÄÊÚÈ¨ÊÇ¿ÉÒÔÈ¡µÃµÄ).

Á¬½Óµ½´Ëº¯Ê½¿âµÄÇ°¶Ë³ÌÊ½¿ÉÒÔÈ¡µÃÔÚ
\nameurl{http://www.mpeg.org/xaudio/}{XAudio home page}.






\subsubsection{\idx{Layer 3 Shareware Encoder/Decoder}}

ÊÂÊµÉÏ,ÕâÊÇÖÖ×ª»»Æ÷,ËüÄÜ×ª»» MPEG Layer 3 ÒôÁ÷µ½
WAV, AIFF, SND, AIFC, »òÊÇ×ÔÈ»µÄ PCM È¡Ñùµµ.
Linux°æ±¾²¢Ã»ÓÐÖ±½ÓÊä³öÉùÒôµ½ÒôÐ§¿¨ÉÏ. Ä³ÈË±ØÐëÏÈ½«Æä×ª³ÉÆäËû¸ñÊ½.

È»¶ø,µ±ÄãÉè·¨È¥²¥·ÅÊ¹ÓÃ {\ttfamily sox} µÄ×ª»»µµ,Äã´ó¸Å½«»áÓÐÔÓÑ¶,
ÒòÎªÔÚ PCMÈ¡ÑùÉÏ,×ÖµÄË³Ðò²¢²»ÕýÈ·
(ÖÁÉÙÔÚ Intel Æ½Ì¨ÉÏÊÇÕâÑù).
Äã±ØÐë¸øÓè {\ttfamily sox} Õâ¸öÑ¡Ïî {\ttfamily -x} À´½â¾öÕâ¸öÎÊÌâ.
µ«ÓÐÐ©²¥·Å³ÌÊ½ÎÞ·¨±»¸æÖª×ÖË³ÐòÊÇ´íµÄ,ËùÒÔÄã¿ÉÄÜ²»±ØÈ¥µ£ÐÄÕâ¸öÎÊÌâ.

ÈôÄãÓÐ±È½Ï¿ìµÄµçÄÔ (´ó¸ÅÖÁÉÙÒª 100Mhz Pentium),
ÄÇ÷áÄãÄÜÊÔÊÔÖ±½Ó²¥·Å MPEG Layer 3 ÒôÁ÷,
¶ø²»ÐèÒªÏÈ×ª³ÉÆäËû¸ñÊ½ÉùÒôµµ,ÏñÒÔÏÂÀý×Ó(ÕâÀý×Ó¼ÙÉèÄãÕýÊ¹ÓÃ
{\ttfamily sox} ÇÒ²¥·Å 44.1kHz Á¢ÌåÈ¡Ñù.)

\begin{tscreen}
\begin{verbatim}
$ l3dec foo.mp3 -sto | play -t raw -x -u -w -c 2 -r 44100 -
              
\end{verbatim}
\end{tscreen}
         

{\ttfamily -r} Ö®ááµÄÊý×ÖÊÇÒôÁ÷µÄÈ¡ÑùÂÊ,¶øÔÚ {\ttfamily -c}
Ö®ááÊý×ÖÔòÊÇÓëËüÊÇ mono »ò stereo (ÉõÖÁ»ò quad)ÓÐ¹Ø.
ÈôÕâ¿´ÆðÀ´Ì«¸´ÔÓ,ÄãÄÜ¹»Ê¹ÓÃÏñ shell script »ò alias µÄ¶«Î÷.

ÕâÊÇ¹²ÏíÈíÌå,°æÈ¨Êôì¶ Fraunhofer-IIS.
ÔÚ x86 ÏµÍ³µÄLinuxÉÏÖ®Õ¹Ê¾°æ¿ÉÈ¡ì¶  \nameurl{ftp://ftp.fhg.de/pub/layer3}{}.
Õ¹Ê¾°æÖ»ÄÜ×ª»» layer III ÒôÁ÷. 






\subsubsection{\idx{X11Amp}}

Õâ¸ö {\itshape beta\/} ÈíÌåÊÇÍ¼ÐÎ½éÃæµÄ MPEGÒôÁ÷²¥·Å³ÌÊ½, 
 ºÜÏñÊÇ Windows ³ÌÊ½ {\ttfamily winamp}. 

Ã»ÓÐ¿´µ½ÈÎºÎµÄ°æÈ¨ËµÃ÷ (ÎÒ¼ÙÉèËüÊÇ¿ÉÒÔ¹©¸öÈË×ÔÓÉµÄÊ¹ÓÃ).
ËüÊÇÓÉ Mikael Alm ({\ttfamily psy@x11amp.bz.nu}), Thomas Nilsson 
({\ttfamily fatal@x11amp.bz.nu}), ºÍ Olle Hallnas  
({\ttfamily crocodile@x11amp.bz.nu}) ËùÎ¬»¤.  

Ëü¿ÉÒÔÈ¡µÃì¶ \nameurl{http://www.x11amp.bz.nu/}{X11Amp's homepage}.
Ä¿Ç°Ö»ÓÐÌá¹©¸ø Intel Linux ºÍ FreeBSD ÓÃµÄ¶þÔªÂëµµ.








\subsection{\idx{WAV}}

´Ó {\ttfamily sox} ÊÖ²áÒ³ÉÏÒýÊö:

\begin{quotation}
Õâ³öÏÖ·Ç³£ÏàËÆ IFFµµ,µ«²»ÍêÈ«Ò»Ñù.
ËüÃÇÊÇÔ­ÉúµÄ Windows 3.1 ÉÏÒôÀÖµµ.
Ã÷ÏÔµØ, Windows 3.1 ÊÇÈç´ËÁîÈËÄÑÒÔÏàÐÅËüµÄÖØÒªÐÔ,
¶Ôì¶µçÄÔ¹¤ÒµÉÏ,ËüÃ÷È·µÄ±ØÐëÒªÓÐËü×Ô¼ºÓµÓÐµÄÉùÒô¸ñÊ½.
\end{quotation}


ËüÍ¨³£ÓÐ¸±µµÃû {\ttfamily .wav}.

Ò²Çë¿´ÕÂ½Ú \ref{sec-sox} {(sox)} ºÍ \ref{sec-bplay} {(bplay)} ÒÔÈ¡µÃ¸ü¶à³ýÁËÕâÑùËùÁÐÖ®ÍâµÄ
WAV ²¥·Å³ÌÊ½.   






\subsubsection{\cdx{wavplay}}

Õâ³ÌÊ½Ö§Ô®²¥·ÅºÍÂ¼ÖÆ WAV ¸ñÊ½.
ËüÊ¹ÓÃËø¶¨{[}locking]ËùÒÔÒ»´ÎÖÐÖ»ÄÜÓÐÒ»ÉùÒô±»²¥·Å.
ËüµÄËø¶¨ÄÜÁ¦Ò²ÄÜ¹»Ê¹ÓÃÔÚ·ÖÀëì¶ÉùÒôµÄ²¥·ÅÄÜÁ¦.

³ýÁË command-line ½éÃæ,ËüÒ²ÓÐ Motif ½éÃæ,Æä¿ÉÓë Lesstif À´ÅäºÏÊ¹ÓÃ.

Ô­Ê¼×÷ÕßÊÇ Andre Fuechsel
({\ttfamily af1@irz.inf.tu-dresden.de}),
µ«ÔÙ±»·¢Õ¹ÖÁ³ÉÐÎµÄ×÷Õß Warren W. Gay
({\ttfamily bx249@freenet.toronto.on.ca} or {\ttfamily wwg@ica.net}).

Ëü¿ÉÈ¡ì¶ \nameurl{ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/wavplay-1.0.tar.gz}{}.






\subsection{ÆäËü¶«Î÷}

Õâ½ÚÁÐ³ö²¥·ÅÉùÒô¸ñÊ½µÄ¶«Î÷,Æä²»ÖµµÃ¸÷×Ô¶ÀÁ¢³ÉÒ»½Ú
(»»¾ä»°Ëµ,Î¨Ò»²¥·Å³ÌÊ½¿ÉÈ¡µÃµÄ¸ñÊ½),
»òÊÇÒ»¸ö²¥·Å³ÌÊ½¾ÍÄÜ²¥·Å±È½Ï¶àµÄ¸ñÊ½.           






\subsubsection{\cdx{sox}\label{sec-sox}}

Õâ³ÌÊ½ÊÂÊµÉÏÊÇ¸ö×ª»»Æ÷,Ò²¾ÍÊÇËü×ª»»Ò»ÖÖÉùÒô¸ñÊ½µ½ÁíÒ»ÖÖ.
È»¶øÓÐÐ©°æ±¾µÄ {\ttfamily sox}, µ±²ÉÓÃ {\ttfamily play}, À´²¥·ÅÉùÒô 
( ÔÚ Sound HOWTO ÖÐµÄ {\ttfamily play} Ó¦ÓÃ³ÌÊ½´ó¸Å»á²ÎÕÕµ½Õâ).
ËüÖ§Ô®×ÔÈ»{[}raw]µÄ (Ã»ÓÐ±êÍ·µÄ)¶þÔªÂð¼°ÎÄ×ÖµÄ×ÊÁÏ, IRCAM Sound Files,
Sound Blaster {\ttfamily .voc}, SPARC {\ttfamily .au} (w/header), Mac
HCOM, PC/DOS {\ttfamily .sou}, Sndtool, ºÍ Sounder,
NeXT {\ttfamily .snd}, Windows 3.1 RIFF/WAV, Turtle Beach {\ttfamily .smp},
CD-R, ÒÔ¼° Apple/SGI AIFF ºÍ 8SVX ¸ñÊ½.   



ÔÚ1.3.6x kernelsµÄÄ³Ð©µØ·½, Äã¿ÉÄÜ±ØÐë×öÒ»Ð©¸Ä±äÔÚÄ³¸öµµÖÐ,
Ê¹µÃËüÄÜÖ±½Ó²¥·ÅÉùÒô.»»¾ä»°Ëµ,Äã±ØÐë¸Ä±ä {\ttfamily sbdsp.c}
µÄ 179 ÐÐ,´Ó   

\begin{tscreen}
\begin{verbatim}
if (abuf_size < 4096 || abuf_size > 65536) {
              
\end{verbatim}
\end{tscreen}


±äµ½              

\begin{tscreen}
\begin{verbatim}
if (abuf_size < 1 || abuf_size > 65536) {
              
\end{verbatim}
\end{tscreen}


µ«È»ááÔÙ×öÒ»´Î.Äã¿ÉÒÔ²»±ØÕâÑù×ö.ÕâÑù×ö½«²»»á¶ÏµôÈÎºÎ¶«Î÷.



Öø×÷Óë°æÈ¨ÊôºÜ¶àÈË, ¶øÇÒ¿ÉÓÃÔÚ¸÷ÖÖÓÃÍ¾.

Ëü¿ÉÈ¡ì¶ \nameurl{ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/Lsox-linux.tar.gz}{}.

½Ï½üµÄ°æ±¾ÊÇÓÉ Chris Bagwell Ëù×÷
(tt/cbagwell@sprynet.com/) (½¨Á¢ÔÚÔ­Ê¼ {\ttfamily sox}
µÄ×îÐÂ gamma °æ±¾, ¶øÇÒ°üº¬ÒÔÉÏÐÞÕý) ¿ÉÈ¡ì¶
\nameurl{http://home.sprynet.com/sprynet/cbagwell/projects.html}{}. 
´ËÍâ,Õâ°æÖ§Ô® MS ADPCM ºÍ IMA ADPCM WAV formats.\nidx{ADPCM} 






\subsubsection{\cdx{bplay}\label{sec-bplay}}

ÕâÊÇ {\itshape beta\/} ³ÌÊ½¿ÉÒÔ²¥·Å×ÔÈ»µÄ{[}raw]ÉùÒô, WAV, and VOC µµ.
ËüÒ²¿ÉÒÔÂ¼ÖÆÕâÐ©µµ.ËüÊ¹ÓÃ¸÷ÖÖ¼¼ÇÉÒÔÈ¡µÃ¾¡¿ÉÄÜµÄ×î¸ßËÙ,
Ê¹µÃ¼ÈÊ¹ÔÚÂý»úÆ÷ÉÏÄÜÈÃÎáÈËÉÐ¿É½ÓÊÜµÄÖ´ÐÐ.
ÆäÖÐÒ»Ïî¼¼ÇÉÊÇÒªÇó°²×°µÄ³ÌÊ½ÊÇsetuid root.
Æ«Ö´¿ñµÄÏ£ÍûÊ¹ÓÃÕâ³ÌÊ½¿ÉÒÔÏëÈ¥Ê¹ÓÃ Ian Jackson
({\ttfamily ijackson@gnu.ai.mit.edu})Ëù×öµÄ Debian  package ,
Æä¹Ø±ÕÐèÒªÉè setuid bit µÄÕâÖÖÌØÉ«. 

×÷ÕßÎª David Monro ({\ttfamily davidm@gh.cs.usyd.edu.au}). 

Ëü¿ÉÈ¡ì¶  \nameurl{ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/bplay-0.96.tar.gz}{}.






\subsubsection{\idx{SIDPLAY}}

Õâ³ÌÊ½Ä£Äâ \idx{Commodore 64} µÄ\idx{ÉùÒô½éÃæÉè±¸}¾§Æ¬
{[}Sound Interface Device chip]
(MOS 6581,Ò»°ã½ÐËü SID) ºÍ Î¢´¦ÀíÆ÷µ¥Ôª (\idx{MOS 6510}).
ËùÒÔËü¿ÉÒÔÔØÈëÓëÖ´ÐÐ C64 »úÐµÂëµÄ³ÌÊ½,Ëü²úÉúÒôÀÖ»òÉùÒô.
Ò»°ã¶øÑÔ,ÕâÐ©ÊÇ¶ÀÁ¢ÂëºÍ×ÊÁÏÆ¬¶Ï,ËüÒÑ¾­ÊÇ´ÓÓÎÏ·ºÍÐû´«³ÌÊ½×¥È¡{[}ripped]
ÏÂÀ´µÄ,ºÍÒÑ¾­±»Ö±½Ó´Ó C64 ×ª¹ýÀ´µÄ.



ËüÄÚ¶¨Ê¹ÓÃÃüÁîÁÐ½éÃæ. Ò²ÓÐ Tk ºÍ QT ½éÃæ¿É·Ö±ðÈ¡µÃÔÚÖ÷ÒªµÄ°ü×°{[}package]ÄÚ.   

ËüÊÇÓÉ Michael Schwendt
({\ttfamily sidplay@geocities.com}) ËùÎ¬»¤.

Ëü¿ÉÒÔÈ¡µÃÔÚ \nameurl{http://www.geocities.com/SiliconValley/Lakes/5147/}{SIDPLAY's home page}.






\subsubsection{\idx{RealAudio Player}}

Õâ³ÌÊ½ÈÃÄãÌýµ½Ò»ÖÖ×¨ÓÐ¸ñÊ½µÄÉùÒô,ÆäÄÜ¹»¼´Ê±¿ç¹ýÍø¼ÊÍøÂ·,
¶ø²»ÐèÒªÏÈÏÂ´«ÕûÊ×ÉùÒôµµ.ËüÄÜ¹»µ¥¶ÀÊ¹ÓÃ,
µ«ËüÊÂÊµÉÏÊÇÏëÒª´îÅää¯ÀÀÆ÷(×îÇå³þÖ§Ô®µÄÊÇ Mosaic ºÍ Netscape)Ê¹ÓÃ.
ÔÚÃ»ÓÐ X ÏÂ,Ëü²»ÄÜÊ¹ÓÃ(Äã²»ÄÜÓÃËüÀ´´îÅäÎÄ×Ö²Ù×÷Ä£Ê½ÏÂµÄ Lynx Ê¹ÓÃ).

È»¶ø,´æÔÚÒ»ÖÖ¡õÊÔ·½·¨(hack)¿ÉÒÔÔÚÎÄ×ÖÄ£Ê½µÄÖ÷¿ØÌ¨ÏÂÄÜ¹»ÅÜ 
RealAudio ²¥·Å³ÌÊ½.
ËüÒªÓÐ X virtual frame buffer (Xvfb) server ²Å¿ÉÒÔÔË×÷.
Ëü¿ÉÒÔÈ¡µÃÔÚ \nameurl{ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/traplayer-0.5.tar.gz}{}.\ncdx{traplayer}  

Õâ³ÌÊ½ÊÇÓÉ  Progressive Networks, Inc. Ëù×÷. 
Ëü²»¿ÉÒÔÔÙÉ¢²¼,ÐÞ¸Ä...µÈ.
¿´Ò»ÏÂÆä°æÈ¨,¾Í»áÕýÈ·Ïê¾¡ÖªµÀÄãÄÜ×öÊ²÷á. Ëü¿ÉÒÔÃâ·Ñ±»È¡µÃÔÚ 
\nameurl{http://www.realaudio.com/}{RealAudio home        page}.






\subsubsection{cat}

Ä³ÈËÒ²Ðí»áÏëËµ {\ttfamily cat} ,ÓÐµãÀÄÓÃµÄÁ¬½á¹¤¾ß,ÊÇÔõ÷á´¦Àí²¥·ÅÉùÒô.
ÎÒ½«Í¸Í¨Ò»¸öÀý×Ó,À´Õ¹Ê¾ËüµÄÓÃÍ¾.

\begin{tscreen}
\begin{verbatim}
$ cat sample.voc > /dev/dsp
$ cat sample.wav > /dev/dsp
$ cat sample.au > /dev/audio
              
\end{verbatim}
\end{tscreen}


´¦ÀíÒ»¸ö {\ttfamily .au} µµµÄ {\ttfamily cat} µ½ {\ttfamily /dev/audio}
Í¨³£½«»áÕý³£¹¤×÷,¶øÇÒÈô¹»ÐÒÔËµÄÊ¹Ò»¸öµµ(ÔÚÄãµÄÆ½Ì¨ÉÏ)
ÓÐÕýÈ·µÄÎ»Ôª×éË³Ðò...µÈ,Ê¹ÓÃ PCM È¡Ñù(ÏñÊÇ
{\ttfamily .wav} or {\ttfamily .voc}) µ½ {\ttfamily /dev/dsp}
Ö®ÉùÒôµµµÄ {\ttfamily cat} ÉõÖÁ¿ÉÄÜÌýÆðÀ´ÕýÈ·.

ÄÇ²»ÊÇ {\ttfamily cat} µÄÍêÈ«Ã»Ê²ÓÃµÄÓÃÍ¾.Ëü¿ÉÄÜÊÇÓÐÓÃµÄ,¾ÙÀýÀ´Ëµ,
Èç¹ûÓÐÒ»¸öÉùÒôµµ,¶øÄãµÄËùÓÐ³ÌÊ½Ã»ÓÐÒ»¸öÈÏµÃËü,¶øÄãÖªµÀËüÊ¹ÓÃ
PCM È¡Ñù,ÄÇ÷áÄãÒ²ÐíÄÜµÃµ½Ò»¸ö·Ç³£½Ó½üµÄÏë·¨ÔÚÆäÌýÆðÀ´ÏñÊÇÕâÖÖ·½Ê½
(Èç¹ûÄãºÜÐÒÔËµÄ»°).






\section{ÆäËûÊµÓÃ´¦ÀíÉùÒôµÄÓ¦ÓÃ¹¤¾ß}

Õâ½Ú²¢Ã»ÓÐÊµ¼Ê´¦Àí²¥·ÅÉùÒôµµµÄÊÂ.¶øÊÇ,ÊÕ¼¯Ò»Ð©´¦ÀíÉùÒôµÄ¹¤¾ß,
Äã½«»á·¢ÏÖÂùÓÐÓÃµÄ.  




\subsection{\cdx{volume}}

ÕâÊÇÒ»¸ö¼òµ¥ÃüÁîÁÐ½éÃæÀ´¿ØÖÆÒôÁ¿(Ëü»¹ÄÜ×öÊ²÷á?)
ÔÚ°ü×°ÖÐ,Ëü»¹ÓÐÒ»¸ö·Ö¿ªµÄ³ÌÊ½,ÓµÓÐ Tcl/Tk ½éÃæ,
À´¿ØÖÆÒôÁ¿ºÍ²¥·Å {\ttfamily .au} ÉùÒôµµ.
Ò»¸ö·Ç³£¼òµ¥µÄ Tcl/Tk CD ²¥·Å³ÌÊ½Ò²°üº¬½øÈ¥.

ÕâÊÇÃâ·ÑÈíÌå,ÊÇ Sam Lantinga ËùÐ´µÄ.
({\ttfamily slouken@cs.ucdavis.edu}).

ËüÄÜÈ¡ì¶ \nameurl{ftp://sunsite.unc.edu/pub/Linux/apps/sound/soundcard/volume-2.1.tar.gz}{}.






\subsection{\idx{Sound Studio}}

ÕâÊÇ Tcl/Tk Ð´µÄÓ¦ÓÃ³ÌÊ½,¿ÉÖ§Ô®²¥·Å,Â¼ÖÆ,
ÒÔ¼°±à¼­Ê¹ÓÃ {\ttfamily sox} µÄÊýÎ»ÉùÒô.ËüÔÚ·¢ÐÐ°æ±¾ÖÐ¾Í°üº¬ÓÐ {\ttfamily sox}
±ÜÃâÏàÈÝÐÔµÄÎÊÌâ.

×÷ÕßÎª Paul Sharpe and N. J. Bailey
({\ttfamily N.J.Bailey@leeds.ac.uk}).
Ëü¿ÉÒÔÃâ·ÑÊ¹ÓÃ¼°ÔÙÉ¢²¼,ÈôÄãÓÐ¼ÄÕÅÃ÷ÐÅ¿¨µÄ»°.



Ëü¿ÉÔÚ \nameurl{http://www.elec-eng.leeds.ac.uk/staff/een6njb/Software/Studio/screens.html}{Sound Studio's home page}
ÕÒµ½.






\subsection{\idx{Tickle Music}}

Õâ {\itshape beta\/} Tcl/Tk ³ÌÊ½ÊÇÒ»¸öÒôÀÖµµä¯ÀÀ³ÌÊ½,
ËüÔÊÐíÄã²¥·Å¸÷ÖÖÉùÒô¸ñÊ½,Ö»ÒªÄãÏµÍ³ÖÐÓÐÊÊµ±³ÌÊ½¿ÉÒÔ²¥·ÅµÄ.
ÄÚ¶¨µÄ {\ttfamily gmod} ÊÇÓÃÀ´²¥·Å MOD µµ,¼° {\ttfamily mp} ÔòÊÇ²¥·Å MIDI µµ
(Äã¿ÉÒÔ¸Ä±ä³ÌÊ½Ô­Ê¼ÂëÀ´Ê¹ÓÃÆäËû³ÌÊ½).

×÷Õß¼°°æÈ¨¹éÊôÊÇ Shannon Hendrix
({\ttfamily shendrix@pcs.cnu.edu} or
{\ttfamily shendrix@escape.widomaker.com}).

Ëü¿ÉÈ¡ì¶ \nameurl{ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/tmusic-1.0.tar.gz}{} 






\section{²Î¿¼×ÊÁÏ}

\begin{enumerate}
\item ±¾ÎÄ¼þÖÐÌáµ½µÄÓ¦ÓÃ³ÌÊ½ËùÄÚ¸½ÎÄ¼þ. 
\item Linux Sound HOWTOÎÄ¼þ. ËüÄÜÔÚ \nameurl{http://sunsite.unc.edu/LDP/}{Linux Documentation Project}ÕÒµ½.
\item \nameurl{http://www.bright.net/~dlphilp/linux_soundapps.html}{Linux MIDI and Sound Applications} 

\item \nameurl{http://www.4front-tech.com/pguide/}{Programmer's Guide to OSS}
\item \nameurl{http://www.spies.com/Sox/}{SoX home page}
\end{enumerate}


\end{document}
