Sound Blaster AWE 32/64 ­µ®Ä¥d HOWTO <author> §@ªÌ: Marcus Brinkmann <tt><<htmlurl url="mailto:Marcus.Brinkmann@ruhr-uni-bochum.de" name="Marcus.Brinkmann@ruhr-uni-bochum.de">></tt><newline> ĶªÌ: Á±X¤¤ HSIEH Kun-Chung, ¥xÆW ¤¤µØ¥Á°ê Taiwan, Republic of China (NOT People's Republic of China) <tt>(<htmlurl url="linuxer.bbs@cis.nctu.edu.tw" name="linuxer.bbs@cis.nctu.edu.tw"> )</tt> <newline> <date>v1.2ª©, 1998¦~ 1¤ë11¤é <abstract> ¥»¤å¥ó¦b±Ô­z¦p¦ó¦w¸Ë¤Î«Øºc Sound Blaster 32 (SB AWE 32, SB AWE 64) ­µ®Ä¥d¥H¤Î ¨Ï¥Î¥Ñ Takashi Iwai ©Ò¼gªº AWE Sound Driver Extensionªº Creative Labs­µ®Ä¥d¡C ¥¦ÁÙ¥]§t¤@¨Çµ¹ SB AWE ¨t²Î©Ò¥Î¯S®íªº¤u¨ã¥H¤Î¼·©ñ¾¹¡C§Ú¨Ï¥Îªº¬O Debian GNU/Linux ¨t²Î¡A¦ý¬O¨ä¥Lªº¥ô¦ó¤@ºØ Linux ¨ÑÀ³°Óª©¥»¬Ò¥i¥H¹B§@¡C </abstract> <toc> <sect>²¤¶<p> ³o¬O Sound Blaster AWE HOWTO¡A¥¦µ¹§A¦³Ãö©ó¦p¦óµo´§§Aªº Sound Blaster 32ªº¸Ô²Ó¸ê°T ¡A¥]§t Wave Table synthesis¡C³o¥÷¤å¥ó§t»\©Ò¦³ªº SB ¥d¡A¥]§t SB 32¡C ¦b DOS ©Î Windows ªº¥@¬ÉùØ¡A Sound Blaster ¨t²Î¤w¬O­Ó®a³ë¤á¾åªº¦WºÙ¡A ¦Ó¥B¦³«Ü¦hªº Linux ¨Ï¥ÎªÌ¤]·Q­n¦b Linux ¤U¨Ï¥Î¥L­Ì¡C¤£©¯ªº¬O¡A Creative Labs ¥u´£¨Ñ ¦b Windows ¥H¤Î DOS ¤Uªº­µ®ÄÅX°Êµ{¦¡¡A©Ò¥H¦b Linux ¤U¦w¸Ë SB ¥dÅܦ¨¤£¬O¥ó¤p¨Æ¤F¡C ³o¥÷¤å¥ó¸ÕµÛ¨Ó±Ô­z§Ú­Ì¦p¦ó¦b Linux ªºÀô¹Ò¤U¨Ï¥Î SB AWE ¨t¦C¡C <sect1>·PÁÂ<p> ³o¥÷¤å¥ó¤¤§Ú©Ò»`¶°ªº¸ê°T¨Ó¦Û©ó AWE Driver FAQ ¥H¤Î ISA PnP FAQ¡C ½Ð¬Ý <ref id="sources" name="Sources"> ³o¨Ç¤å¥óªº§@ªÌ¥H¤Î¦ì¸m¡CÁÂÁ©Ҧ³ªº§@ªÌ¡A¤~¯à ¦³¤µ¤Ñ SB AWE ªº¤ä´©¡C ¦³«Ü¦h°ò¥»¤u§@¤w¥Ñ <url url="http://www.4front-tech.com/usslite" name="Hannu Savolainen">°µ¦n¤F¡A¥L¶}µo¤F»P Linux ®Ö¤ßµ{¦¡¬ÛÀHªº­µ®ÄÅX°Êµ{¦¡¡CÁÂÁ±z¡C §Ú·QÁÂÁ <url name="Nicola Bernardelli" url="mailto:n.bern@mail.protos.it"> ¥L´ú¸Õ¤F AWE64 ªº¬ÛÃö¥\¯à¡C¨S¦³¥L¡A¦³«Ü¦hªº¿ù»~¥i¯àÁÙ¦s¯d¦Ó¥¼³Qµo²{¡C ÁÂÁ <url url="ftp://sunsite.unc.edu/pub/Linux/utils/text/sgml-tools-0.99.0.tar.gz" name="SGML Tools"> ³o¥÷®M¥ó¡A³o¥÷ HOWTO ¤å¥ó¥i¥H¦³«Ü¦hºØ¤å¥ó®æ¦¡¡A¦Ó¥B¥u»Ý¨Ï¥Î¤@ºØ®æ¦¡´N¥i ¥H¨Ó°µÂà´«¡C <sect1>§ïª©¾ú¥v<p> <descrip> <tag>ª©¥» 1.0</tag>­ºª© <tag>ª©¥» 1.1</tag>­×§ï«÷¦r«á(ÁÂÁ Curt!)¡A¼W­qµ¹ <tt/isapnp/ªº»Ý¨D¡A²{¦b¥i¥H¸g¥Ñ sunsite ¥H¤Î¥¦ªº¬M®g¯¸¨ú±o <tag>ª©¥» 1.2</tag>ªk¤åª©¤w¸g¥XÄl¤F!¡A¥u°µ¤Ö³\ªº­×¥¿¡A­×­q¤F«Ü¦h«÷¦r (·PÁ ispell) </descrip> <sect1>¥»¤å¥óªº·sª©¥»<p> ³Ì·sªºª©¥»¥i¥H¦b§Úªº­º­¶ùاä¨ì <url url="http://homepage.ruhr-uni-bochum.de/Marcus.Brinkmann/soundblaster.html" name="Sound Blaster AWE HOWTO">¡C ³o¥÷¤å¥óªº·sª©¥»·|³Q¤W¸ü¨ì³\¦h FTP ¯¸¤W¡A¥]§t <url url="ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini">¡C ³o¥÷¤å¥óªº¶W¥»¤åª©¥H¤Î¨ä¥Lªº Linux HOWTO ¤å¥ó³£¥i¦b³\¦hªº WWW ¯¸ùاä¨ì¡A¹³ <url url="http://sunsite.unc.edu/LDP/">¡C³\¦hªº Linux CD-ROM ¨ÑÀ³°Óª©ùؤ]³£ ·|¦³ HOWTO ¤å¥ó¡A³q±`¬O©ñ¦b <tt>/usr/doc</tt> ¥Ø¿ý¤U¡C ·PÁ Arnaud Launay <htmlurl url="mailto:zoro@lsol.tm.fr" name="zoro@lsol.tm.fr">¡A³o¥÷¤å¥óªºªk¤åª©¤~¯à½Ï¥Í! ³Ì·sªºª©¥»¥i¥H¥Ñ <url url="http://www.freenix.fr/linux/HOWTO" name="http"> ©Î <url url="ftp://ftp.lip6.fr/pub/linux/french/docs/HOWTO" name="anonymous ftp">¨ú±o¡C ¦pªG§A­n½Ķ³o¥÷¤å¥ó¨ì§Aªº»y¨¥¡A½ÐÅý§Úª¾¹D¡A§Ú·|¥[¤J¤@¥÷¥¦ªº°Ñ¦Ò³sµ²¡C ͵ù¡G³o¥÷¤å¥óªº¤¤¤åª©¥i¦b<url url="http://www.linux.org.tw/LCDP/">¤U¨ú±o¡C <sect1>¦^À³<p> §Ú¥õ¿à§A¡A¦U¦ìŪªÌ¡A¨ÓÅý³o¥÷ HOWTO Åܱo¦³¥Î¡C¦pªG§A¦³¥ô¦óªº«ØÄ³¡A§ó¥¿©Î«ü±Ð ½ÐÅý§Úª¾¹D <htmlurl url="mailto:Marcus.Brinkmann@ruhr-uni-bochum.de" name="Marcus.Brinkmann@ruhr-uni-bochum.de">¡A§Ú·|±N¥¦¾ã¦X¨ì¤U¤@ª©¥»ùØ¡C §Ú¯S§OÅwªïÃö©ó¨ä¥L¦³¥~ªº Linux ¨ÑÀ³ª©¥»ªº±Ò°Êµ{§Ç (±Ò°Ê©R¥O¤â½Z..µ¥)¨Ò¦p Red Hat ©Î SuSE Linux¡C ¦pªG§A±N³o¥÷¤å¥ó¥Xª©¨ì CD-ROM ©Î¨ä¥L§Î¦¡¡A¦pªG¥i¥Hµ¹§Ú¤@¥÷§K¶O¼Ë«~§Ú·|«Ü·P¿E§A¡C ½Ð§A±N¥L±H¨ì§Úªº¶l¬F¦a§}¡CÁÙ¦³¡A±z¥i¦Ò¼{®½¿úµ¹ Linux ¤å¥ó­pµe¨Ó¨ó§U§Ú­Ì¬° Linux °µ§K¶Oªº¤å¥ó¡C½Ð±z³sµ¸ Linux HOWTO ³sµ¸¤H Tim Bynum <htmlurl url="mailto:linux-howto@sunsite.unc.edu" name="linux-howto@sunsite.unc.edu">¡C <sect1>´²§G¬Fµ¦<p> ª©¥» 1997 Marcus Brinkmann ³o­Ó HOWTO ¬O¥÷§K¶O¤å¥ó¡F§A¥i¥H¦b§K¶O³nÅé°ò¥»·| (Free Software Foundation) ªº GNU ¤@¯ë¤½¥Î°õ·Óªº±ø¥ó(²Ä¤Gª©©Î§ó·sªºª©¥»)¤U¨Ó´£¨Ñ©Î­×§ï¥¦¡C ³o¥÷¤å¥óªº´²§G¬O§Æ±æ¥¦¯à¯à¦³¥Î³B¡A¦ý <bf>¤£°µ¥ô¦ó«OÃÒ</bf>( ¬Æ¦Ü¥ô¦ó·t¥Üªº«OÃÒ) <bf>¥i¾P°âªº</bf> ©Î <bf>¾A¦X¯S§O¥Ø¦aªº</bf>¡C¸Ô±¡½Ð¬Ý GNU ¤@¯ë¤½¥Î°õ·Ó¡C §A¥i¥H¼g«H¨ì <url url="http://www.fsf.org" name="Free Software Foundation">, ¨Ó¨ú±o¤@¥÷ GNU ¤@¯ë¤½¥Î°õ·Ó¡C ¦a§} Inc., 675 Mass Ave, Cambridge, MA 02139 USA¡C <sect>¦b§A¶}©l¤§«e<p> <sect1>²¤¶<p> ³o¥÷¤å¥ó¸ÕµÛÀ°§U§A¦b Linux ¨t²Î¤W¦w¸Ë¥H¤Î¨Ï¥Î Creative Labs ªº Sound Blaster AWE 32 ©Î Sound Blaster AWE 64 ¡C§Ú©Ò¥Îªº¨t²Î¬O <url name="Debian GNU/Linux" url="http://www.debian.org"> ¨t²Î¡A¦b¤@¥xIntel i586 ¹q¸£¥­¥x¤W¡A¥¦À³¸Ó¥i¦b¨ä¥Lªº Linux ¨ÑÀ³°Óª©¥H¤Î¨ä¥L¤ä´© Linux ­µ®ÄÅX°Êµ{¦¡ªº¥­¥x¤W¡A (¦pªG¦³¤£¦P³B¡A§Ú·|§â¥¦­Ì´£¥X¨Ó)¡C °O±o­n¥J²Ó¾\Ū Linux Sound HOWTO (½Ð¬Ý <ref id="moreinfo" name="Additional Information">³¹¸`)¡C§Ú¥u¬O¸É¥R Sount HOWTO ¤£¨¬ªº¦a¤è¦Ó¤w¡A ¦³¨Ç¸ê°T§Ú·|½Ð§A¦A¥h¾\Ū Sound HOWTO¡A³o¨à¤£¦AÂØ­z¡C <sect1>Ãö©ó SB AWE ¥dªº¤@¯ë±`ÃÑ<p> SB AWE 32 ­µ®Ä¥d´£¨Ñ¤F¶§¬Kªº­µ®Ä³]³Æ¡B¼Ð·Ç OPL-2/OPL-3 ¦X¦¨¾¹¡B MPU-401 MIDI °ð¥H¤Î¦³ 32 voices ªº EMU 8000 Wave Table ¦X¦¨¾¹¡C (·Q¶i¤@¨B¤F¸Ñ³o¨Ç³N»yªº ·N«ä½Ð¬ÝLinux Sound HOWTO)¡C³o¥÷¤å¥óªº¥Ø¼Ð¬O­n¨ó§U§A¨Ï¥Î¤Îµo´§³o¨Ç¥\¯à¡C SB AWE 64 °£¤F¬Û®e©ó SB AWE 32 ¤§¥~¡AÁÙ¼W¥[¤F¤@­Ó³sCreative Labs ¤½¥q³£¯S§O ·P¨ìź¶Æªº Wave Guide ¦X¦¨¾¹¡C Linux ¨Ï¥ÎªÌ©Ò­±Á{ªº¤@­Ó°ÝÃD¬O¡A ·s¼W¥[ªº 32 ¼ÒÀÀÁn­µ¬O¥Ñ³nÅé©Ò²£¥Í¦A¸g¥Ñ¶§¬KªºÁnªi³]³Æ¨Ó¿é¥Xªº¡C¦]¬° Creative Labs ¥H¬° ¦b Linux ªºÅX°Êµ{¦¡¤W¨Ã¨S¦³¥«³õ¥i¨¥¡A©Ò¥H¤~¥u´£¨Ñ Windows 3.1 ¤Î Windows 95 ªºÅX°Êµ{¦¡¦Ó¤w¡C ³o·N¨ýµÛ¡A±q Linux ¨Ï¥ÎªÌªºÆ[ÂI¬Ý¨Ó¡ASB AWE 32 ©M SB AWE 64 ¤j®a³£¾å±o¡A ¤U­±¶}©l°£«D¨âªÌ¦³¤£¦P³Bªº¤ñ¸û¥~¡A§Ú±N¥H SB AWE ¨Ó¥Nªí¨âªÌ¡C <sect1>Ãö©ó Plug & Play ¥d¥dªº¤@¯ë±`ÃÑ <p> ³Ìªñ°t¦X Intel ¥­¥xªº¤¶­±¥d³£¬O ISA PnP ¥d¡A²ºÙ¬° ``Plug and Play''¡C ¤]´N¬O»¡¡A³o¨Ç¥d¥²¶·¥Ñ§@·~¨t²Î¨Ó«Øºc¡A³o»Ý­n¦b±Ò°Ê¨t²Î®É°µ¤@­Óªì©l¤Æªºµ{§Ç¡C ¤@¯ë¨Ó»¡¡A¦Ü¤Ö¦³¤TºØ¤£¦Pªº¤èªk¥i¥H¹F¦¨³o­Ó¡G <enum> <item> §A¦³ PnP Bios¡A·N«ü§Aªº BIOS ·|¦Û°Ê¹îı PnP ¥d¨Ã¥B«Øºc¥¦­Ì¡C¦pªG§A¥H¬°§A¦³ PnP BIOS ©Ò¥H§A¥i¥Hµo´§§Aªº SB AWE PnP ªºªø¤~ªº¸Ü¡A«Ü¤£©¯ªº¡Aªù³£¨S¦³¡C ´Nºâ BIOS ¦³¤ä´© PnP ¥d¡A¥¦¤]¥u¯àªì©l¤Æ®É±N§Aªº­µ®Ä¥d©Ò¨Ï¥Î°ð¤Î¦ì§}°µ­Ó¤p³]©w¦Ó¤w¡C ¤]³\§A¥i¥H¼·©ñ¤@¨Ç°ò¥»ªº­µªi¸ê®Æ¡A¦ýµLªk¼·©ñ MIDI ­µ®Ä¡A³o¬O­Ó¨Ò¤l¡C¦]¦¹¡A ¦³µL PnP Bios ³£µL©Ò¿×¡A¥Ñ§A¦Û¤v¨M©w¡C <item> §A¦³­Ó¤ä´© PnP ¥dªº§@·~¨t²Î¡C¥Ø«eí©wªº Linux ®Ö¤ßµ{¦¡ (2.0.x) ÁÙ¤£³o­Ó¼Ë¤l¡A ¦]¦¹¡A§Ú­Ì±oµ¥¥¼¨Óªº·sª©¥»¡A¥¦­Ì±N¤ä´© PnP ³]³Æ¡C <item> §A¦³­Ó¯S§Oªºµ{¦¡·|¦b±Ò°Ê¨t²Î®É°õ¦æ¡A¥¦·|ªì©l¤Æ§Aªº PnP ¥d¡C§Ú­Ì´N¬O³o»ò¿ì¨ìªº¡C </enum> ¦b Linux ùس̱`³Q¨Ï¥Î¨Óªì©l¤Æ PnP ¥dªºµ{¦¡¬O ``isapnptools'' (½Ð¬Ý <ref id="sources" name="Sources"> ¥H¤Î <ref id="isapnp" name="Getting Started">)¡C¥¦­Ì´£¨Ñ¤F¥i¹w´úªº¤è¦¡¨Ó«Øºc§Aªº¾÷¾¹ùتº©Ò¦³ ISA PnP ¥d¡A¨Ã¤£¶È¥u­µ®Ä¥d¦Ó¤w®@¡C <sect1>Ãö©ó¥i¸ü¤J¦¡®Ö¤ßµ{¦¡¼Ò²Õªº¤@¯ë±`ÃÑ <p> ¦³¨Ç³]³ÆÅX°Êµ{¦¡¥i¥H³Q°µ¦¨¼Ò²Õ¡A¦Ó¤£¥²±N¥¦­Ì½s͍ì®Ö¤ßµ{¦¡ùØÀY¡C §A¥i¥H ¦b Kernel HOWTO ¤Î Module HOWTO ùاä¨ìÃö©ó¼Ò²Õªº¸ê°T¡C(½Ð¬Ý <ref id="moreinfo" name="Additional Information">). ¦pªG§A¦³ PnP ¥d¡A§A <em/¥²¶·/ ±N­µ®Ä¥d¤ä´©¦¨¤@­Ó¥i¸ü¤J¦¡®Ö¤ßÅX°Êµ{¦¡¼Ò²Õ¡C ¤]´N¬O»¡¡A§A¤£¯à±N­µ®ÄÅX°Êµ{¦¡«Ø¥ß¦b®Ö¤ßµ{¦¡ùØÀY¡A¦Ó±N¥¦°µ§@¤@­Ó¼Ò²Õ¡A³o¼Ë ´N¯à¦b®Ö¤ßµ{¦¡°õ¦æ®É³Q¸ü¤J¡C³o¬O¦]¬°®Ö¤ßµ{¦¡·|¦b§Aªº ISA PnP ¥d³Q«Øºc«e´N ³Q¦w¸Ë¤F¡A¦Ó§Aªº­µ®ÄÅX°Êµ{¦¡¥²¶·¦b ISA PnP «Øºc«á¤~·|³Q¸ü¤J¡C ­µ®Ä®Ö¤ßµ{¦¡¼Ò²Õ¥i¥H¨Ï¥Î <tt/insmod sound/ ©Î <tt/modprobe -a sound/ ©Î¦b§Aªº Linux ¨t²Îùتº¬Û¹ïªº±Ò°Ê©R¥O¤â½Zªº¤è¦¡¨Ó±Ò°Ê¡C (¦b Debian¡A¼W¥[¤@¦æ¥]§t <tt/sound/ ¨ì <tt>/etc/modules</tt>ªº©R¥O´N°÷¤F)¡C ±µ¤U¨Ó¡A°õ¦æ <tt/kerneld/¡A¥¦¬O¤@­Ó¥i¥H¦w¸Ë©Î²¾°£®Ö¤ßµ{¦¡¼Ò²ÕªººëÆF¡C °O±o <tt>kerneld</tt> ¨Ã¤£¬O¦b AWE ­µ®ÄÅX°Êµ{¦¡¼Ò²Õ¤W³Ì¦nªº¸Ñ¨M¤è®×¡A¦]¬°®Ö¤ßµ{¦¡¸ü¤J³o­Ó ¼Ò²Õ¤]­nªá®É¶¡¡A¯S§O¬O¦pªG§A­n¨Ï¥Î Wave Table ©R¦¨¾¹¨Ó¸ü¤J¤jªº Sound Font bank ®É¡A §A´N¥²¶·¦b¨C¤@¦¸´¡¤J¼Ò²Õ®É¦A¸ü¤J¤@¦¸¡C ¦]¬° <tt/®Ö¤ßµ{¦¡/ ·|¦b³]©w¤º©w­È«á¬ù¤@¤ÀÄÁ±N¤£»Ý­nªº ¼Ò²Õµ¹²¾°£¡A©Ò¥H¥H¤â°Ê¤è¦¡©Î¦b±Ò°Ê®É±N­µ®Ä¼Ò²Õ´¡¤J¥i¯à·|¸û¦n¨Ç¡C ÁÙ¦³¡A³o»ò°µÁÙ¥i¥H¹w¨¾ <tt/®Ö¤ßµ{¦¡/ ¦b¶i¤JªÅ¶¢¤U¨Ó®É²¾°£¥¦¡C§A¥i¥H ¦b¦P®É¶¡ùØ´¡¤J­µ®Ä¼Ò²Õ¨Ã¥B¨Ï¥Î <tt/®Ö¤ßµ{¦¡/ ¡C¨âºØ¤èªk¤£·|¤¬¬Û±Æ¥¸¡A¦ý¬O <tt/¼Ò¤ßµ{¦¡/ ´N¤£¦AºÞ­µ®Ä¼Ò²Õ¤F¡C ¯S§O¬O§Aªº²V­µ¾¹­Y¬O¦b²¾°£©Î­«¦w¸Ë¼Ò²Õ®É·|¨ü¨ì¤zÂZªº¸Ü¯S§O¦³®Ä¡C ³o³¡¥÷ªº¸Ñ¨M¤è®×¥i¦b <ref id="mixing" name="Mixing">³¹¸`ùاä¨ì¡C (¥¦¦b±Ô­z¦p¦ó¦b­µ®Ä¼Ò²Õ³Q´¡¤J®É¦Û°Ê±Ò°Ê§Aªº²V­µ¾¹¡C)¡CµM¦Ó¡A¥¦­n <tt/®Ö¤ßµ{¦¡/ ªá®É¶¡¨Ó¸ü¤J¼Ò²Õ¡A¨Ó¸ü¤J sound font bank ¨Ã±Ò°Ê§Aªº²V­µ¾¹¡A ¦]¬°³o¼Ë¥H¤Î¨ä¥Lªº²z¥Ñ¡A³Ì¦n¦b±Ò°Ê¨t²Î®É§Y¦w¸Ë­µ®Ä¼Ò²Õ¡A¤£­nÅý <tt/®Ö¤ßµ{¦¡/ ²¾°£¥¦¡C <sect1>Ãö©ó®Ö¤ßµ{¦¡­µ®ÄÅX°Êµ{¦¡ªº¤@¯ë±`ÃÑ <p> §A¥i¥H¦b®Ö¤ßµ{¦¡¤¤¦w¸Ë­µ®Ä¤ä´©¦¨¤º«Øªº©Î¬O­Ó¥i¸ü¤J¦¡¼Ò²Õ¡C¦pªG¬O PnP ¥d¡A§A¥²¶· ±N­µ®Ä¤ä´©¦w¸Ë¦¨¼Ò²Õ¡A¦]¬° PnP ¥d»Ý­n¦b¼Ò²Õ³Q¦w¸Ë«e¨Ï¥Î isapnptoo¨Óªì©l¥¦¡C ¦p§A©Ò·Q¡A§A¥²¶·­«½s֤ͮߵ{¦¡¡C¤U­±§Ú·|µ¹§A´X­Ó´£¥Ü¡C²{¦b¡A§Ú­Ì¨Ó½Í½Í®Ö¤ß­ì©lµ{¦¡ ùعﭵ®Äªº¤ä´©¡C ¦b®Ö¤ßµ{¦¡ùئ³­Ó§K¶O (ºë²ª©) ªº OSS (USS) ­µ®ÄÅX°Êµ{¦¡ª©¥»¡A ³Ì·sªº (3.5.4) ª©¨Ã¤£§¹¦¨¤ä´© SB AWE ¡A¦ý¬O¤ä´©³¡¥÷ SB 16 ¡C©Ò¥H¡A§A¥i¥H¨Ï¥Î¥¦ §A´N¥i¨Ï¥Î³æ¯ÂªºÁn­µ³]³Æ¥H¤Î OPL-2/OPL-3 ¦X¦¨¾¹¡C¦ý§A«oµLªk¨Ï¥Î Wave Table¦X¦¨¾¹¨Ó ¼·©ñ midi ÀÉ¡C ¦pªG§A­n¨Ï¥Î Wave Table ³]³Æ¡A§A¥i¥H±q <url name="4Front Technologies" url="http://www.4front-tech.com"> ¶R­Ó°Ó·~ª©ªº­µ®ÄÅX°Êµ{¦¡ (¦pªG¦³¤H¥i¥H¸ò§Ú½T»{¥¦¯uªº¥i¥Hªº¸Ü )¡A©Î¬O¥Î Takashi Iwaiªº AWE 32 Sound Driver Extension ¨Ó­×¸É§Aªº®Ö¤ßµ{¦¡¡C«e­±¨º³¡¥÷¨Ã¤£¦b¥»¤å¥ó©Ò½Íªº½d³ò¡A §Ú°²³]§A·Q¨Ï¥Î«áªÌ¡C ³o­Ó AWE32 Sound Driver Extension (½Ð¬Ý<ref id="sources" name="Sources">³o³¹¸`) ¦b GNU ª©Åv¤U´£¨ÑÅý SB AWE ¥dªº EMU 8000 wave ¦X¦¨¾¹Åܦ¨¥i¥Îªº¤u¨ã¡C ¦Ó <tt/awedrv/ ³nÅé¤w¸g³Q¥]§t¨ì·sªº®Ö¤ß­ì©lµ{¦¡¾ðùØ (±q¤@¨Ç 2.1.x ®Ö¤ßµ{¦¡¶}©l¡A¤]³\§A·Q¤É¯Å§A ©Ò¨Ï¥ÎªºÂªº¼Ò¤ßµ{¦¡¾ð)¡C <sect>¦p¦ó¦w¸Ë SB AWE ­µ®Ä¤ä´©<p> <sect1>§A»Ý­nªºªFªF<p> ¦b Linux ¤U¨Ï¥Î SB AWE »Ý­n¤U¦CªFªF®@¡G <itemize> <item> ¤@­Ó¥i¨Ï¥Îªº Linux ¨t²Î (¨Ò¦p Debian GNU/Linux ª©)¡A <item> ¤@­Ó SB AWE 32 ©Î¬Û®e¥d (¦p SB32, SB32 PnP, SB AWE64, ...)¡A <item> Linux ®Ö¤ßµ{¦¡ªº­ì©lµ{¦¡¡A¥]§t­µ®ÄÅX°Êµ{¦¡ OSS/Free (¥¿±`³£·|ªþ¡A½Ð¬d¬Ý <tt>/usr/src/Linux/drivers/sound/Readme</tt>), <item> ÁÙ¦³ AWE 32 sound driver extensions. </itemize> ¦pªG§A¦³­Ó PnP ¥d¡A§AÁٻݭn¡G <itemize> <item> isapnptools ³nÅé®M¥ó¡C </itemize> ½Ð¬Ý¦³Ãö©ó¦p¦ó¨ú±o³o¨Çµ{¦¡ªº³¹¸`<ref id="sources" Name="Sources">¡C ¦pªG§A¦³ Debian GNU/Linux ¨t²Î¡A¨º§A»Ý­n <tt>kernel-source-<version></tt>, <tt>awe-drv</tt> ®M¥ó¡A¤]³\Áٻݭn <tt>isapnptools</tt>³o­Ó¡AÁöµM¨Ã¤£»Ý­n¦ý§A¥i¯à·Q­n¤@¨Ç <tt>awe-*</tt> ®M¥ó¡A§Ú ±j¯P«ØÄ³§A±Ä¥Î <tt>kernel-package</tt> ·|§ó®e©ö½sĶ¤Î¦w¸Ë®Ö¤ßµ{¦¡¡C <sect1>¶}©l§a !<label id="isapnp"><p> °²³]§A¤w¸g¥¿½T¦a¦w¸Ë¦n­µ®Ä¥d¨ì§Aªº¹q¸£ªº¥D¾÷ªO¤W¦Ó¥B¤]¦b DOS ¥H¤Î WindowsÀô¹Ò¤W¸Õ¹L¤F¡C µM«á¡A¦pªG¥¦¬O¤@±i PnP ¥dªº¸Ü§Ú­Ì¥²¶·¦b¶}¾÷±Ò°Ê®Éªì©l¤Æ¤@¤U¡C½Ð«ö·Ó ­ì©lÀÉ®M¥óªº¤å¥ó©Ò»¡¦a¥h½sĶ¥H¤Î¦w¸Ë <tt/isapnptools/ (©Î¥u»Ý¨Ï¥Î Debian ªº¤G¶i¦ì½X®M¥ó)¡AµM«á¥H root ªº¨­¥÷°õ¦æ <tscreen><verb> # pnpdump > /etc/isapnp.conf </verb></tscreen> <p> ³o¼Ë·|²£¥Í¤@­Ó¬°§Aªº PnP ¥d¶q¨­­q°µªº«Øºc¡A¦ý¥¦·|§â©Ò¦³ªº³]³Æ³£µù¸Ñ°_¨Ó¡C½Ð¦A ¤p¤ß¦a­×§ï³o­ÓÀɮסA¦pªG¥i¯àªº¸Ü¨Ã¤ñ¸û DMAÀW¹D¡BIO¡B´¡Â_µ¥µ¥ªº³]©w¬O§_»P¥¦¦b DOS ©Î WINDOW Àô¹Ò¤U¤£¤@¼Ë (¦b Win95 ùØ¡A­n¬Ý³Q¤¶­±¥d©Ò¨Ï¥Îªº¸ê·½¥i¦b <tt/³]³ÆºÞ²z­û/¤Uªº <tt/¸ê·½/ ¬Ý)¡C ¦pªG§A¹J¨ì°ÝÃD¡A½Ð¤p¤ß¦aŪ¤@¤U©M<tt/isapnptools/ ©ñ¤@°_ªº¤å¥ó¡C <em/½Ðª`·N:/ <tt/isapnptools/ ±`µLªk°»´ú SB AWE Wave Table ³]³Æªº¤T­Ó I/O °ð¡C ½Ð¬d©ú§Aªº <tt/isapnp.conf/ ¤ºªº <tt/WaveTable/ ¶µ¥Ø against the example at the end of this HOWTO. ¦pªG»Ý­nªº¸Ü½Õ¾ã¤@¤U I/O base ¦ì§}¡C <p> <em/ª`·N:/ ®Ú¾Úe <tt/isapnp-faq/¡A¦³®É­Ô <tt/isapnp/ ·|µLªk±oª¾ÅÞ¿è³]³Æªº¼Æ¥Ø¡C¦pªG§A¾D¹J ¨ì¹³¤U­±ªº¿ù»~°T®§¡G <tscreen><verb> Error occurred executing request 'LD 2' on or around line... </verb></tscreen> ¨º¸Õ¬Ý¬Ý¥[¤J <tt/(VERIFYLD N)/ ¨ì <tt/isapnp.conf/ªº¤WÀY¡C§A¥²¶·¨Ï¥Î¦Ü¤Ö¬O 1.10 ª©ªº¤~¯à³o»ò°µ¡C ¦pªG§AµLªk¨Ï¥Î 1.10 ©Î¬O§ó·sªºª©¥»¡C§A¤]¥i¥H¦Û¤wª½±µ¤â°Ê§ïÅÞ¿è³]³Æªº¼Æ¶q¡C ½Ð±¡½Ð°Ñ¦Ò <tt>isapnp-faq</tt> ¡C¦pªGÁÙ¬OµLªk§JªA¡A½Ð©M§Ú³sµ¸ (À³¸Ó¦³¤H¤]·|¹ï <tt/isapnp/ ¦³¿³½ì§a ¡A§Ú·Q)¡C <em>¤p¤ß:</em> ½Ð½T»{³Ì«á¨º¦æ¬O <tt>(WAITFORKEY)</tt>¡A¦³®É­Ô¸ûªº <tt>pnpdump</tt> ª©¥»·|§R°£¥¦¡C ¦b¤å¥óªº«á­±¦³¤@­Ó<tt>isapnp.conf</tt> µ¹³æ­Ó PnP ­µ®Ä¥d¥Îªº¼Ë¥»¡C (½Ð¬Ý³¹¸` <ref id="isapnpconf" name="Sample <tt>isapnp.conf</tt>">)¡C ¦pªG§A¬O¥Î Debian ¨t²Î´N¤£¥Î¦A°µ¥ô¦óªº¨ä¥L½Õ¾ã¡C <tt>/etc/init.d/boot</tt> ¥[¤W¤U­±ªº ©R¥O¤â½Z¤U¡A§A´N¥i¥H¦b¶}¾÷®É±Ò°Ê<tt/isapnp/ <code> # Configure the isa plug and play boards before loading # modules. Need to do this before loading modules to get # a chance of configuring and starting PnP boards before # the drivers mess all this up. # if [ -x /etc/init.d/isapnp ] then /etc/init.d/isapnp start fi </code> where <tt>/etc/init.d/isapnp</tt> is <code> #! /bin/sh # /etc/init.d/isapnp: configure Plug and Play boards test -x /sbin/isapnp || exit 0 /sbin/isapnp /etc/isapnp.conf exit 0 </code> ¦pªG§A¦³¨ä¥Lªº Linux ¨ÑÀ³°Óª©¥»¡A§A´N­n¦Û¤w¨Ó¤F¡C§Ú¤]¤£ª¾¹D«ç»ò°µ (¦³½ÖÄ@·N´£¨Ñ§ó¦hªº¸ê°T¶Ü?)¡C¥u­n°O±o isapnp ¥²¶·¦b©Ò¦³¼Ò²Õ³Q¸ü¤J <em/¤§«e/ ´N³Q¸ü¤J¤F (½Ð¬Ý¤U­±)¡C <sect1>½s֤ͮߵ{¦¡<p> ¦b½s֤ͮߵ{¦¡¤§«e¡A§A¥²¶·¦³ AWE Driver Extension ®M¥ó¨Óµ¹­µ®ÄÅX°Êµ{¦¡¨Ï¥Î¡C´Nºâ§A ªº®Ö¤ß­ì©lµ{¦¡¥Ø¿ýùؤw¸g¦³ <tt/awedrv/ ©µ¦ù®M¥ó¤F (½ÐÀˬd <tt>/drivers/sound/lowlevel/</tt> ¬Ý¬Ý)¡A §A¥i¯à·Q­n¤É¯Å <tt/awedrv/ ³nÅé¡C¨Ì·Ó¦w¸Ë¦b <tt/awedrv/ ­ì©l¥Ø¿ýùتº«ü¥Ü¡C²³æ¦a»¡¡A§A¥²¶·°õ¦æ ¤@­Ó­×¸É®Ö¤ß­ì©lµ{¦¡ªº¦w¸Ë©R¥O¤â½Z¡C ½Ð¤p¤ß§A¤w¸g¦b°õ¦æ§¹¦w¸Ë©R¥O¤â½Z«á¤w¸g¤É¯Å¤F®Ö¤ß­ì©lµ{¦¡¤F¡C³o­Ó©R¥O¤â½Z ¥u¬O¦bÀˬd¬Ý¬Ý¤@¨Ç¯S©wÀɮ׬O§_¤w¸g¦³¤F¡A¦pªG¦³¤F¡A¥¦¤£·|¦³¥ô¦ó»Ý­nªº­×¸É°Ê§@¡C §A¤É¯Å®Ö¤ß­ì©lµ{¦¡«á¦b°õ¦æ©R¥O¤â½Z«e·|³Q«ØÄ³±N <tt>drivers/sound/lowlevel/awe_wav.c</tt> Àɮײ¾°£¡C ±µ¤U¨Ó§A¥²¶·«Øºc®Ö¤ßµ{¦¡¨Ó¤ä´©­µ®Ä¡C§Ú§Æ±æ§Aª¾¹D«ç»ò¨Ó½s֤ͮߵ{¦¡¡F¸Ô±¡½Ð°Ñ¦Ò Sound HOWTO ¥H¤Î Kernel HOWTO¡C¨ì®Ö¤ß­ì©lµ{¦¡ªº¥Ø¿ýùØ¡A (<tt>¨Ò¦p /usr/src/linux</tt>) µM«á°õ¦æ <tscreen><verb> # make config </verb></tscreen> ©Î¬O <tt>make menuconfig</tt> ©Î <tt>make xconfig</tt>¡CµM«á¥Î¼Ð·Çªº¤è¦¡¨Ó «Øºc§Aªº®Ö¤ßµ{¦¡¡C §Q¥Î³o­Ó¾÷·|¨Ó°µ­ÓÅé¿n¤S¤p¤S±j¦Ó¦³¤Oªº®Ö¤ßµ{¦¡¡A¯S§O¬O ¬°§Aªº¨t²Î¶q¨­­q°µªº¡C°O±o¦b¦^µª <tt/Enable loadable module support/ ¬O¿ï <tt/Y/¡A ¦pªG§A·Q§â­µ®ÄÅX°Êµ{¦¡¦w¸Ë¦¨¥i¸ü¤J¦¡¼Ò²Õªº¸Ü (¦pªG§A¥Îªº¬O PnP ¥dªº¸Ü´N <em/¥²¶·/³o»ò°µ) ¡A¦ý§Úª¾¹D§A¤]·|³o»ò°µ§a¡I §A·|¦b¦³­Ó¦a¤è³Q°Ý¨ì¬O§_»Ý­n­µ®Ä¥d¤ä´©¡C¦pªG§A<em/¨S¦³/ PnP¥dªº¸Ü §A¥i¥H¦Û¥Ñ¦^µª <tt/Y/ ©Î <tt/M/ ¡A¦pªG§A­n°µ¦¨¼Ò²Õªº¸Ü¦Ó¥B¬O PnP¥d¡A<em/¥²¶·/ ¦^µª <tt/M/¡C §A¥²¶·±N PnP ­µ®Ä¥dªº¤ä´©½sͦ¨¤@­Ó¼Ò²Õ¡A¦]¬°¦b¼Ò²Õ³Q¸ü¤J«e PnP ¥d¥²¶·¥ýªì©l¤Æ¡C ¤U¦Cªº°ÝÃD§AÀ³¸Ó¦^µª <tt/Y/¡A¨ä¾l¦^µª <tt/N/¡G <code> Sound Blaster (SB, SBPro, SB16, clones) support (CONFIG_SB) [Y/n/?] Generic OPL2/OPL3 FM synthesizer support (CONFIG_ADLIB) [Y/n/?] /dev/dsp and /dev/audio support (CONFIG_AUDIO) [Y/n/?] MIDI interface support (CONFIG_MIDI) [Y/n/?] FM synthesizer (YM3812/OPL-3) support (CONFIG_YM3812) [Y/n/?] lowlevel sound driver support [Y/n/?] AWE32 support (CONFIG_AWE32_SYNTH) [Y/n/?] </code> ¥u¦³«á­±ªº¬Oµ¹ Wave Table ¦X¦¨¾¹¥Îªº¡C¨ä¾l¬O OSS/Free ­µ®ÄÅX°Êµ{¦¡µ¹ SB 16 ªº¿ï¶µ¡C °£¦¹¤§¥~¡A§A¥²¶·«Øºc­µ®Ä¥d I/O °ð¡C¥i°Ñ¦Ò <tt/isapnp.conf/ ÀÉ·|µ¹§A¤@¨Ç´£¥Ü¡A ¦pªG§A¦³³o­ÓÀɪº¸Ü¡C¹ï§Ú¨Ó»¡¡A¤U­±ªº¤º©w­È´N°÷¤F¡C½Ðª`·N¡G®Ö¤ßµ{¦¡«Øºc©R¥O¤â½Zªº¤º©w­È ¤]¦³¥i¯à¬O¿ùªº (¯S§O¬O <tt/SBC_IRQ/ ©M <tt/SB_MPU_BASE/ ªº­È¹ï¤j³¡¥÷ªº¥d¨Ó»¡¦n¹³³£¿ù¤F)¡C <code> I/O base for SB Check from manual of the card (SBC_BASE) [220] Sound Blaster IRQ Check from manual of the card (SBC_IRQ) [5] Sound Blaster DMA 0, 1 or 3 (SBC_DMA) [1] Sound Blaster 16 bit DMA (_REQUIRED_for SB16, Jazz16, SMW) 5, 6 or 7 (use 1 for 8 bit cards) (SB_DMA2) [5] MPU401 I/O base of SB16, Jazz16 and ES1688 Check from manual of the card (SB_MPU_BASE) [330] SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Use -1 with SB16 (SB_MPU_IRQ) [-1] </code> ¦n¤F¡A²{¦b­«·s½s֤ͮߵ{¦¡¡ADebian ªº¨Ï¥ÎªÌ­n¥Î <tt/kernel-package/«ü¥O¡C ³o­Ó®M¥óÅý§Ú­Ì½s֤ͮߵ{¦¡´N¹³¦w¸Ë debian ªº®M¥ó¤@¼Ë®e©ö®@¡C½Ð¬Ý <tt>/usr/doc/kernel-package/</tt>ùتº¤å¥ó¡C³oùئ³­Ó´£¥Ü¡G <tscreen><verb> # make-kpkg clean # make-kpkg -revision custom.1.0 kernel_image </verb></tscreen> µM«á <tt>dpkg -i /usr/src/kernel-image-2.0.29_custom.1.0_i386.deb</tt>. ¦pªG§Aªº¬O¨ä¥Lªº Linux ¨ÑÀ³°Óª©¥»¡A½Ð¨Ì·Ó¼Ð·Çªº¤è¦¡¨Ó½sĶ·sªº®Ö¤ßµ{¦¡¡C¤£­n§Ñ¤F <tt/make modules/ ¥H¤Î <tt/make modules_install/¡C¸Ô±¡½Ð¬Ý Sound HOWTO ©Î Kernel HOWTO¡C <sect1>­«¶}¾÷<p> ¦w¸Ë§¹·s®Ö¤ßµ{¦¡«á¡A§AÀ³¸Ó­«·s¶}¾÷ (½Ð°O±o§A­n¦³­Ó¥i¥Îªº¶}¾÷ºÏ¤ù¦b¤â¤W)¡C¥æ¤eµÛ§Aªº¤â«üÀYµ¥¤@¤U¡C ¦pªG§A¦³­Ó PnP ¥d¡A½Ð½T»{¦b¶}¾÷±Ò°Ê©R¥O¤â½ZùةάO¤â°Ê¦a°õ¦æ isapnp (¹³¤W­±©Ò´£ªº¤@¼Ë)¡G <tscreen><verb> # /sbin/isapnp /etc/isapnp.conf Board 1 has Identity 74 00 00 e3 10 48 00 8c 0e: CTL0048 Serial No 58128 [checksum 74] </verb></tscreen> ²{¦b§A¥i¥H¦w¸Ë­µ®ÄÅX°Êµ{¦¡¤F¡A¦pªG§A¤w§â¥¦½sͦ¨¤@­Ó¼Ò²Õ¡G <tscreen><verb> # modprobe -a sound AWE32 Sound Driver v0.3.3e (DRAM 2048k) </verb></tscreen> ¦pªG§A»{¬°°O¾ÐÅé°»´ú¦³»~ (¦³­Ó¤H§i¶D§Ú»¡¥L¦³±i AWE64 ¥d¦³ 4096k¡AµM¦Ó ``°»´ú¨ì'' 28672k !)¡A½Ð¤É¯Å <tt/awedrv/ ³nÅé©Î¬O¦b <tt>/usr/src/linux/drivers/sound/lowlevel/awe_config.h</tt>ÀÉ®×ùØ«ü©w°O¾ÐÅé¡A ¦p¡G <tscreen><verb> #define AWE_DEFAULT_MEM_SIZE 4096 /* kbytes */ </verb></tscreen> ©êÁ¾¡A§A¥²¶·¦A­«·s½s֤ͮߵ{¦¡ (¤]³\½sͳo¨Ç¼Ò²Õ´N°÷¤F¡A¦ý§Ú¤£½T©w)¡C ¦pªG¥¦¦¨¥\°Ê§@¤F¡A§A¥i¯à§Æ±æ­µ®Ä¼Ò²Õ¯à¦Û°Ê¸ü¤J¡C§A¥i¥H¨Ï¥Î <tt/kerneld/ ( ¦b 1.4³¹¸`ùئ³»¡©ú¬°¦ó³o¬O­ÓÃaÂI¤l) ©Î¬O¦b§Aªº<tt>/etc/modules</tt> (Debian¨t²Î) ùØÀY ¥[¤W¤@¦æ¥]§t <tt/sound/ ©Î¬O¥[¤W <tt>/sbin/modprobe -a sound</tt> ¨ì§Aªº±Ò°Ê©R¥O¤â½ZùØ¡C <sect>´ú¸Õ¦w®ÄÅX°Êµ{¦¡<p> <sect1><tt>/proc/devices, /dev/sndstat</tt><p> ¦pªG§A¦³¤º«Øªº­µ®Ä¤ä´©¡A§A·|¦b¶}¾÷®É¦¬¨ì¤@¨Ç¦³¥Îªº¸ê°T¡C¦pªG§Aªº­µ®Ä¤ä´©¬O¦w¸Ë¦¨¥i¸ü¤J¦¡¼Ò²Õªº¡A §A¤]¥i¥H¥Î¤U¦C¤è¦¡±o¨ì¤@¨Ç¸ê°T (©Î³\­n¥ý¥Î <tt>modprobe -r sound</tt> ±N­µ®Ä²¾°£)¡C <tscreen><verb> # modprobe -a sound trace_init=1 Sound initialization started <Sound Blaster 16 (4.13)> at 0x220 irq 5 dma 1,5 <Sound Blaster 16> at 0x330 irq 5 dma 0 <Yamaha OPL3 FM> at 0x388 Sound initialization complete AWE32 Sound Driver v0.3.3e (DRAM 2048k) </verb></tscreen> ¦pªG§A¦³ <tt>/proc</tt> µêÀÀÀɮרt²Î¡A§A¥i¥H¥Î¤U¦C¤èªk¬Ý¨ì²Ä¤G­Ó³]³Æ <tscreen><verb> # cat /proc/devices Character devices: [...] 14 sound [...] </verb></tscreen> ±µ¤U¨Ó½Ð»{»{§A¦b <tt>/dev/</tt> ¤U¦³­Ó¤w¥¿½T¦w¸Ëªº³]³Æ¡C¸Ô±¡½Ð¬Ý Sound HOWTO ¡C µM«á°õ¦æ <tt>/dev/sndstat</tt> ¥i¬d¸ß­µ®Ä¼Ò²Õªºª¬ºA¡C <tscreen><verb> # cat /dev/sndstat Sound Driver:3.5.4-960630 (Sat Oct 11 19:35:14 CEST 1997 root, Linux flora 2.0.29 #1 Sat Oct 11 19:12:56 CEST 1997 i586 unknown) Kernel: Linux flora 2.0.29 #1 Sat Oct 11 19:36:23 CEST 1997 i586 Config options: 0 Installed drivers: Type 1: OPL-2/OPL-3 FM Type 2: Sound Blaster Type 7: SB MPU-401 Card config: Sound Blaster at 0x220 irq 5 drq 1,5 SB MPU-401 at 0x330 irq 5 drq 0 OPL-2/OPL-3 FM at 0x388 drq 0 Audio devices: 0: Sound Blaster 16 (4.13) Synth devices: 0: Yamaha OPL-3 1: AWE32 Driver v0.3.3e (DRAM 2048k) Midi devices: 0: Sound Blaster 16 Timers: 0: System clock Mixers: 0: Sound Blaster 1: AWE32 Equalizer </verb></tscreen> ¦pªG§A¨S¦³¹³³o¼Ëªº¿é¥X¡A¤]³\¦b§Aªº«Øºcùئ³°ÝÃD¡AÄ~Äò§ä¬Ý¬Ý­þ¨à¤£¯à°Ê¡A¦A¦^¨Ó <ref id="isapnp" name="Getting Started">¡AÀˬd¨C¤@¶µ¡C <sect1> ¿é¥X¡Ð Raw Audio Device<p> ¥h¨ú±o¤@­Ó <tt>.au</tt> ÀÉ (Sun workstation) ©Î¼Ë¥»ÀɮסAµM«á³o¼Ë°µ¡G <tscreen><verb> # cat bell.au > /dev/audio </verb></tscreen> resp. <tscreen><verb> # cat sample > /dev/dsp </verb></tscreen> §A·|À³¸Ó¥i¥H¥Ñ <tt>Audio Device 0: Sound Blaster 16 (4.3)</tt>Å¥¨ì³o­ÓÀɮתº¤º®e¡C <sect1>¿é¥X - OPL-2/OPL-3 Synthesis <p> ¦pªG§A­n¨Ï¥Î OPL-2/OPL-3 FM ¦X¦¨¾¹¦b§Aªº­µ®Ä¥d¤W¼·©ñ MIDIÀɮסA½Ð¸Õ¬Ý¬Ý <tt>playmidi</tt> ³o­Óµ{¦¡(½Ð¬Ýªþ¿ý B)¡C¨Ï¥Î¤èªk¦p¤U <tscreen><verb> # playmidi -f dance.mid </verb></tscreen> <p> ©Î¬O <p> <tscreen><verb> # playmidi -4 dance.mid </verb></tscreen> «e³õ·|µ¹§A OPL-2¡A«á³õ·|µ¹§A OPL-3 MIDI ­µ¼Ö¡C ¦pªG§Aı±o³o¨ÇÁn­µÅ¥¨Ó«Ü»¹¡A ¤£­n©Ç playmidi¡A¨º¬O¦]¬° FM ¦X¦¨¾¹Å¥°_¨Ó«Ü®t°Õ¡C ±z¥i¥H·Q¹³¤@¤U§A¥u¦³¤@­Ó OSS/Free ­µ®ÄÅX°Êµ{¦¡¡G¨º´N¬O§A©Ò¯à±o¨ìªº MIDI­µ¼Öªº«~½è¤F¡C (»P³nÅé¦X¦¨¤£¦P)¡C©¯¹Bªº¬O¡A§A¦³ SB AWE¡A§AÁÙ¥i¥H¨Ï¥Î Wave Table ¥H¤Î AWE Sound Driver Extension¤F¡C <sect1>¿é¥X - Wave Table Synthesis<p> ¦b AWE Driver Extension ùئ³­Ó«Ü¯S§Oªº¤u¨ãµ{¦¡ (<tt/awesfx/) ¥i¥Î¨Ó¨Ï¥Î EMU 8000 Wave Table ¦X¦¨¾¹¡C ­º¥ý¡A§A¥²¶·±q§Aªº­µ®Ä¥dùظü¤J Sound Font Bank ¡Ð´Nºâ§A·Q¨Ï¥Î ROM ªº¨ú¼Ë ! §A¥i¥H±q§Aªº Windows ªº ¦w¸Ë¤¤¨ú±o³o­ÓÀÉ ¡Ð´M§äªþ¥[ÀɦW¬° <tt>*.sfb</tt> ©Î <tt>*.sf2</tt>ªºÀɮסC ROM ¨ú¼Ë¥i¥H¨Ï¥Î <tt>SYNTHGM.SBK</tt>¨Ó¸ü¤J¡A ¯u¹êªº¨ú¼Ë©ñ¦b <tt>SYNTHGS.SBK</tt> ¤Î <tt>SYNTHMT.SBK</tt> ¥H¤Î <tt>SAMPLE.SBK</tt>ùØ¡C§A¤]¥i¥H±q ftp©Î www ¨Ó¨ú±o¨ä¥Lªº Sound Font Banksvia ¡A¥i¥H¸Õ¸Õ Creative Labs ªº EMU ªººô­¶¡A ¦³­Ó Chaos ¨ú¼Ë¡A¥L­Ì¯uªº«Ü´Î (½ÐÀˬd AWE ÅX°Êµ{¦¡ºô¯¸)¡C ¸Õ¬Ý¬Ý¸ü¤J¼Ð·Çªº GM (ROM) set ¡A¨Ï¥Î <tscreen><verb> # sfxload -i synthgm.sbk </verb></tscreen> µM«á¼·©ñ­Ó¦ñÀHµÛ§Aªº SB AWE ªº midi ÀɮסG <tscreen><verb> # drvmidi dance.mid </verb></tscreen> <sect1>²V­µ<label id="mixing"><p> ¨ú±o§A³Ì³ßÅwªº²V­µ¾¹µ{¦¡¨Ã°õ¦æ¥¦¡C¦b¦P¤@®É¶¡¼·©ñ¤@­Ó­µ®Ä¨ú¼Ë¥H¤Î¨â­Ó MIDI Àɼ˥»¡A µM«á¸Õ¸Õ²V­µ¾¹ªº³]©w¡C ¼·¤@·|¨à¡A«Ü®e©öªº¡C¥H¤U¦³¥L­Ì³QºÙ©Iªº³]³Æ¦Cªí¡G <descrip> <tag>Yamaha OPL-3</tag>Synth ©Î FM <tag>AWE32 Driver</tag>Synth ©Î FM (¦³¤Hª¾¹D²V­µ¾¹¬O a mixer were the last two are separated from each other?) <tag>Sound Blaster 16 (4.13)</tag>PCM ©Î DSP <tag>PC Speaker (still alive)</tag>Spkr </descrip> ÁÙ¦³¤@¨Ç»P CD ROM ¬ÛÃöªº²V­µ¾¹¡A¥i¯à³s±µµÛ­µ®Ä¥dªº¦³ Master Volume, Bass, Treble ©M¤£¦P ¿é¤J­y¹Dªº¿ý­µ°ª§C¡C §A¥i¥H«ü©w­þ¨Ç­y¹DÀ³¸Ó³Q¿ý­µ¤U¨Ó¡C <sect1>¿é¤J¡Ð¨Ï¥ÎRaw Audio Device¨Ó¨ú¼Ë<p> §A¥i¥H¿ý¤U¤£¦Pªº­µ·½¡G¬Û³sªº CD ROM¡B»P <tt>mic</tt> ¬Û³sªº³Á§J­·¡A¥H¤Î»P <tt>line in</tt> ¬Û³s±µªº¥ô¦ó­µ·½¡C±N²V­µ¾¹³]©w¦b¾A·íªº¦ì¸m¡C¼·©ñ¤@­ÓÁn­µ¨Ã±N¥¦¿ý­µ¦¨¤@­ÓÀɮסA¦A¥Ñ Raw Audio Device¨ÓŪ¨ú¡A¨Ò¦p¡G <tscreen><verb> # cdplay # dd bs=8k count=5 &etago;dev/dsp >music.au 5+0 records in 5+0 records out # cat music.au >/dev/dsp </verb></tscreen> ±q¿é¤J³]³Æ¨Ó¿ý­µ¥H¤Î¼·©ñ 5 ¬íªºÁn­µ¡C <sect1>MIDI °ð<p> ©êÁ¾¡A¥Ø«eÁÙ¨S¦³Ãö©ó MIDI °ðªº¸ê°T! <sect>AWE ÅX°Êµ{¦¡³nÅé<p> <sect1><tt>sfxload</tt><p> §A¥i¥H¨Ï¥Î <tt/sfxload/ ¤u¨ã¨Ó¸ü¤J­µ®Ä¥d¤Wªº DRAM ¨ú¼Ë¨ì¡C°O±o§A¥u¯à¦b¨C­Ó bank ùظü¤J¤@­Ó¨ú¼Ë¡A ¤º©w¬° bank 0¡C¦]¦¹¡A¦b <tt>sfxload synthgs.sbk</tt> ¤§«á¡A¦b§Aªº­µ®Ä¥d¤W°ß¤@ªº¨ú¼Ë´N¬O GS ¨ú¼Ë¡C ¦pªG§A­n¸ü¤J¨ä¥Lªº Sound Font Bank¡A½Ð¨Ï¥Î <tt/-b/ ¿ï¶µ¡A¨Ò¦p¡G <tscreen><verb> # sfxload synthgs.sbk # sfxload -b1 sample.sbk # drvmidi sfx.mid </verb></tscreen> ¤]¥i¥H¦w¸Ë¼Ò²Õ¨Ó¦Û°Ê¸ü¤J¤º©wªº Sound Font Bank¡C¥u»Ý¥[¤W³o¤@¦æ <tscreen><verb> post-install sound /usr/bin/sfxload synthgm.sbk </verb></tscreen> ¨ì§Aªº <tt>/etc/conf.modules</tt> ÀÉ®×ùØ ¸Ô±¡½Ð¬ÝÃö©ó <tt/sfxload/ ªº¤å¥ó <sect1><tt>drvmidi</tt><p> ¨Ï¥Î <tt/drvmidi/ µ{¦¡¡A§A¥i¥H¨Ï¥Î§Aªº AWE ÅX°Êµ{¦¡¨Óºt«µ MIDI ÀɮסC ¥u­n¦b©R¥O«á­±¥[¤W§Aªº midi ÀɦW§Y¥i¡G <tscreen><verb> # drvmidi waltz.mid </verb></tscreen> ¸Ô±¡½Ð¬ÝÃö©ó <tt/drvmidi/ ªº¤å¥ó <sect>ªþ¿ý<p> <sect1>ªþ¥[¸ê°T<label id="moreinfo"><p> <descrip> <tag>Linux Sound HOWTO</tag> §@ªÌ: Jeff Tranter, <tt><<htmlurl url="mailto:jeff_tranter@pobox.com" name="jeff_tranter@pobox.com">></tt> ³Ì·sª©: v1.17, 1997¦~ 8¤ë 4¤é ½Ð¦n¦n¾\Ū¤@¤U Sound HOWTO (¥i±q sunsite.unc.edu ¥H¤Î¨ä¥L¯¸¨ú±o)¡C ¥¦¦³«Ü¦nªº¸ê°TÃö©ó½s֤ͮߵ{¦¡¨Ó¤ä´©­µ®Ä¡A¨Ã¸ÑÄÀ«Ü¦h­µ®Ä³]³Æ¥H¤ÎÀ³¥Îµ{¦¡µ¥µ¥¡C I understand this HOWTO as an addition to the Sound HOWTO. <tag>Linux Sound Playing HOWTO</tag> §@ªÌ: Yoo C. Chung, <tt><<htmlurl url="mailto:wacko@laplace.snu.ac.kr" name="wacko@laplace.snu.ac.kr">></tt> ³Ì·sª©: v1.4, 1997 ¦~ 5¤ë 13¤é §AÀ³¸Ó¤]¾\Ū Sound Playing HOWTO¡C¥¦·|§i¶D§A«Ü¦h¦UºØÁn­µ®æ¦¡¥H¤Îºt«µ¥L­ÌªºÀ³¥Îµ{¦¡¡C <tag>AWE ÅX°Êµ{¦¡ FAQ</tag> §@ªÌ: Takashi Iwai <tt><<htmlurl url="mailto:iwai@dragon.mm.t.u-tokyo.ac.jp" name="iwai@dragon.mm.t.u-tokyo.ac.jp">></tt> ¨Ó·½: <url url="http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/awedrv/awedrv-faq.html"> ¦pªG§A¦b¦w¸Ë AWE ÅX°Êµ{¦¡®É¡B©Î¬O¨Ï¥Î§Aªº Sound Blaster ¥dªº Wave Table ¦X¦¨¾¹¡A¨º´N¬Ý³o¨à¤F¡C <tag>ISA PnP FAQ ±`°Ý¶°</tag> §@ªÌ: Peter Fox <tt><<htmlurl url="mailto:fox@roestock.demon.co.uk" name="fox@roestock.demon.co.uk">></tt> ¨Ó·½: <url url="http://www.roestock.demon.co.uk/isapnptools/isapnpfaq.html"> ¦pªG§A­n¦w¸Ë ISA PnP ¥d¡A¨º´N­n¬Ý§A¦Û¤v¤F¡C </descrip> <sect1>¨Ó·½<label id="sources"><p> <descrip> <tag><tt>isapnptools</tt></tag> §@ªÌ: Peter Fox <tt><<htmlurl url="mailto:fox@roestock.demon.co.uk" name="fox@roestock.demon.co.uk">></tt> ³Ìªñª©¥»: 1.11 ¨Ó·½: <url url="http://www.roestock.demon.co.uk/isapnptools/index.html"> ¦pªG§A­n³ø§i­×¸É¡B¯ä¦ä©Î¬Oij¨¥¡A½Ð¦b¥DÃDÄæùØ­±¥[¤W 'isapnp' ¡A¨Ã¶l±H¨ì isapnp@roestock.demon.co.uk <tag><tt>awedrv</tt></tag> §@ªÌ: Takashi Iwai <tt><<htmlurl url="mailto:iwai@dragon.mm.t.u-tokyo.ac.jp" name="iwai@dragon.mm.t.u-tokyo.ac.jp">></tt> ³Ì·sª©¥»: 0.4.2c ¨Ó·½: <url url="http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/awedrv/"> <tag>Linux kernel</tag> §@ªÌ: Linus Torvald and many other ³Ì·sª©¥»: ¦b¦¹¨è¡A§A¥i¥H¥Î 2.0.29 ¨Ó·½: ¨ì³B³£¥i¥H¨ú±o Linux <tt>:)</tt> <tag>OSS/Free</tag> §@ªÌ: Hannu Savolainen (Please check <url url="http://www.4front-tech.com/usslite before mailing me">). ³Ì·sª©¥»: §Ú¦³ 3.5.5-beta1 ª© ¨Ó·½: ©M Linux ®Ö¤ß­ì©lµ{¦¡®M¥ó¤@°_ ¸ê°T: <url url="http://www.4front-tech.com/usslite"> or <url url="http://personal.eunet.fi/pp/voxware" name="European mirror">. </descrip> <sect1>½d¥» <tt>isapnp.conf</tt><label id="isapnpconf"><p> ¥Ñ pnpdump ©Ò«Ø¥ßªº ISA PnP «ØºcÀÉ¡A§Aªº PnP ¥d°ß¤@¥X²{ªº¶µ¥Ø¿é¥X¦p¤U¡A ¦³¤@±i¥d³Q°»´ú¥X (­µ®Ä¥d)¡A¨Ã¦³¥|­ÓÅÞ¿è³]³Æ¡G <itemize> <item><tt>LD 0</tt>: Audio Device <item><tt>LD 1</tt>: IDE Device <item><tt>LD 2</tt>: WaveTable Device <item><tt>LD 3</tt>: Gameport Device </itemize> §Ú¸Ñ°£ <tt>LD 1</tt> ªº«Øºc¡A¦]¬°§Ú¨S¦³¦b­µ®Ä¥dªº IDE °ð¤W±µµÛ CD ROM¡C¦pªG§Aªº SB ¨S¦³ IDE °ð ¡A¨º»ò <tt>LD 1</tt> ´N¬O Gameport ³]³Æ¡A¦Ó <tt>LD 3</tt> ´N¤£·|¥X²{¤F¡C ½Ð°Ñ¦Ò <ref id="isapnp" name="Getting started"> ³o­Ó³¹¸`ùئ³§ó¦hªº¸ê°T («Ü­«­n!)¡C <code> # $Id: pnpdump.c,v 1.9 1997/06/10 21:37:32 fox Exp $ # This is free software, see the sources for details. # This software has NO WARRANTY, use at your OWN RISK # # For details of this file format, see isapnp.conf(5) # # For latest information on isapnp and pnpdump see: # http://www.roestock.demon.co.uk/isapnptools/ # # Compiler flags: -DREALTIME -DNEEDSETSCHEDULER (READPORT 0x0203) (ISOLATE) (IDENTIFY *) # Try the following if you get error messages like # Error occurred executing request 'LD 2' on or around line... #(VERIFYLD N) # ANSI string -->Creative SB32 PnP<-- (CONFIGURE CTL0048/58128 (LD 0 # ANSI string -->Audio<-- (INT 0 (IRQ 5 (MODE +E))) (DMA 0 (CHANNEL 1)) (DMA 1 (CHANNEL 5)) (IO 0 (BASE 0x0220)) (IO 1 (BASE 0x0330)) (IO 2 (BASE 0x0388)) (ACT Y) )) (CONFIGURE CTL0048/58128 (LD 1 # ANSI string -->IDE<-- # (INT 0 (IRQ 10 (MODE +E))) # (IO 0 (BASE 0x0168)) # (IO 1 (BASE 0x036e)) # (ACT Y) )) (CONFIGURE CTL0048/58128 (LD 2 # ANSI string -->WaveTable<-- (IO 0 (BASE 0x0620)) (IO 1 (BASE 0x0A20)) (IO 2 (BASE 0x0E20)) (ACT Y) )) (CONFIGURE CTL0048/58128 (LD 3 # ANSI string -->Game<-- (IO 0 (BASE 0x0200)) (ACT Y) )) # Returns all cards to the "Wait for Key" state (WAITFORKEY) </code> <p>ĶªÌ«ö: ­Y±zµo²{¥»¤å¥ó¤º®e¦³Â½Ä¶¤£¶¶ºZ©Î¿ù»~ªº¦a¤è¡A½Ð±z¨Ó«H§i¶D§Ú¡A¥H°µ§ó¥¿¡AÁÂÁ¡C <tt><htmlurl url="mailto:linuxer.bbs@cis.nctu.edu.tw" name="linuxer.bbs@cis.nctu.edu.tw"></tt>¡C ͵ù¡G³o¥÷¤å¥óªº¤¤¤åª©¥i¦b<url url="http://www.linux.org.tw/LCDP/">¤U¨ú±o¡C </article>