<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN">

<Article lang="ko">

<articleinfo>

<Title>The Linux MIDI-HOWTO </Title>
<AUTHOR lang="en">
	<FirstName>Phil</FirstName>
	<surname>Kerr</surname>
	<affiliation>
		<address>
			<email>phil (at) plus24.com</email>
		</address>
	</affiliation>
</AUTHOR>
<othercredit role="translator">
	<firstname>ÁÖ¼º</firstname>
		<surname>¼Û</surname>
     <affiliation>
        <address>
           <email>venal (at) hanmail.net</email>
        </address>
     </affiliation>
</othercredit>
<othercredit role="translator">
	<firstname>ÀºÀç</firstname>
		<surname>ÀÓ</surname>
     <affiliation>
        <address>
           <email>eunjea (at) kldp.org</email>
        </address>
     </affiliation>
</othercredit>

<PubDate>v1.10, 2002 4¿ù</PubDate>

<revhistory>
	<revision>
		<revnumber>v1.1</revnumber>
		<date>2002³â 4¿ù 24ÀÏ</date>
		<authorinitials>venal</authorinitials>
		<revremark>
		1.1 ¾÷µ¥ÀÌÆ®
		</revremark>
	</revision>
	<revision>
		<revnumber>v1.0</revnumber>
		<date>2002³â 2¿ù 1ÀÏ</date>
		<authorinitials>eunjea</authorinitials>
		<revremark>
		1.0 ¹ø¿ª
		</revremark>
	</revision>
</revhistory>

<Abstract>

<Para>
ÀÌ ¹®¼­´Â ¸®´ª½º¿¡¼­ ¹Ìµð(MIDI)¸¦ »ç¿ëÇÏ´Âµ¥ ÇÊ¿äÇÑ ¼ÒÇÁÆ®¿þ¾î¿Í ÇÏµå¿þ¾î, ±×¸®°í ±× ÀýÂ÷µî¿¡ ´ëÇØ¼­ ¼³¸íÇÏ¿´½À´Ï´Ù.
</Para>

</Abstract>

</articleinfo>

<Sect1>
<Title>¼Ò°³</Title>

<Para>
ÀÌ ¹®¼­´Â ´ÙÀ½ÀÇ ³»¿ëÀ» °¡Áö°í ÀÖ´Ù:

<ItemizedList>
<ListItem>

<Para>
¹Ìµð ÀÎÅÍÆäÀÌ½º ¼³Á¤
</Para>
</ListItem>
<ListItem>

<Para>
¹Ìµð ÆÄÀÏ ¿¬ÁÖ
</Para>
</ListItem>
<ListItem>

<Para>
½ÃÄö½Ì (Sequencing)
</Para>
</ListItem>
<ListItem>

<Para>
¿ÜºÎ ¹Ìµð Àåºñ Á¶ÀÛ
</Para>
</ListItem>
<ListItem>

<Para>
¼ÒÇÁÆ®¿þ¾î »ç¿îµå ½Åµð»çÀÌÀú¿Í ¹Ìµð
</Para>
</ListItem>
<ListItem>

<Para>
¹Ìµð ¼ÀÇÃ ÄÚµå
</Para>
</ListItem>

</ItemizedList>

</Para>


<Sect2>
<Title>¹®¼­ÀÇ ¸ñÇ¥</Title>

<Para>
ÀÌ ¹®¼­ÀÇ ÃÊÁ¡Àº ¹Ìµð ÀÎÅÍÆäÀÌ½º¸¦ »ç¿ëÇÑ ¿ÜºÎ ¹Ìµð ±â±âÀÇ »ç¿ëÀÌ´Ù.
</Para>

</Sect2>

</Sect1>

<Sect1>
<Title>¹®¼­ÀÇ ÀúÀÛ±Ç</Title>

<Para>
This HOWTO is copyrighted 2002 Phil Kerr. 
</Para>

<Para>
This document is distributed under the terms of the GNU Free Documentation License. You should have received a copy along with it. If not, it is available from: 
</Para>

<para>
ÀÌ ¹®¼­ÀÇ ÀúÀÛ±ÇÀº GNU ÀÚÀ¯ ¹®¼­ GNU Free Documentation License¸¦ µû¸¥´Ù.
</para>

<Para>
<ULink URL="http://www.fsf.org/licenses/fdl.html">http://www.fsf.org/licenses/fdl.html</ULink>. 
</Para>

</Sect1>

<Sect1>
<Title>ÃÖ½Å ¹®¼­</Title>

<Para>
ÀÌ ¹®¼­ÀÇ °ø½Ä ¹öÀüÀº Linux Documentation Project &lt;<ULink URL="http://www.linuxdoc.org/">http://www.linuxdoc.org/</Ulink>&gt;¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù.
</Para>

<Para>
°¡Àå ÃÖ½ÅÀÇ ¹®¼­´Â &lt;<ULink URL="http://www.midi-howto.com">http://www.midi-howto.com</ULink>&gt;¿¡ ÀÖ´Ù.
</Para>

<Para>
ÀÌ ¹®¼­ÀÇ ¸¶Áö¸· ¹ø¿ªº»Àº &lt;<Ulink URL="http://kldp.org/~eunjea/">http://kldp.org/~eunjea/</Ulink>&gt;¿¡ ÀÖ´Ù.
</Para>

</Sect1>

<Sect1>
<Title>°¨»çÀÇ ±Û</Title>

<Para>
ÀÌ HOWTO´Â Hideki Saito°¡ ¾´ MIDI-SB mini-HOWTO¸¦ ±âÃÊ·Î ÇÏ¿´´Ù. 
¹®¼­¸¦ ¸®´ª½º Ä¿¹Â´ÏÆ¼¿¡ °ø°³ÇÑ ±×¿¡°Ô °¨»çµå¸°´Ù.
</Para>

<Para>
ÀÌ ¹®¼­¿¡ Æ÷ÇÔµÈ ¼ÀÇÃ ÄÚµåµéÀº Linux Audio Developers (LAD) ¸ÞÀÏ¸µ ¸®½ºÆ®¿¡ ±âÃÊÇÏ¿´´Ù.
¼Ò½º¸¦ »ç¿ëÇÏ°Ô ÇØ ÁØ ±×µé¿¡°Ô °¨»çµå¸°´Ù.
</Para>

</Sect1>

<Sect1>
<Title>Ã¥ÀÓÀÇ ÇÑ°è</Title>

<Para>
ÀÌ ¹®¼­ÀÇ Á¤º¸¸¦ ÀÌ¿ëÇÔÀ¸·Î½á »ý±æ ¼ö ÀÖ´Â À§ÇèÀº ¿©·¯ºÐ ½º½º·Î°¡ Ã¥ÀÓÁ®¾ß ÇÑ´Ù.
</Para>

<Para>
º» ÀúÀÚ´Â ¹®¼­ÀÇ ³»¿ëÀÌ ¾ß±âÇÒ ¼ö ÀÖ´Â ¾î¶°ÇÑ °á°ú¿¡ ´ëÇØ¼­µµ Ã¥ÀÓÀ» ÁöÁö ¾Ê´Â´Ù.
</Para>

<Para>
ÀÌ ¹®¼­ÀÇ °³³ä, ¿¹Á¦, Á¤º¸µéÀ» ÀÌ¿ëÇÔÀ¸·Î½á »ý±â´Â À§ÇèÀº ÀüÀûÀ¸·Î ¿©·¯ºÐ ÀÚ½ÅÀÌ Ã¥ÀÓ Á®¾ß ÇÑ´Ù.
</Para>

<Para>
Æ¯º°È÷ ¸í½ÃÇÏÁö ¾ÊÀº ÀÌ»ó ¸ðµç ÀúÀÛ±ÇÀº ±×°ÍÀÇ ¼ÒÀ¯ÀÚ°¡ °¡Áö°í ÀÖ´Ù.
</Para>

<Para>
ÀÌ ¹®¼­¿¡¼­ »ç¿ëÇÑ ¿ë¾î´Â »óÇ¥±Ç¿¡ ´ëÇÑ Æ¯º°ÇÑ Çã°¡¸¦ ¹ÞÁö ¾Ê¾Ò´Ù.
</Para>

<Para>
´Ü¼øÈ÷ »óÇ°ÀÌ³ª »óÇ¥ÀÇ ÀÌ¸§À» ºÎ¸£±â À§ÇØ »ç¿ëÇÒ ¶§´Â ½ÂÀÎÀ» ¹ÞÀ» ÇÊ¿ä°¡ ¾øÀ» °Í °°¾Æ¼­ÀÌ´Ù.
</Para>

<Para>
½Ã½ºÅÛ¿¡ ¼³Ä¡ ÇÏ±â Àü¿¡, ±×¸®°í ÀûÀýÇÑ °£°ÝÀ¸·Î ½Ã½ºÅÛÀ» ¹é¾÷ÇÒ °ÍÀ» °­·ÂÈ÷ ±ÇÇÏ´Â ¹ÙÀÌ´Ù.
</Para>

</Sect1>

<Sect1>
<Title>¹ÌµðÀÇ ¹è°æ(±âÃÊ)</Title>

<Para>
¹Ìµð´Â ÇÏµå¿þ¾î¿Í ¼ÒÇÁÆ®¿þ¾îÀÇ ÇÁ·ÎÅäÄÝ·Î ÀüÀÚ ¾Ç±âÀÇ Åë½Å¿¡ »ç¿ëµÈ´Ù.
1982³â°æ¿¡ Ã¹¹øÂ° ¸±¸®Áî°¡ ÀÖ¾úÀ¸¸ç, »ç½Ç»ó ÀüÀÚ ¾Ç±âÀÇ Ç¥ÁØÀÌ µÇ¾ú´Ù.
ÀÌ ÇÁ·ÎÅäÄÝÀº ÄÉÀÌºí°ú ¾Ç±â¸¦ À§ÇÑ ¹°¸®ÀûÀÎ ÇÏµå¿þ¾î º¯¼ö¸¦ Á¤ÀÇÇÏ°í, À½¾Ç, Å¸ÀÌ¹Ö Á¤º¸ µ¥ÀÌÅÍ¸¦ ±³È¯ÇÏ´Â Åë½Å ÇÁ·ÎÅäÄÝµéÀ» Á¦°øÇÑ´Ù.
</Para>

<Para>
¹Ìµð ÀÌÀü¿¡´Â ¾Æ³¯·Î±×(ÈÄ¿¡´Â ±âÃÊÀûÀÎ µðÁöÅÐ ¹æ½Ä) Åë½Å ÇÁ·ÎÅäÄÝÀÌ »ç¿ëµÇ¾ú´Ù. 
1974³â ÀÌÀü¿¡´Â Àü¼±À» ÅëÇÑ Àü±âÀûÀÎ ½ÅÈ£·Î °Ç¹ÝµéÀ» ¿¬°áÇß´Ù. 
1980 - 1981³â ÀÌÈÄ, ·Ñ·£µå°¡ DCB¶ó´Â ±âº» µðÁöÅÐ ÇÁ·ÎÅäÄÝÀ» ¸¸µé¾ú´Ù.
MIDI Manufacturers Association (MMA)ÀÌ Ç¥ÁØ ÇÁ·ÎÅäÄÝ°ú ¹°¸®ÀûÀÎ ¿¬°áÀ» Á¤ÀÇÇÔÀ¸·Î½á ±ÔÁ¤¿¡ µû¸£´Â ¸ðµç ¹Ìµð ±â±âµéÀÇ ¿¬°áÀÌ °¡´ÉÇÏ°Ô µÇ¾ú´Ù.
</Para>

<Para>
1985³â°æ ºÎÅÍ ¹Ìµð ÀÎÅÍÆäÀÌ½º°¡ °¡Á¤¿ë ÄÄÇ»ÅÍ¿ëÀ¸·Î ³ª¿Ô°í °ð ½ÃÄö½Ì ÇÁ·Î±×·¥µéµµ µîÀåÇß´Ù.
</Para>

</Sect1>

<Sect1>
<Title>¹Ìµð ÀåÄ¡ ¼³Á¤</Title>

<Para>
¹Ìµð ÀåÄ¡´Â »ç¿îµå Ä«µå¿¡ Æ÷ÇÔµÇ°Å³ª º°µµÀÇ ÀåÄ¡·Î Á¸ÀçÇÑ´Ù. ¿ÜºÎ ¹Ìµð ÀÎÅÍÆäÀÌ½º´Â ½Ã¸®¾ó Æ÷Æ®³ª USB Æ÷Æ®¿¡ ¿¬°áµÇ±âµµ ÇÑ´Ù.
</Para>

<Para>
Ã¹¹øÂ° °¡Àå Áß¿äÇÑ°ÍÀº ´ç½ÅÀÇ Ä«µå°¡ Áö¿øµÇ´Â °ÍÀÎÁö È®ÀÎÇÏ´Â °ÍÀÌ´Ù!
</Para>

<Para>
<ULink URL="http://www.alsa-project.org/soundcards.php3">http://www.alsa-project.org/soundcards.php3</ULink>
</Para>

<Para>
<ULink URL="http://www.4front-tech.com/osshw.html">http://www.4front-tech.com/osshw.html</ULink>
</Para>

<Para>
¸®´ª½º ¹èÆ÷º»ÀÇ ¼³Á¤À» º¯°æÇÏ¿© ¹Ìµð ÀåÄ¡µéÀ» ¼³Ä¡ÇÑ´Ù.
°£´ÜÇÏ°Ô, ¸®´ª½º¸¦ Àß Áö¿øÇÏ´Â Ä«µåµéÀº OS¸¦ ¼³Ä¡ÇÒ ¶§ ¼³Á¤ÀÌ µÉ °ÍÀÌ´Ù.
</Para>

<Para>
¸®´ª½º Ä¿³ÎÀº OSS µå¶óÀÌ¹ö¿Í 2.5 ¹öÀü¿¡¼­´Â ALSA µå¶óÀÌ¹ö¸¦ °¡Áö°í ÀÖ´Ù.
´ëºÎºÐÀÇ ¹èÆ÷º»µéÀº »ç¿îµå Ä«µå ¼³Á¤À» À§ÇÑ ÅøÀ» Á¦°øÇÏ´Âµ¥, »ç¿îµå Ä«µåÀÇ ¹Ìµð Æ÷Æ®¸¦ »ç¿ëÇÑ´Ù¸é ÀÌ°Íµµ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.
·¹µåÇòÀº sndconfig, ¼ö¼¼´Â yast, ¸Çµå·¹ÀÌÅ©´Â DrakConf¸¦ »ç¿ëÇÑ´Ù.
</Para>

<Para>
¸¸¾à ÀÌ·± ÅøµéÀÌ ¹Ìµð ÀÎÅÍÆäÀÌ½º¸¦ ¼³Á¤ÇÒ ¼ö ¾ø°Å³ª ¹®Á¦°¡ ÀÖ´Ù¸é ´ÙÀ½ ´Ü°è¸¦ µû¸¥´Ù:
</Para>

<Para>
lsmodÀÇ Ãâ·Â °á°ú°¡ ¹Ìµð °ü·Ã ¸ðµâÀ» Æ÷ÇÔÇÏ°í ÀÖ´Â°¡? ´ÙÀ½Àº OSS ±â¹Ý ½Ã½ºÅÛ¿¡¼­ÀÇ ÀüÇüÀûÀÎ Ãâ·Â ¿¹ÀÌ´Ù.

<ProgramListing>
[root@beatbox]# lsmod
Module                  Size  Used by
lockd                  32208   1  (autoclean)
sunrpc                 54640   1  (autoclean) [lockd]
autofs                  9456   2  (autoclean)
usb-ohci               12624   0  (unused)
usbcore                43632   1  [usb-ohci]
hisax                 470096   0  (autoclean) (unused)
isdn                  104208   0  (autoclean) [hisax]
slhc                    4544   0  (autoclean) [isdn]
eepro100               16144   1  (autoclean)

#---- »ç¿îµå Ä«µå °ü·Ã ¸ðµâ
    opl3                   11376   2 
    mad16                   7968   1 
    ad1848                 16848   1  [mad16]
    sb                     34752   1  [mad16]
    uart401                 6384   1  [mad16 sb]
    sound                  58368   0  [opl3 mad16 ad1848 sb uart401]

soundlow                 464   0  [sound]
soundcore               2800   6  [sb sound]
nls_cp437               3952   2  (autoclean)
vfat                    9408   1  (autoclean)
fat                    30432   1  (autoclean) [vfat]
ide-scsi                7664   0 
</ProgramListing>

</Para>

<Para>
mpu401, olp3, uart401, oss¸¦ º¸¶ó.
</Para>

<Para>
USB ÀåÄ¡¸¦ »ç¿ëÇÏ°í ÀÖ´Ù¸é USB ¸ðµâÀ» È®ÀÎÇÏ´Â °ÍÀ» ÀØÁö ¸»¶ó.
</Para>

<Para>
sndstat ÆÄÀÏÀ» È®ÀÎÇØ º»´Ù:
</Para>

<Para>

<ProgramListing>
[root@beatbox]# cat /dev/sndstat 
OSS/Free:3.8s2++-971130
Load type: Driver loaded as a module
Kernel: Linux mega 2.2.17-21mdk #1 Thu Oct 5 13:16:08 CEST 2000 i686
Config options: 0

Installed drivers: 

Card config: 

Audio devices:
0: MAD16 WSS (82C930) (DUPLEX)

Synth devices:
0: Yamaha OPL3

Midi devices:
0: Mad16/Mozart

Timers:
0: System clock

Mixers:
0: MAD16 WSS (82C930)
</ProgramListing>

</Para>

<Para>
¿©±â¼­ mad16ÀÌ ¹Ìµð ÀåÄ¡¶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ¸¸ç ÀÌ°ÍÀº À§ÀÇ lsmod Ãâ·Â¿¡¼­µµ º¼ ¼ö ÀÖ¾ú´Ù.
</Para>

<Para>
¸¸¾à ¹Ìµð¿Í °ü·ÃµÈ °ÍÀÌ ¾Æ¹«°Íµµ Ãâ·ÂµÇÁö ¾Ê´Â´Ù¸é /etc/modules.conf ÆÄÀÏÀ» È®ÀÎÇØº»´Ù.
</Para>

<Para>

<ProgramListing>
[root@beatbox]# cat /etc/modules.conf
alias net-pf-4 ipx 
pre-install pcmcia_core /etc/rc.d/init.d/pcmcia start 
alias usb-interface usb-ohci 
alias parport_lowlevel parport_pc 
alias block-major-11 scsi_hostadapter 
pre-install plip modprobe parport_pc ; echo 7 &#62; /proc/parport/0/irq 
alias scsi_hostadapter ide-scsi 
alias eth0 eepro100 
alias eth1 hisax 

#---- »ç¿îµå Ä«µå
    alias sound-slot-0 mad16 
    options sound dmabuf=1 
    alias midi opl3 
    options opl3 io=0x388 
    options sb support=1 
    options mad16 io=0x530 irq=5 dma=0 dma16=1 mpu_io=0x300 mpu_irq=7 joystick=1
</ProgramListing>

</Para>

<Para>
´ÙÀ½Àº ¹Ìµð ¸ðµâÀÌ ·ÎµåµÇ¾úÀ»¶§ /proc/modules À» È®ÀÎÇÑ °á°úÀÌ´Ù.
</Para>

<Para>

<ProgramListing>
[root@mega /proc]# cat modules
0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0070-007f : rtc
0080-008f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : ide1
01f0-01f7 : ide0
02f8-02ff : serial(auto)

#---- ¹Ìµð ÀåÄ¡
    0300-0303 : MPU-401 UART

0376-0376 : ide1
0388-038b : Yamaha OPL3
03c0-03df : vga+
03f6-03f6 : ide0
03f8-03ff : serial(auto)
0530-0533 : MAD16 WSS config
0534-0537 : MAD16 WSS
de00-de1f : Intel Speedo3 Ethernet
f000-f007 : ide0
f008-f00f : ide1
</ProgramListing>
 
</Para>

<Para>
À§¿Í ºñ½ÁÇÑ °á°ú°¡ È®ÀÎµÇ¾î¾ß ÇÑ´Ù. ±×·¸Áö ¾Ê´Ù¸é ¹Ìµð µå¶óÀÌ¹ö¸¦ ¼³Ä¡ÇØ¾ßÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.
</Para>

<Para>
¸¸¾à ALSA 0.5x µå¶óÀÌ¹ö¸¦ »ç¿ëÇÒ °Í ÀÌ¶ó¸é Valentijn Sessink°¡ ¾´ Alsa-sound-mini-HOWTO ¹®¼­¸¦ Âü°íÇÑ´Ù:
</Para>

<Para>
<ULink URL="http://www.linuxdoc.org/HOWTO/mini/Alsa-sound.html">http://www.linuxdoc.org/HOWTO/mini/Alsa-sound.html</ULink>
</Para>

<Para>
ALSA µå¶óÀÌ¹ö 0.9x ÀÌÈÄ ¹öÀüÀº Madhu MaddyÀÇ ALSA-HOWTO ¹®¼­¸¦ ÀÐ¾îº¸¶ó.
</Para>

<Para>
<ULink URL="http://www.alsa-project.org/alsa-doc/alsa-howto/">http://www.alsa-project.org/alsa-doc/alsa-howto/</ULink>
</Para>

<Sect2>
<Title>ALSA 0.9 ºü¸¥ ¼³Ä¡</Title>

<Para>
¾Æ·¡´Â ALSA 0.9 µå¶óÀÌ¹ö¿Í ´ëºÎºÐÀÇ ¹Ìµð ÇÁ·Î±×·¥ÀÇ ¼³Ä¡¸¦ À§ÇØ ÇÊ¿äÇÑ ¶óÀÌºê·¯¸®µéÀ» ¼³Ä¡ÇÏ±â À§ÇÑ ¿¹½ÃÀÌ´Ù.
</Para>

<Para>

<ProgramListing>
[root@beatbox] # tar jxvf alsa-driver....tar.bz2
[root@beatbox] # cd alsa-driver.....
[root@beatbox] # ./configure

messages - no errors

[root@beatbox] # make

messages - no errors

[root@beatbox] # make install

messages - no errors

[root@beatbox] # ./snddevices

</ProgramListing>

</Para>

<Para>
ÀÌÁ¦ /etc/modules.conf ÆÄÀÏÀ» ÆíÁýÇÏ´Âµ¥, ´Ù¸¥ ¹èÆ÷º»¿¡¼­´Â ´Ù¸¥ µð·ºÅä¸®¿¡ ÀÖÀ» ¼ö ÀÖ´Â ALSA ÆÄÀÏÀ» ÆíÁýÇÑ´Ù.
ÆÄÀÏ¿¡´Â ¹Ìµð°¡ ¾Æ´Ñ ´Ù¸¥ ÀåÄ¡µéÀ» À§ÇÑ Á¤º¸µéµµ ÀÖÀ¸´Ï ÁÖÀÇÇØ¼­ ´Ù·ç±â ¹Ù¶õ´Ù.
</Para>

<Para>
ÀÏ¹ÝÀûÀ¸·Î ¼³Á¤ ÆÄÀÏ¿¡´Â ALSA³ª OSS¸¦ À§ÇÑ ¿¹Àü ¼³Á¤µéÀÌ ÀûÇô ÀÖÀ» °ÍÀÌ¹Ç·Î, Áö¿ìµçÁö Ä¿¸ÇÆ® Ã³¸®¸¦ ÇÏµçÁö ÇØ¾ß ÇÑ´Ù.
</Para>

<Para>
¾Æ·¡´Â OSS ±â¹ÝÀÇ ALSA ¼³Á¤À» À§ÇÑ ÀüÇüÀûÀÎ modules.conf ÆÄÀÏÀÌ´Ù.
</Para>

<Para>

<ProgramListing>
alias char-major-116 snd
alias char-major-14 soundcore

alias snd-card-0 (MIDI/Sound card)
alias sound-slot-0 snd-card-0

alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-12 snd-pcm-oss
</ProgramListing>

</Para>

<Para>
(MIDI/Sound card) ºÎºÐ¿¡ ÀûÇÕÇÑ Ä«µå ÀÌ¸§À» Àû´Â´Ù. ÀÌ Á¤º¸´Â ALSA À¥»çÀÌÆ®¿¡¼­ Ã£À» ¼ö ÀÖ´Ù.
</Para>

<Para>
ÀÌÁ¦ ALSA ±â¹Ý ÇÁ·Î±×·¥µéÀ» ÀÌ¿ëÇÏ±â À§ÇÑ ¶óÀÌºê·¯¸® ÆÄÀÏµéÀ» ¼³Ä¡ÇØ¾ßÇÑ´Ù. ÀÌ ÆÄÀÏµéÀº alsa-libs ÆÐÅ°Áö¿¡ ÀÖ´Ù.
</Para>

<Para>
alsa-drivers ¿Í alsa-libs ÀÇ ½ÖÀ¸·Î ¸ÅÄ¡µÇ´Â °ÍÀ» È®ÀÎÇÏ¶ó!
</Para>

<Para>

<ProgramListing>
[root@beatbox] # tar jxvf alsa-libs....tar.bz2
[root@beatbox] # cd alsa-libs.....
[root@beatbox] # ./configure

messages - no errors

[root@beatbox] # make

messages - no errors

[root@beatbox] # make install

</ProgramListing>
 
</Para>

<Para>
ÀÌÁ¦ ¼³Á¤ÀÌ ³¡³µ´Ù :)
</Para>

<Para>
°£´ÜÇÑ C ÇÁ·Î±×·¥À¸·Î Ã¼Å©ÇØ º¼ ¼ö ÀÖ´Ù. ÀÌ ÇÁ·Î±×·¥ÀÌ ÄÄÆÄÀÏµÇ°í ½ÇÇàµÇ¸é ½Ã½ºÅÛ ¼³Á¤ÀÌ Á¦´ë·Î µÈ °ÍÀÌ´Ù.
</Para>

<Para>

<ProgramListing>
// ÀÌ·¸°Ô ÄÄÆÄÀÏÇÏ¶ó: gcc alsatest.c -o alsatest -lasound

#include &#60;stdio.h&#62;
#include &#60;alsa/asoundlib.h&#62;

int main (int argc, char *argv[])
{
  snd_seq_t *seq_handle;

  if (snd_seq_open(&amp;seq_handle, "hw", SND_SEQ_OPEN_DUPLEX, 0) &#60; 0) {
    fprintf(stderr, "Error opening ALSA sequencer.\n");
    exit(1);
  }

printf("The ALSA libraries are installed.\n");
return 0;
}


</ProgramListing>

</Para>

</Sect2>

<Sect2>
<Title>Áö¿¬(Latency)</Title>

<Para>
¹Ìµð´Â ½Ç½Ã°£ ÇÁ·ÎÅäÄÝ·Î latency´Â ½É°¢ÇÑ ¹®Á¦°¡ µÉ ¼ö ÀÖ´Ù.
</Para>

<Para>
ÇöÀç ¸î¸î °³¹ßÀÚµéÀÌ ÀÌ°Í°ú °ü·ÃµÇ¾î ¸®´ª½º°¡ ¹Ìµð ÇÃ·§ÆûÀ¸·Î »ç¿ëÇÏ±â ÀûÇÕÇÏµµ·Ï Ä¿³Î ÇØÅ·À» ÇÏ°í ÀÖ´Ù.
</Para>

<Para>
±âÁ¸ÀÇ ¸®´ª½º Ä¿³Îµµ º° ¹«¸®¾øÀÌ »ç¿ë°¡´É ÇÏÁö¸¸ low-latency ÆÐÄ¡¸¦ Àû¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â ´ÙÀ½ ¸µÅ©¿¡¼­ Ã£À» ¼ö ÀÖ´Ù:
</Para>

<Para>
<ULink URL="http://www.gardena.net/benno/linux/audio/">http://www.gardena.net/benno/linux/audio/</ULink>
</Para>

</Sect2>

</Sect1>

<Sect1>
<Title>¼ÒÇÁÆ®¿þ¾î</Title>

<Para>
¸®´ª½º »ó¿¡¼­ ¹Ìµð¿¡ ´ëÇÑ °ü½ÉÀÌ ³ô¾ÆÁ® °¨¿¡ µû¶ó ¸¹Àº ¼ÒÇÁÆ®¿þ¾îµéÀÌ °³¹ßµÇ°í ÀÖÀ¸¹Ç·Î, ¿©±â¿¡¼­ ¸ðµç ¹Ìµð ¼ÒÇÁÆ®¿þ¾î¸¦ ´Ù·çÁö´Â ¸øÇÒ °ÍÀÌ´Ù. ÇÏÁö¸¸, ÀûÇÕÇÑ ¾îÇÃ¸®ÄÉÀÌ¼ÇÀ» °í¸£´Âµ¥ µµ¿òÀÌ µÉ°Í ÀÌ´Ù.
</Para>

<Para>
¸¸¾à ¿©±â¿¡ ³ª¿­µÇÁö ¾ÊÀº ¹Ìµð ¾îÇÃ¸®ÄÉÀÌ¼ÇÀ» °³¹ßÁßÀÌ°Å³ª ¾Ë°í ÀÖ´Ù¸é ÀúÀÚ¿¡°Ô ¾Ë·Á ÁÖ±â ¹Ù¶õ´Ù.
</Para>

<Sect2>
<Title>µå¶óÀÌ¹ö</Title>

<Sect3>
<Title>Alsa µå¶óÀÌ¹ö</Title>

<Para>
Alsa (Advanced Linux Sound Architecture)´Â ¸î°¡Áö ºÎºÐÀ¸·Î ±¸¼ºµÇ¾î ÀÖ´Ù.
±× Ã¹¹øÂ°´Â ¿ÏÀüÈ÷ ¸ðµâÈ­µÈ »ç¿îµå µå¶óÀÌ¹ö·Î ¸ðµâÀÇ ÀÚµ¿ ·Îµù, devfs, isapnp ¼³Á¤°ú ¾Æ³¯·Î±×/µðÁöÅÐ ¿Àµð¿À Á¢±Ù, ¹Í¼­, ½Åµð»çÀÌÀú, DSP, MIDI ¿Í ¿Àµð¿À ÇÏµå¿þ¾îÀÇ Å¸ÀÌ¹Ö ÄÜÆ®·Ñ·¯µîÀÌ´Ù. ¶ÇÇÑ ÀÌ°ÍÀº Ä¿³Î ¼öÁØÀÇ ½ÃÄö¼­¸¦ Æ÷ÇÔÇÏ°í ÀÖÀ¸¸ç, OSS/Free ¾îÇÃ¸®ÄÉÀÌ¼Ç°ú È£È¯µÇ°í, ¾îÇÃ¸®ÄÉÀÌ¼Ç (Å¬¶óÀÌ¾ðÆ®/¼­¹ö, ÇÃ·¯±×ÀÎ, PCM °øÀ¯/¸ÖÆ¼ ÇÃ·¢½Ì, PCM meteringµî)À» °´Ã¼ÁöÇâ C ¶óÀÌºê·¯¸®¿Í ALSA Ä¿³Î µå¶óÀÌ¹öÀÇ ±â´Éµé·Î Áö¿øÇÑ´Ù.
</Para>

<Para>
<ULink URL="http://www.alsa-project.org/">http://www.alsa-project.org/</ULink>
</Para>

</Sect3>

<Sect3>
<Title>OSS</Title>

<Para>
OSS »ç¿îµå Ä«µå µå¶óÀÌ¹ö´Â ´ëºÎºÐÀÇ À¯¸íÇÑ »ç¿îµå Ä«µå¸¦ ¸®´ª½º¿Í FreeBSD¿¡¼­ Áö¿øÇÑ´Ù. ÀÌ µå¶óÀÌ¹ö´Â µðÁöÅÐ ¿Àµð¿À, ¹Ìµð, ½Åµð»çÀÌÀú, ¹Í¼­µéÀ» Æ÷ÇÔÇÏ°í ÀÖÀ¸¸ç, Open Sound System API¸¦ µû¸¥´Ù. OSS´Â »ç¿ëÀÚ ÆíÀÇÀÇ GUI¸¦ Á¦°øÇÏ¿© Æí¸®ÇÏ°Ô ¼³Ä¡¿Í ¼³Á¤À» ÇÒ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº 200 °¡Áö ÀÌ»óÀÇ »ç¿îµå Ä«µå¸¦ Áö¿øÇÏ°í ÀÚµ¿À¸·Î ÀÎ½ÄÇÑ´Ù. ¶ÇÇÑ Plug-n-Play¸¦ Áö¿øÇÏ°í PCI »ç¿îµå Ä«µå¿Í full duplex ¿Àµð¿À¸¦ Áö¿øÇÑ´Ù.
</Para>

<Para>
<ULink URL="http://www.opensound.com/">http://www.opensound.com/</ULink>
</Para>

</Sect3>

<Sect3>
<Title>Notemidi</Title>

<Para>
Notemidi´Â ³ëÆ®ºÏ/·¦Å¾ ÄÄÇ»ÅÍÀÇ RS-232 ½Ã¸®¾ó Æ÷Æ®¸¦ »ç¿ëÇÑ ¹Ìµð Ãâ·Â µå¶óÀÌ¹öÀÌ´Ù. ³ëÆ®¹Ìµð´Â  MIDIator MS-124W, ·Î·£µå »ç¿îµå Äµ¹ö½º ¸ðµâ, ¾ß¸¶ÇÏ MU-x ½Ã¸®Áî »ç¿îµå ¸ðµâ°ú »ç¿ë ÇÒ ¼ö ÀÖ´Ù.
</Para>

<Para>
<ULink URL="http://www.michaelminn.com/linux/notemidi">http://www.michaelminn.com/linux/notemidi</ULink>
</Para>

</Sect3>

</Sect2>

<Sect2>
<Title>¹Ìµð ÆÄÀÏ ¿¬ÁÖ±â</Title>

<Sect3>
<Title>KMid</Title>

<Para>
KMid´Â ¸®´ª½º¿Í FreeBSD¸¦ À§ÇÑ X11 / KDE ±â¹ÝÀÇ ¹Ìµð ¿¬ÁÖ±âÀÌ´Ù. ÀÌ°ÍÀº °¡¶ó¿ÀÄÉ ÆÄÀÏÀÇ ÅØ½ºÆ®¸¦ Ç¥½ÃÇÏ°í »ö»óÀ» º¯È­½ÃÄÑ ½±°Ô µû¶ó ºÎ¸¦ ¼ö ÀÖ´Â ±â´Éµµ °¡Áö°í ÀÖ´Ù. KMid´Â /dev/sequencer¸¦ Ãâ·Â ÀåÄ¡·Î Áö¿øÇÏ¿© ½Åµð, AWE, FM, GUS Ä«µå¸¦ Áö¿øÇÑ´Ù.
</Para>

<Para>
<ULink URL="http://perso.wanadoo.es/antlarr/kmid.html">http://perso.wanadoo.es/antlarr/kmid.html</ULink>
</Para>

</Sect3>

<Sect3>
<Title>Pmidi</Title>

<Para>
Pmidi´Â °£´ÜÇÑ ¸í·ÉÇà ÇÁ·Î±×·¥À¸·Î ALSA ½ÃÄö¼­¸¦ ÅëÇØ ¹Ìµð ÆÄÀÏÀ» ¿¬ÁÖÇÑ´Ù.
</Para>

<Para>
<ULink URL="http://www.parabola.demon.co.uk/alsa/pmidi.html">http://www.parabola.demon.co.uk/alsa/pmidi.html</ULink>
</Para>

</Sect3>

<Sect3>
<Title>TiMidity++</Title>

<Para>
TiMidity´Â ¹Ìµð - WAVE º¯È¯±â·Î, Gravis Ultrasound(*)-È£È¯ ÆÐÄ¡ ÆÄÀÏÀ» »ç¿ëÇÏ¿© ÀÏ¹ÝÀûÀÎ ¹Ìµð ÆÄÀÏÀ» µðÁöÅÐ ¿Àµð¿À µ¥ÀÌÅÍ·Î º¯È¯ÇØÁØ´Ù.
¿Àµð¿À µ¥ÀÌÅÍ´Â ¾î¶°ÇÑ ¼Ò¸® ÀåÄ¡¸¦ ÅëÇØ¼­µµ ¿¬ÁÖµÉ ¼ö ÀÖÀ¸¸ç, µð½ºÅ©¿¡ ÀúÀåÇÒ ¼öµµ ÀÖ´Ù. ºü¸¥ ÄÄÇ»ÅÍ¿¡¼­´Â ½Ç½Ã°£À¸·Î ¿¬ÁÖ°¡ °¡´ÉÇÏ´Ù.
</Para>

<Para>
<ULink URL="http://www.goice.co.jp/member/mo/timidity/">http://www.goice.co.jp/member/mo/timidity/</ULink>
</Para>

</Sect3>

</Sect2>

<Sect2>
<Title>Sequencers</Title>

<Sect3>
<Title>Brahms</Title>

<Para>
Brahms´Â ½ÃÄö¼­¿Í À½¾Ç ±âº¸ ÇÁ·Î±×·¥À¸·Î ¾Çº¸-, ÇÇ¾Æ³ë·Ñ-, µå·³-, ¸¶½ºÅÍ Æ®·¢ ÆíÁý±â µîÀÇ ÆíÁý ¸ðµå¸¦ Á¦°øÇÑ´Ù. ¹ÌµðÀÇ ¼ö/ÃâÀÔ ¶ÇÇÑ Áö¿øÇÏ¸ç aRts-0.3.4 ¿Í »ç¿ëÇÏ¿© ¿þÀÌºê ÆÄÀÏÀ» ¿¬ÁÖÇÏ°í ¼ÒÇÁÆ®¿þ¾î ½Åµð»çÀÌÀú·ÎÀÇ ¹Ìµð¹ö½º¸¦ »ç¿ëÇÑ ¹Ìµð ÀÌº¥Æ® Ãâ·Âµµ °¡´ÉÇÏ´Ù.
</Para>

<Para>
KooBase·Îµµ ¾Ë·ÁÁ® ÀÖ´Ù.
</Para>

<Para>
<ULink URL="http://brahms.sourceforge.net/">http://brahms.sourceforge.net/</ULink> 
</Para>

</Sect3>

<Sect3>
<Title>Anthem</Title>

<Para>
AnthemÀº Áøº¸ÀûÀÎ ¿ÀÇÂ ¼Ò½º ¹Ìµð ½ÃÄö¼­ÀÌ´Ù. AnthemÀº ¼¼·ÃµÇ°í °´Ã¼ ÁöÇâÀûÀÎ ³ë·¡ ±â¹ýÀ» »ç¿ëÇÑ ³ìÀ½, ÆíÁý, ¿¬ÁÖµîÀÌ °¡´ÉÇÏ´Ù.
</Para>

<Para>
<ULink URL="http://anthem.sourceforge.net/">http://anthem.sourceforge.net/</ULink>
</Para>

</Sect3>

<Sect3>
<Title>Jazz++</Title>

<Para>
JAZZ++´Â ¸®´ª½º¿Í À©µµ¿ì¸¦ À§ÇÑ ¹Ìµð ½ÃÄö¼­ÀÌ´Ù.
</Para>

<Para>
<ULink URL="http://www.jazzware.com/cgi-bin/Zope.cgi/jazzware/">http://www.jazzware.com/cgi-bin/Zope.cgi/jazzware/</ULink>
</Para>

</Sect3>

<Sect3>
<Title>Linux Ultimate Music Editor</Title>

<Para>
UltiMusE-LX (the Ultimate Music Editor)´Â ÀÛ°î ÇÁ·Î±×·¥À¸·Î ´ç½ÅÀÌ À½¾ÇÀ» ¾²´Âµ¥ »ç¿ëµÉ ¼ö ÀÖ´Ù. ´ç½ÅÀº ¸¶¿ì½º/Å°º¸µå·Î ¾Çº¸¸¦ ±×¸± ¼ö ÀÖÀ¸¸ç, ´ëºÎºÐÀÇ Ç¥ÁØ ±âº¸¹ýÀ» Áö¿øÇÏ°í, ¹Ìµð Àåºñ ÆÐÄ¡ º¯È¯, ÀÌº¥Æ®, ¸®¾óÅ¸ÀÓ Å¬·°µîÀ» Áö¿øÇÑ´Ù.
</Para>

<Para>
<ULink URL="http://hometown.aol.com/knudsenmj/myhomepage/umuselx.htm">http://hometown.aol.com/knudsenmj/myhomepage/umuselx.htm</ULink>
</Para>

</Sect3>

<Sect3>
<Title>Melys</Title>

<Para>
Melys´Â Advanced Linux Sound Architecture (ALSA)¸¦ À§ÇÑ ¹Ìµð ½ÃÄö¼­ ¾îÇÃ¸®ÄÉÀÌ¼ÇÀÌ´Ù. Melys´Â ALSAÀÇ ½ÃÄö¼­ Áö¿øÀ» »ç¿ëÇÏ¸ç GNOME È¯°æ¿¡¼­ ÀÛµ¿ÇÑ´Ù.
</Para>

<Para>
<ULink URL="http://www.parabola.demon.co.uk/melys/">http://www.parabola.demon.co.uk/melys/</ULink>
</Para>

</Sect3>

<Sect3>
<Title>MidiMountain Sequencer</Title>

<Para>
MidiMountainÀº Ç¥ÁØ ¹Ìµð ÆÄÀÏ ÆíÁý±âÀÌ´Ù. »ç¿ëÇÏ±â ½¬¿î ÀÎÅÍÆäÀÌ½º·Î ¹Ìµð ÆÄÀÏÀ» ÃÊº¸ÀÚµµ ½±°Ô ÆíÁýÇÏ°í ¸¸µé¼ö ÀÖÀ¸¸ç, ÇÇ¾Æ³ë ·Ñ¿¡¼­ ºÎÅÍ ¹ÙÀÌ³Ê¸® exclusive ¸Þ¼¼Áö±îÁö ¸ðµç Ç¥ÁØ ¹Ìµð ÇÁ·ÎÅäÄÝÀÇ ÆíÁýÀÌ °¡´ÉÇÏ´Ù.
</Para>

<Para>
<ULink URL="http://www.midimountain.com/">http://www.midimountain.com/</ULink>
</Para>

</Sect3>

<Sect3>
<Title>MusE</Title>

<Para>
MusE´Â Qt 2.1 ±â¹ÝÀÇ ¹Ìµð ½ÃÄö¼­·Î ³ìÀ½°ú ÆíÁýÀÌ °¡´ÉÇÏ´Ù. ½ÃÄö¼­°¡ ¿¬ÁÖÁß¿¡ ÀÌº¥Æ®¸¦ ÇÇ¾Æ³ë·Ñ°ú ¾Çº¸ ÆíÁý±â¿¡¼­ ½Ç½Ã°£À¸·Î ¼öÁ¤ÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù. ³ìÀ½µÈ ¹Ìµð ÀÌº¥Æ®´Â ±×·ì°ú ºÎºÐÀ¸·Î Æí°î ¼öÁ¤±â¿¡¼­ ´Ù·ê ¼ö ÀÖ´Ù.
</Para>

<Para>
<ULink URL="http://muse.seh.de/">http://muse.seh.de/</ULink>
</Para>

</Sect3>

<Sect3>
<Title>Rosegarden</Title>

<Para>
·ÎÁî°¡µçÀº ¹Ìµð ½ÃÄö¼­¿Í ¾Çº¸ ÆíÁý±âÀÌ´Ù.
</Para>

<Para>
<ULink URL="http://www.all-day-breakfast.com/rosegarden/">http://www.all-day-breakfast.com/rosegarden/</ULink>
</Para>

</Sect3>

</Sect2>

<Sect2>
<Title>MIDI Trackers</Title>

<Sect3>
<Title>tektracker</Title>

<Para>
ttrk (tektracker)´Â Æ®·¢Ä¿ÇüÀÇ ÆíÁý±â¸¦ °¡Áö°í ÀÖ´Â ÄÜ¼Ö¿ë ¹Ìµð ½ÃÄö¼­ÀÌ´Ù.
¹ÂÆ® ´ÜÃß¿Í ·çÇÁ Á¦¾î°¡ °¡´ÉÇÑ ¿¬ÁÖ±â¸¦ ³»ÀåÇÏ°í ÀÖ´Ù.
ttrk´Â ¹Ìµð Å¬·° ÆÞ½º¸¦ º¸³»´Â °Í°ú ½ÌÅ©°¡ °¡´ÉÇÏ´Ù.
</Para>

<Para>
<ULink URL="http://div8.net/ttrk/">http://div8.net/ttrk/</ULink>
</Para>

</Sect3>

<Sect3>
<Title>ShakeTracker</Title>

<Para>
ShakeTracker´Â Æ®·¢Ä¿ ÀÎÅÍÆäÀÌ½º¿Í ¿ÏÀüÇÑ ±â´ÉÀÇ ¹Ìµð ½ÃÄö¼­¸¦ ÁöÇâÇÑ´Ù.
ÀÌ°ÍÀº ´ëºÎºÐÀÇ Æ®·¢Ä¿ È¿°ú¸¦ Àß Áö¿øÇÏ¸ç Impulse Æ®·¢Ä¿¸¦ »ç¿ëÇÏ´ø »ç¿ëÀÚµéÀº ½±°Ô ÀûÀÀÇÒ °ÍÀÌ´Ù.
</Para>

<Para>
<ULink URL="http://reduz.com.ar/shaketracker/">http://reduz.com.ar/shaketracker/</ULink>
</Para>

</Sect3>

</Sect2>

<Sect2>
<Title>µå·³ ÆíÁý±â</Title>

<Sect3>
<Title>DrumPatterns</Title>

<Para>
µå·³ÆÐÅÏÀº ¿ÀÇÂ ¼Ò½º·Î À¥ ÁöÇâÀûÀÎ µå·³ ÆÐÅÏ »ý¼º±âÀÌ´Ù. ÀÌ°ÍÀº µå·³ ÆÐÅÏ°ú Áøº¸ÀûÀÎ ¸®µëÀÇ ±âÃÊµîÀ» °¡¸£Ä¡´Â ¸ñÀûÀ¸·Î »ç¿ëµÉ ¼ö ÀÖ´Ù.
¾Çº¸, ¹Ìµð·ÎÀÇ Ãâ·ÂÀÌ °¡´ÉÇÏ¸ç ¸î½Ã°£ ºÐ·®ÀÇ ¿¹Á¦¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù.
</Para>

<Para>
<ULink URL="http://www.linux-france.org/prj/drumpatterns/index-en.html">http://www.linux-france.org/prj/drumpatterns/index-en.html</ULink>
</Para>

</Sect3>

</Sect2>

<Sect2>
<Title>ÆÐÄ¡ ÆíÁý±â</Title>

<Sect3>
<Title>JSynthLib</Title>

<Para>
JSynthLib´Â ÀÚ¹Ù·Î ¾º¿©Áø ¿ÀÇÂ ¼Ò½º ½Åµð»çÀÌÀú ÆÐÄ¡ ÆíÁý±â / ¶óÀÌºê·¯¸®¾ÈÀÌ´Ù.
</Para>

</Sect3>

</Sect2>

<Sect2>
<Title>¼ÒÇÁÆ®¿þ¾î ½Åµð</Title>

<Para>
Spiral Synth´Â Æú¸®Æ÷´Ð ¾Æ³¯·Î±× ½Åµð»çÀÌÀú¸¦ ¸ðµ¨·Î ÇÏ¿©, ¾Æ³¯·Î±× ½Åµð»çÀÌÀúÀÇ ¼Ò¸®³ª ÀâÀ½À» ¸¸µé¾î ³¾ ¼ö ÀÖ´Ù. ¶ÇÇÑ ´ç½ÅÀº ÀÌ°ÍÀ» »ç¿ëÇÏ¿© ÀÌ»óÇÑ ¼Ò¸®¸¦ ¸¸µé¾î ³¾ ¼öµµ ÀÖ´Ù. ¹Ìµð¸¦ Áö¿øÇÏ°í Ç¥ÁØ OSS/Free ¼Ò¸® Ãâ·Â (/dev/dsp)¸¦ »ç¿ëÇÑ´Ù.
</Para>

<Para>
<ULink URL="http://www.pawfal.org/SpiralSynth/">http://www.pawfal.org/SpiralSynth/</ULink>
</Para>

<Sect3>
<Title>UltraMaster Juno-6</Title>

<Para>
UltraMaster Juno-6´Â Roland Juno-6 Æú¸®Æ÷´Ð ½Åµð»çÀÌÀú¸¦ ÀçÇöÇÑ ¼ÒÇÁÆ®¿þ¾îÀÌ´Ù.
80³â´ë ÃÊ ½ºÅ¸ÀÏÀÇ arpeggiator, ÄÚ·¯½º¸¦ ½Ç½Ã°£ 64ºñÆ® ³»Àå ULTRANALOG ¿þÀÌºê ÇÕ¼ºÀ½À¸·Î Áö¿øÇÏ¸ç, 100°³ ÀÌ»óÀÇ ÀÚ½Å¸¸ÀÇ ÆÐÄ¡¸¦ ÀúÀåÇÒ ¼ö ÀÖ´Ù.
¸ðµç º¯¼öµéÀº GUI¿Í ¿ÜºÎ ¹Ìµð ÄÜÆ®·Ñ·¯¸¦ ÅëÇØ ½Ç½Ã°£À¸·Î Á¶Àý °¡´ÉÇÏ´Ù.
</Para>

<Para>
<ULink URL="http://www.ultramaster.com/juno6/index.html">http://www.ultramaster.com/juno6/index.html</ULink>
</Para>

</Sect3>

</Sect2>

<Sect2>
<Title>ÇÃ·¯±×ÀÎ</Title>

<Sect3>
<Title>xmms-midi</Title>

<Para>
x11amp¸¦ À§ÇÑ ¹Ìµð ÆÄÀÏ Áö¿ø (timidity »ç¿ë). ¼³Á¤ ´Ùµð¾ó·Î±× Ã¢À» ÅëÇØ Çã¼úÇÑ ¹Í¼­ ÀÎÅÍÆäÀÌ½º°¡ Á¦°øµÈ´Ù.
</Para>

<Para>
<ULink URL="http://ban.joh.cam.ac.uk/~cr212/xmms-midi/">http://ban.joh.cam.ac.uk/~cr212/xmms-midi/</ULink>
</Para>

</Sect3>

</Sect2>

<Sect2>
<Title>°³¹ß</Title>

<Sect3>
<Title>sfront</Title>

<Para>
Sfont´Â ´É·üÀûÀÎ C ÇÁ·Î±×·¥À¸·Î MPEG 4 ±¸Á¶¸¦ °¡Áö´Â ¿Àµð¿À (MP4-SA) ºñÆ®½ºÆ®¸²À» Áö¿øÇÑ´Ù. MP4-SA´Â algorithmic »ç¿îµåÀÇ Ç¥ÁØÀ¸·Î ¿Àµð¿À ½Ã±×³Î ÇÁ·Î¼¼½Ì ¾ð¾î (SAOL)°ú ¾Çº¸ ¾ð¾î(SASL°ú ÀüÅëÀûÀÎ ¹Ìµð ÆÄÀÏ Æ÷¸Ë)·Î ÀÌ·ç¾îÁø´Ù. sfont´Â ¸®´ª½º »ó¿¡¼­ ½Ç½Ã°£, low-latency ¿Àµð¿À ÀÔ/Ãâ·Â, »ç¿îµå Ä«µå·Î ºÎÅÍ ·ÎÄÃ ¹Ìµð ÀÔ·Â°ú RTP ¿Í SIP¸¦ »ç¿ëÇÑ ³×Æ®¿öÅ©»óÀÇ ¹Ìµð ÀÔ·ÂÀ» Áö¿øÇÑ´Ù.
MP4-SA¿¡ °üÇÑ ¹®¼­¸¦ À¥ »çÀÌÆ®¿¡¼­ ÀÐÀ» ¼ö ÀÖ´Ù.
</Para>

<Para>
<ULink URL="http://www.cs.berkeley.edu/~lazzaro/sa/index.html">http://www.cs.berkeley.edu/~lazzaro/sa/index.html</ULink>
</Para>

</Sect3>

<Sect3>
<Title>jMax</Title>

<Para>
jMax´Â dataflow circuitÀ» µðÀÚÀÎÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù.
±âº» µ¥ÀÌÅÍ Çü½ÄÀº integers, symbols, listsµîÀÌ »ç¿ëµÉ ¼ö ÀÖÀ¸¸ç, ÀÌ°ÍÀº ÀÌº¥Æ®-µå¶óÀÌºì ½Ã½ºÅÛÀ¸·Î ¹Ìµð Ã³¸®¿¡ »ç¿ë µÈ´Ù.
µÎ¹øÂ° ½Ã½ºÅÛ ºÎºÐ(DSP)´Â circuitÀÇ ½Ã±×³Î Èå¸§À» Áö¼ÓÇÏ°Ô ÇØÁÖ¸ç, ÀÌ°ÍÀº PCM »ç¿îµå(¿¹: ¸¶ÀÌÅ©·ÎÆù, ¼Ò¸® ÆÄÀÏµî)¿¡¼­ ¸Å¿ì À¯¿ëÇÏ´Ù.
½Ã½ºÅÛÀº µ¿Àû ¶óÀÌºê·¯¸®¿¡ ÀÇÇØ È®ÀåÀÌ °¡´ÉÇÏ°í, ´ç½ÅÀº µ¥ÀÌÅÍ ÇÁ·Î¼¼¼­, µ¥ÀÌÅÍ Çü, GUI ¿ä¼Ò, µð¹ÙÀÌ½º Çü½ÄµîÀ» Ãß°¡ÇÒ ¼ö ÀÖ´Ù. µ¥ÀÌÅÍ ÇÁ·Î¼¼¼­´Â circuit¿¡ µû¶ó µðÀÚÀÎµÇ°í Àç »ç¿ëÇÒ ¼ö ÀÖ´Ù.
</Para>

<Para>
<ULink URL="http://www.ircam.fr/equipes/temps-reel/jmax/">http://www.ircam.fr/equipes/temps-reel/jmax/</ULink>
</Para>

</Sect3>

<Sect3>
<Title>TSE3</Title>

<Para>
TSE3´Â C++·Î ¾º¿©Áø °­·ÂÇÑ ¿ÀÇÂ ¼Ò½º ½ÃÄö¼­ ¿£ÁøÀÌ´Ù.
ÀÌ°ÍÀÌ '½ÃÄö¼­ ¿£Áø'ÀÎ ÀÌÀ¯´Â À¯Àú ÀÎÅÍÆäÀÌ½º°¡ ¾ø±â ¶§¹®ÀÌ´Ù. ½ÃÄö¼­ ¾îÇÃ¸®ÄÉÀÌ¼Ç ¶Ç´Â ¸ÖÆ¼¹Ìµð¾î ÆÐÅ°Áö´Â TSE3 ¶óÀÌºê·¯¸®¿Í ¿¬°áµÇ¾î »ç¿ëÀÚ¿¡°Ô ¹Ìµð ½ÃÄö½Ì ±â´ÉÀ» Á¦°øÇÒ ¼ö ÀÖ´Ù.
</Para>

<Para>
<ULink URL="http://TSE3.sourceforge.net/">http://TSE3.sourceforge.net/</ULink>
</Para>

</Sect3>

<Sect3>
<Title>KeyKit</Title>

<Para>
KeyKitÀº ´ÙÁß Ã³¸® ÇÁ·Î±×·¡¹Ö ¾ð¾î Ã³¸®±â (awk¿¡¼­ ¿µ°¨À» ¾òÀº)·Î ½Ç½Ã°£, algorithmic ¹Ìµð Á¶ÀÛ¿¡ ¾²ÀÏ ¼ö ÀÖ´Ù. KeyKitÀÇ GUI´Â ÀÌ·¯ÇÑ algorithmic À½¾Ç ½ÇÇèÀ» À§ÇÑ µµ±¸¸¦ Á¦°øÇÏ¸ç, ´ÙÁß Æ®·¢ ½ÃÄö¼­¿Í µå·³ ÆÐÅÏ ÆíÁý±â¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù.
GUI¿Í µµ±¸µéÀº ¸ðµÎ KeyKit ¾ð¾î ÀÚÃ¼·Î ¾º¿©Á® ÀÖ´Ù. ÀÌ°ÍÀº »ç¿ëÀÚ°¡ Á÷Á¢ »õ·Î¿î µµ±¸¸¦ Ãß°¡ ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» ÀÇ¹ÌÇÑ´Ù.
</Para>

<Para>
<ULink URL="http://nosuch.com/keykit/">http://nosuch.com/keykit/</ULink>
</Para>

</Sect3>

</Sect2>

</Sect1>

<Sect1>
<Title>¹Ìµð °³¹ß</Title>

<Para>
¹Ìµð ¾îÇÃ¸®ÄÉÀÌ¼Ç °³¹ßÀ» À§ÇØ¼± ÁÁÀº ¿¹Á¦µéÀÌ Á¾Á¾ ÇÊ¿äÇÏ´Ù.
For those looking to develop MIDI applications, good examples are often needed to get you started.
</Para>

<Para>
´ÙÀ½ÀÇ ¿¹Á¦µéÀº LAD ¸ÞÀÏ¸µ ¸®½ºÆ®¿¡ ¿¹Á¦³ª ¹®¼­/Âü°íÀÚ·á·Î Æ÷½ºÆÃ µÆ´ø °ÍµéÀÌ´Ù.
The following examples were posted to the LAD mailing list in a thread about 
examples and documentation/tutorials.
</Para>

<Para>
¾Æ·¡´Â Dr. Matthias NagorniÀÇ ALSA 0.9 ½ÃÄö¼­ Å¬¶óÀÌ¾ðÆ® ¼ÀÇÃÀÌ´Ù.
ÀÌ°ÍÀº ÀÔ·Â °¡´ÉÇÑ(writeable) ½ÃÄö¼­ Å¬¶óÀÌ¾ðÆ®¸¦ ¸¸µé°í,  Pitchbender-, 7-Bit Controller-, Note-event µéÀ» stderr¸¦ ÅëÇØ Ãâ·ÂÇÑ´Ù.
</Para>

<Para>
´õ ¸¹Àº ¿¹Á¦µéÀ» ÀÌ ¹®¼­ÀÇ ¸µÅ© ¼½¼Ç¿¡ ÀÖ´Â MatthiasÀÇ »çÀÌÆ®¸¦ ÅëÇØ ÀÔ¼öÇÒ ¼ö ÀÖ´Ù. 
</Para>

<Para>
´ÙÀ½°ú °°ÀÌ ÄÄÆÄÀÏÇÏ¶ó:
</Para>

<Para>

<ProgramListing>
[phil@beatbox] $ gcc seqdemo.c -o seqdemo -lasound


#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;unistd.h&gt;
#include &lt;alsa/asoundlib.h&gt;

snd_seq_t *open_seq();
void midi_action(snd_seq_t *seq_handle);

snd_seq_t *open_seq() {

  snd_seq_t *seq_handle;
  int portid;

  if (snd_seq_open(&amp;seq_handle, "hw", SND_SEQ_OPEN_DUPLEX, 0) &#60; 0) {
    fprintf(stderr, "Error opening ALSA sequencer.\n");
    exit(1);
  }
  snd_seq_set_client_name(seq_handle, "ALSA Sequencer Demo");
  if ((portid = snd_seq_create_simple_port(seq_handle, "ALSA Sequencer Demo",
            SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE,
            SND_SEQ_PORT_TYPE_APPLICATION)) &#60; 0) {
    fprintf(stderr, "Error creating sequencer port.\n");
    exit(1);
  }
  return(seq_handle);
}

void midi_action(snd_seq_t *seq_handle) {

  snd_seq_event_t *ev;

  do {
    snd_seq_event_input(seq_handle, &amp;ev);
    switch (ev-&#62;type) {
      case SND_SEQ_EVENT_CONTROLLER: 
        fprintf(stderr, "Control event on Channel %2d: %5d       \r",
                ev-&#62;data.control.channel, ev-&#62;data.control.value);
        break;
      case SND_SEQ_EVENT_PITCHBEND:
        fprintf(stderr, "Pitchbender event on Channel %2d: %5d   \r", 
                ev-&#62;data.control.channel, ev-&#62;data.control.value);
        break;
      case SND_SEQ_EVENT_NOTEON:
        fprintf(stderr, "Note On event on Channel %2d: %5d       \r",
                ev-&#62;data.control.channel, ev-&#62;data.note.note);
        break;        
      case SND_SEQ_EVENT_NOTEOFF: 
        fprintf(stderr, "Note Off event on Channel %2d: %5d      \r",         
                ev-&#62;data.control.channel, ev-&#62;data.note.note);           
        break;        
    }
    snd_seq_free_event(ev);
  } while (snd_seq_event_input_pending(seq_handle, 0) &#62; 0);
}

int main(int argc, char *argv[]) {

  snd_seq_t *seq_handle;
  int npfd;
  struct pollfd *pfd;
    
  seq_handle = open_seq();
  npfd = snd_seq_poll_descriptors_count(seq_handle, POLLIN);
  pfd = (struct pollfd *)alloca(npfd * sizeof(struct pollfd));
  snd_seq_poll_descriptors(seq_handle, pfd, npfd, POLLIN);
  while (1) {
    if (poll(pfd, npfd, 100000) &#62; 0) {
      midi_action(seq_handle);
    }  
  }
}

</ProgramListing>

</Para>

<Para>
¾Æ·¡´Â Nick Dowell °¡ ¸¸µç ALSA 0.9 MIDI ¸®´ÙÀÌ·ºÅÍ(redirector) ÀÌ´Ù.
</Para>

<Para>

<ProgramListing>
/* ALSA Sequencer MIDI redirector.
   ÀÎÇ²À» ¹Ìµð Ã¤³ÎÀ» ÅëÇØ ¼³Á¤µÈ ¾Æ¿ôÇ²À¸·Î ¸®´ÙÀÌ·ºÆ®ÇÑ´Ù.
   (Linux-Audio-Dev ¿¡¼­ Nathaniel Virgo ¿¡°Ô¼­ ¿äÃ»¹ÞÀº °ÍÀÓ ;-)
   Dr. Matthias Nagorni ÀÇ ALSA seq ¿¹Á¦¸¦ ±âÃÊ·Î ÇßÀ½
   
   Nick Dowell &#60;nixx@nixx.org.uk&#62;
   */

#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;unistd.h&gt;
#include &lt;alsa/asoundlib.h&gt;

int
main()
{
  snd_seq_t *seq_handle;
  snd_seq_event_t *ev;
  int i;
  int portid;              /* input port */
  int oportid[16];         /* output ports */
  int npfd;
  struct pollfd *pfd;
  char txt[20];

  if (snd_seq_open(&amp;seq_handle, "hw", SND_SEQ_OPEN_DUPLEX, 0) &#60; 0) {
    fprintf(stderr, "Error opening ALSA sequencer.\n");
    exit(1);
  }

  snd_seq_set_client_name(seq_handle, "MIDI Redirect");
  
  /* open one input port */
  if ((portid = snd_seq_create_simple_port
       (seq_handle, "Input",
        SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_SUBS_WRITE,
        SND_SEQ_PORT_TYPE_APPLICATION)) &#60; 0) {
    fprintf(stderr, "fatal error: could not open input port.\n");
    exit(1);
  }
  /* open 16 output ports for the MIDI channels */
  for (i=0; i&#60;16; i++){
    sprintf( txt, "MIDI Channel %d", i );
    if ((oportid[i] = snd_seq_create_simple_port
         (seq_handle, txt,
          SND_SEQ_PORT_CAP_READ | SND_SEQ_PORT_CAP_SUBS_READ,
          SND_SEQ_PORT_TYPE_APPLICATION)) &#60; 0) {
      fprintf(stderr, "fatal error: could not open output port.\n");
      exit(1);
    }
  }

  npfd = snd_seq_poll_descriptors_count(seq_handle, POLLIN);
  pfd = (struct pollfd *)alloca(npfd * sizeof(struct pollfd));
  snd_seq_poll_descriptors(seq_handle, pfd, npfd, POLLIN);

  while (1)  /* main loop */
    if (poll(pfd, npfd, 1000000) &#62; 0){
      do {
        snd_seq_event_input(seq_handle, &amp;ev);
        snd_seq_ev_set_source( ev, oportid[ev-&#62;data.control.channel] );
        snd_seq_ev_set_subs( ev );
        snd_seq_ev_set_direct( ev );
        snd_seq_event_output_direct( seq_handle, ev );
        snd_seq_free_event(ev);
      } while (snd_seq_event_input_pending(seq_handle, 0) &#62; 0);
    }
  return 0;
}

</ProgramListing>

</Para>

<Para>
¾Æ·¡´Â Craig Stuart SappÀÌ ÀÛ¼ºÇÑ, OSSÀÇ /dev/midi ÀÎÅÍÆäÀÌ½º¿¡ µ¥ÀÌÅÍ¸¦ º¸³»´Â ¿¹Á¦ÀÌ´Ù.
</Para>

<Para>
´õ ¸¹Àº ¿¹Á¦µéÀ» ÀÌ ¹®¼­ÀÇ ¸µÅ© ¼½¼Ç¿¡ ³ª¿Í ÀÖ´Â Craig ÀÇ »çÀÌÆ®¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù.
</Para>

<Para>

<ProgramListing>
//
// Programmer:    Craig Stuart Sapp [craig@ccrma.stanford.edu]
// Creation Date: Mon Dec 21 18:00:42 PST 1998
// Last Modified: Mon Dec 21 18:00:42 PST 1998
// Filename:      ...linuxmidi/output/method1.c
// Syntax:        C 
// $Smake:        gcc -O -o devmidiout devmidiout.c &#38;&#38; strip devmidiout
//

#include &lt;linux/soundcard.h&gt;
#include &lt;unistd.h&gt;
#include &lt;fcntl.h&gt;
#include &lt;stdio.h&gt;

int main(void) {
   char* device =  "/dev/midi" ;
   unsigned char data[3] = {0x90, 60, 127};

   // step 1: open the OSS device for writing
   int fd = open(device, O_WRONLY, 0);
   if (fd &#60; 0) {
      printf("Error: cannot open %s\n", device);
      exit(1);
   }

   // step 2: write the MIDI information to the OSS device
   write(fd, data, sizeof(data));

   // step 3: (optional) close the OSS device
   close(fd);

   return 0;
}
</ProgramListing>

</Para>

</Sect1>

<Sect1>
<Title>À¯¿ëÇÑ ¸µÅ©</Title>

<Para>
´ÙÀ½Àº ¸®´ª½º¿Í ¹Ìµð¿Í °ü·ÃµÈ ¸µÅ©µéÀÌ´Ù.
</Para>

<Para>
<ULink URL="http://www.bright.net/~dlphilp/linuxsound/">http://www.bright.net/~dlphilp/linuxsound/</ULink> ¸®´ª½º¿ë »ç¿îµå &#38; ¹Ìµð ¼ÒÇÁÆ®¿þ¾î.  
¹Ìµð¿Í ¿Àµð¿À °ü·Ã Á¤º¸°¡ Ç³ºÎÇÏ´Ù.
</Para>

<Para>
<ULink URL="http://www.linuxdj.com/audio/lad/">http://www.linuxdj.com/audio/lad/</ULink> 
¸®´ª½º ¿Àµð¿À °³¹ßÀÚ ¸ÞÀÏ¸µ ¸®½ºÆ®. °³¹ß¿¡ °üÇÑ ³íÀÇµéÀÌ ÀÖÀ½.
</Para>

<Para>
<ULink URL="http://www.linuxdj.com/audio/quality">http://www.linuxdj.com/audio/quality</ULink> 
¸®´ª½º ¿Àµð¿À À½Áú HOWTO. ¹Ìµð Ä«µå¿Í ¸®´ª½º ¿Àµð¿À ½ºÆ©µð¿À¸¦ ¸¸µå´Âµ¥ µµ¿òÀÌ µÈ´Ù.
</Para>

<Para>
<ULink URL="http://www.alsa-project.org/">http://www.alsa-project.org/</ULink> Alsa ÇÁ·ÎÁ§Æ® - Audio/MIDI Driver
</Para>

<Para>
<ULink URL="http://www.4front-tech.com/">http://www.4front-tech.com/</ULink> OSS - Audio/MIDI Driver
</Para>

<Para>
<ULink URL="http://www.gardena.net/benno/linux/audio/">http://www.gardena.net/benno/linux/audio/</ULink> Low Latancy ÆÐÄ¡
</Para>

<Para>
<ULink URL="http://ccrma-www.stanford.edu/~craig/articles/linuxmidi/">http://ccrma-www.stanford.edu/~craig/articles/linuxmidi/</ULink> 
¸®´ª½º¿¡¼­ÀÇ ¹Ìµð ÇÁ·Î±×·¡¹Ö ¼Ò°³. Craig Stuart Sapp´Â OSS µå¶óÀÌ¹ö¸¦ À§ÇØ C/C++¸¦ »ç¿ëÇÑ ±âÃÊÀûÀÎ ¹Ìµð À¯Æ¿¸®Æ¼µé¿¡ ´ëÇØ Á¤º¸¸¦ Á¦°øÇÏ°í ÀÖ´Ù.
</Para>

<Para>
<ULink URL="http://www.suse.de/~mana">http://www.suse.de/~mana</ULink> 
Dr. Matthias NagorniÀÇ ALSA 0.9 ¹Ìµð¿Í PCM ¿¡ °üÇÑ C ÇÁ·Î±×·¥ ¿¹Á¦¸ðÀ½.
</Para>

</Sect1>

<Sect1>
<Title>ÇÇµå¹é</Title>

<Para>
ÀÌ HOWTO´Â °è¼Ó ÁøÇàÁßÀÌ´Ù. ¸®´ª½º»ó¿¡¼­ÀÇ »õ·Î¿î ¶Ç´Â °³¹ßÁßÀÎ ¹Ìµð °ü·Ã ¾îÇÃ¸®ÄÉÀÌ¼Ç¿¡ °üÇÑ Á¤º¸´Â È¯¿µÇÑ´Ù.
</Para>

<Para>
¹Ìµð Ä«µå´Â ¸Å¿ì ´Ù¾çÇÏ¸ç, ¾î¶² °æ¿ì¿¡´Â ¼³Á¤¿¡ ¾î·Á¿òÀÌ ÀÖÀ» ¼ö ÀÖ´Ù.
Á¤º¸¸¦ Ã£¾Æ º¼ ¼ö ÀÖ´Â °¡Àå ÁÁÀº °÷Àº ´º½º ±×·ì°ú ¸®´ª½º ¿Àµð¿À ¸ÞÀÏ¸µ ¸®½ºÆ®ÀÌ´Ù.
</Para>

</Sect1>

<sect1>
<title>¿ªÀÚ Ãß°¡</title>

<para>
¿ªÀÚ´Â MPU-401 ÀÎÅÍÆäÀÌ½º¿Í ½Åµð»çÀÌÀú »ç¿îµå ¸ðµâµé, ±âÅ¸ ÇÁ·Î¼¼¼­µîÀ» °¡Áö°í ÀÖ´Âµ¥ ¾ó¸¶ Àü±îÁö¸¸ ÇØµµ ¸®´ª½º¿¡¼­´Â ¾µ¸¸ÇÑ ÇÁ·Î±×·¥ÀÌ ¾ø¾î¼­ À©µµ¿ì¿¡¼­ ÄÉÀÌÅ© ¿öÅ©³ª Å¥º£ÀÌ½º¸¦ »ç¿ëÇß¾ú½À´Ï´Ù. ÇÏÁö¸¸, Áö±ÝÀº ¿ÀÇÂ ¼Ò½ºÀÇ ºü¸¥ ¹ßÀüÀ¸·Î ÀÌ ¸ðµç°ÍÀÌ ¸ðµÎ ¸®´ª½º¿¡¼­µµ °¡´ÉÇÏ°Ô µÇ¾ú½À´Ï´Ù. :)
</para>
<para>
ÇÑ±Û·Î ¹ø¿ªÇÏÁö ¾Ê°í ±×´ë·Î ¿µ¹®À» ¿Å°Ü ¾´ ºÎºÐÀº ±×°ÍÀÌ ´õ ÀÌÇØÇÏ±â ½¬¿ï °ÍÀÌ¶ó°í »ý°¢Çß±â ¶§¹®ÀÔ´Ï´Ù. ¹Ìµð¿Í °ü·Ã Àåºñ¸¦ ´Ù·ç¾î º¸½Å ºÐµéÀº ´Ù ÀÌÇØÇÏ½Ç °ÍÀÌ¶ó°í »ý°¢ÇÕ´Ï´Ù. ;)
</para>

<para>
ÀÌ ¹®¼­ÀÇ ¸¶Áö¸· ¹ø¿ªº»Àº <ulink url="http://kldp.org/~eunjea/">http://kldp.org/~eunjea/</ulink>¿¡ ÀÖÀ¸¸ç ¿À·ù/¼öÁ¤ »çÇ×Àº <email>eunjea (at) kldp.org</email>·Î ¾Ë·Á ÁÖ¼¼¿ä.
</para>

<para>
MIDI : Musical Instrument Digital Interface
</para>

</sect1>

</Article>
