/[gentoo]/xml/htdocs/doc/en/alsa-guide.xml
Gentoo

Contents of /xml/htdocs/doc/en/alsa-guide.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.30 - (hide annotations) (download) (as text)
Sun Mar 28 08:50:17 2004 UTC (10 years, 8 months ago) by swift
Branch: MAIN
Changes since 1.29: +4 -4 lines
File MIME type: application/xml
Fix typo in code listing

1 zhen 1.3 <?xml version='1.0' encoding="UTF-8"?>
2 swift 1.30 <!-- $Header: /home/cvsroot/gentoo/xml/htdocs/doc/en/alsa-guide.xml,v 1.29 2004/03/11 10:00:47 neysx Exp $ -->
3 drobbins 1.1 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
4    
5 zhen 1.2 <guide link = "/doc/en/alsa-guide.xml">
6 drobbins 1.1 <title>Gentoo Linux ALSA Guide</title>
7 swift 1.20 <author title="Author">
8     <mail link="zu@pandora.be">Vincent Verleye</mail>
9 drobbins 1.1 </author>
10 swift 1.20 <author title="Author">
11     <mail link="g2boojum@gentoo.org">Grant Goodyear</mail>
12 peesh 1.10 </author>
13 swift 1.20 <author title="Author">
14     <mail link="agenkin@gentoo.org">Arcady Genkin</mail>
15 peesh 1.10 </author>
16 erwin 1.26 <author title="Author">
17     <mail link="eradicator@gentoo.org">Jeremy Huddleston</mail>
18     </author>
19 swift 1.18 <author title="Editor"><!-- zhen@gentoo.org -->
20     John P. Davis
21 drobbins 1.1 </author>
22 swift 1.20 <author title="Editor">
23     <mail link="swift@gentoo.org">Sven Vermeulen</mail>
24 swift 1.12 </author>
25 swift 1.20 <author title="Editor">
26     <mail link="bennyc@gentoo.org">Benny Chuang</mail>
27 bennyc 1.14 </author>
28 swift 1.20 <author title="Editor">
29     <mail link="blubber@gentoo.org">Tiemo Kieft</mail>
30 blubber 1.16 </author>
31 erwin 1.26 <author title="Editor">
32     <mail link="erwin@gentoo.org">Erwin</mail>
33     </author>
34 drobbins 1.1
35     <abstract>
36 swift 1.20 This guide will show you how to set up the Advanced Linux Sound Architecture
37     (ALSA) on Gentoo Linux. In addition to the Gentoo Linux Desktop Configuration
38     Guide, this guide is supposed to give you more information on this subject.
39     </abstract>
40 drobbins 1.1
41 swift 1.25 <license/>
42    
43 swift 1.30 <version>1.4.2</version>
44     <date>March 28, 2004</date>
45 drobbins 1.1
46     <chapter>
47     <title>Introduction</title>
48     <section>
49 swift 1.20 <title>What is ALSA?</title>
50 drobbins 1.1 <body>
51 swift 1.20
52 drobbins 1.1 <p>
53 swift 1.20 The Advanced Linux Sound Architecture (ALSA) is a project to improve the Linux
54 erwin 1.26 sound subsystem by rewriting large chunks of it. It has replaced the Open
55     Sound System (OSS) as the default sound subsystem in the 2.6 kernel, but it
56     can be used with either 2.4 or 2.6 kernels.
57 drobbins 1.1 </p>
58    
59     <p>
60     ALSA provides audio and MIDI functionality for Linux.
61     </p>
62    
63     <p>
64 swift 1.20 Quoted from <uri>http://www.alsa-project.org</uri>, ALSA has the following
65     features:
66     </p>
67    
68     <ul>
69     <li>
70     Efficient support for all types of audio interfaces, from consumer
71     soundcards to professional multichannel audio interfaces
72     </li>
73     <li>Fully modularized sound drivers</li>
74     <li>SMP and thread-safe design</li>
75     <li>
76     User space library (alsa-lib) to simplify application programming and
77     provide higher level functionality
78     </li>
79     <li>
80     Support for the older OSS API, providing binary compatibility for most OSS
81     programs
82     </li>
83 drobbins 1.1 </ul>
84 swift 1.20
85     <p>
86     There's lots more to ALSA however, like support for Full Duplex playback and
87     recording, multiple soundcard support, hardware mixing of streams, extensive
88     mixer capabilities (to support advanced features of new soundcards), ...
89 drobbins 1.1 </p>
90 swift 1.20
91 drobbins 1.1 </body>
92     </section>
93     <section>
94 swift 1.20 <title>Why use ALSA?</title>
95 drobbins 1.1 <body>
96 swift 1.20
97 drobbins 1.1 <p>
98 erwin 1.26 Your sound card may be supported by modules available in the 2.4 kernel (these
99     are also provided in the 2.6 kernel under the 'Open Sound System (DEPRECATED)'
100     option). Additionally, you might be able to use the commercial OSS/4Front sound
101     driver system. If you wish to use either of these systems, then you should read
102     through the <uri link="http://www.tldp.org/HOWTO/Sound-HOWTO/index.html">Linux
103     Sound HOWTO</uri>.
104 drobbins 1.1 </p>
105 swift 1.20
106 drobbins 1.1 <p>
107 erwin 1.26 The OSS/4Front drivers have some limitations, however. Being commercial is
108     one. ALSA is an attempt to go beyond these limitations with an open source
109     development model. ALSA is a fully GPL and LGPL'ed sound driver system that
110 swift 1.20 provides a professional quality system for recording, playback, and MIDI
111     sequencing.
112 drobbins 1.1 </p>
113 swift 1.20
114 drobbins 1.1 </body>
115     </section>
116     <section>
117 swift 1.20 <title>What cards does ALSA support?</title>
118 drobbins 1.1 <body>
119 swift 1.20
120 drobbins 1.1 <p>
121 swift 1.20 ALSA tries to support as many (new) cards as possible by providing open-source
122     drivers. However, some vendors may provide binary-only packages.
123 drobbins 1.1 </p>
124 swift 1.20
125     <p>
126     To know if your card is supported, you can find a Soundcard Matrix of supported
127     and not-supported cards here: <uri>http://www.alsa-project.org/alsa-doc/</uri>.
128 drobbins 1.1 </p>
129 swift 1.20
130 drobbins 1.1 </body>
131     </section>
132     </chapter>
133    
134     <chapter>
135     <title>Installation</title>
136     <section>
137 swift 1.17 <title>Gentoo USE flags</title>
138     <body>
139    
140     <p>
141     To compile programs with ALSA-support, be sure to add <e>alsa</e> to
142     your USE-variable. However, several tools don't support alsa yet, and
143     require OSS. ALSA provides OSS-emulation if you define <e>oss</e> in your
144     USE-variable before you start.
145     </p>
146    
147     </body>
148     </section>
149     <section>
150 swift 1.20 <title>Kernel modules</title>
151 drobbins 1.1 <body>
152 swift 1.20
153 drobbins 1.1 <p>
154 erwin 1.26 When using the 2.4 kernels, you'll need to compile the alsa drivers separately
155     from the rest of the kernel. If you are using a 2.6 kernel, you have the
156     option of using the ALSA drivers included in the kernel or those provided
157     by the <c>alsa-driver</c> package.
158 drobbins 1.1 </p>
159 swift 1.20
160 drobbins 1.1 <p>
161     First we'll make sure that our kernel configuration is ready for use with ALSA.
162 swift 1.20 All you need in your kernel configuration is having Sound Card Support set to
163     be built as a module (M). This will build <path>soundcore.o</path>.
164 drobbins 1.1 </p>
165 swift 1.20
166 drobbins 1.1 <note>
167 erwin 1.26 Possibly, this will also work if you build 'Sound Card Support' in the kernel
168 swift 1.20 (Y) instead of building it as a module (M). However, the official ALSA
169     documentation suggests building it as a module, since ALSA will try loading it.
170 drobbins 1.1 </note>
171 swift 1.20
172     <p>
173     If you already have a working kernel configuration, make sure you remove all
174     sound drivers (except for Sound Card Support). If you wish to do this without
175     having to reboot, you could do like this:
176 drobbins 1.1 </p>
177 swift 1.20
178     <pre caption="Kernel configuration">
179 blubber 1.16 # <i>cd /usr/src/linux</i>
180     # <i>cp .config ~/</i>
181     # <i>make mrproper</i>
182     # <i>cp ~/.config .</i>
183     # <i>make menuconfig</i>
184 drobbins 1.1 </pre>
185 swift 1.20
186 drobbins 1.1 <p>
187 swift 1.20 Now select <e>Sound Card Support</e> as Module (M) and deselect all other sound
188 erwin 1.26 drivers. If you are using 2.6 with the ALSA modules provided by the kernel, select
189     the drivers for your sound card as well (look in the <uri
190     link="#doc_chap2_sect3">ALSA modules</uri> section below if you need help
191     choosing the right drivers). Exit and say Y to save your kernel configuration.
192     After that, build the modules:
193 drobbins 1.1 </p>
194 swift 1.20
195 erwin 1.26 <pre caption="2.4 Kernel compilation">
196 blubber 1.16 # <i>make dep clean</i>
197     # <i>make modules modules_install</i>
198 drobbins 1.1 </pre>
199 swift 1.20
200 erwin 1.26 <pre caption="2.6 Kernel compilation">
201     # <i>make</i>
202     # <i>make modules_install</i>
203     </pre>
204    
205     <p>
206     If you compiled 2.6 with the ALSA modules provided by the kernel, please skip to
207     <uri link="#doc_chap2_sect4">Configuration of ALSA</uri> below.
208     </p>
209    
210 drobbins 1.1 <p>
211 swift 1.20 Before installing your new modules, this last line will delete all your previous
212     modules, even the ones from a previous ALSA installation.
213 drobbins 1.1 </p>
214 swift 1.20
215 drobbins 1.1 <impo>
216 swift 1.20 This means, whenever you recompile your kernel later on, you MUST recompile
217     <c>alsa-driver</c>.
218 drobbins 1.1 </impo>
219 swift 1.20
220 drobbins 1.1 </body>
221     </section>
222     <section>
223 swift 1.20 <title>ALSA modules</title>
224 drobbins 1.1 <body>
225    
226     <p>
227 swift 1.20 Now it's time to install the ALSA drivers for your soundcard(s). If your
228     soundcard is PCI, you can find out the name and type of your soundcard by
229     looking at the output of <path>/proc/pci</path>.
230 drobbins 1.1 </p>
231 swift 1.20
232     <pre caption="Search for soundcard information">
233 blubber 1.16 # <i>grep audio /proc/pci</i>
234     </pre>
235    
236 drobbins 1.1 <warn>
237 swift 1.20 If you had a previous sound setup and there are still non-ALSA sound modules
238     loaded, unload them <e>now</e>. Check with <c>lsmod</c> and use <c>rmmod</c>
239 erwin 1.26 to unload all sound-related modules on your system. If <c>rmmod</c> complains
240     about not being able to unload the modules because they are in use, try using
241     <c>/etc/init.c/alsasound stop</c> to remove them.
242 drobbins 1.1 </warn>
243    
244     <p>
245 swift 1.20 We could simply do an <c>emerge alsa-driver</c> now, this would compile and
246     install <e>all</e> ALSA sound drivers.
247 drobbins 1.1 </p>
248 swift 1.20
249 drobbins 1.1 <p>
250 swift 1.20 However, to save some time, lookup the <e>Module Name</e> of your soundcard(s)
251     on the <uri link="http://www.alsa-project.org/alsa-doc">ALSA Soundcard
252     Matrix</uri> by following the <e>Details</e> link in the <e>Driver and Docs</e>
253     column in the row of the chipset of your soundcard. Mine is <c>snd-emu10k1</c>,
254     since I have an SBlive! soundcard, with the <e>EMU10K1</e> chipset. We'll set
255     ALSA_CARDS environment to the value of the module name before emerging (but
256     without the snd prefix), so emerge will only compile the drivers we need.
257 drobbins 1.1 </p>
258    
259 erwin 1.26 <pre caption="With 2.4 Kernel">
260 blubber 1.16 # <i>env ALSA_CARDS='emu10k1' emerge alsa-driver</i>
261 drobbins 1.1 </pre>
262 swift 1.20
263 erwin 1.26 <pre caption="With 2.6 Kernel">
264     # <i>env ALSA_CARDS='emu10k1' emerge \>=media-sound/alsa-driver-1.0.2c</i>
265     </pre>
266    
267     <note>
268 aaby 1.27 2.6 kernels require alsa-driver to be at least version 1.0.2c.
269 erwin 1.26 </note>
270    
271 drobbins 1.1 <note>
272 swift 1.20 You can also add this value in <path>/etc/make.conf</path>, so when you have
273     to emerge the alsa-driver later on you can just run <c>emerge alsa-driver</c>.
274 seo 1.8 For example, like this: <c>echo 'ALSA_CARDS="emu10k1"' >> /etc/make.conf</c>
275     </note>
276    
277     <note>
278 swift 1.20 When you want to install ALSA drivers for more than one soundcard, you could
279     set ALSA_CARDS to a space-separated list of drivers; like this: <c>env
280     ALSA_CARDS='emu10k1 intel8x0 ens1370' emerge alsa-driver</c>
281 drobbins 1.1 </note>
282    
283 swift 1.20 <note>
284     If you want to have OSS compatibility, make sure to emerge <i>alsa-oss</i>, it
285     is the ALSA/OSS compatibility wrapper.
286     </note>
287 drobbins 1.1
288 swift 1.20 <note>
289     If you plan on recompiling your kernels numerous times, it might
290 swift 1.13 be adviseable to emerge <c>alsa-driver</c> with <c>--buildpkg</c>. This
291     will create a binary package for it. Later, after recompiling your kernel,
292     you can just do <c>emerge --usepkg alsa-driver</c> which will install the
293 erwin 1.26 binary package instead of recompiling it completely. If 'depmod -a' ever
294     complains about sound drivers having unreferenced symbols when you do this,
295     you will need to recompile the alsa-driver package from source.
296 swift 1.20 </note>
297 swift 1.13
298 drobbins 1.1 <p>
299     After this, the ALSA modules should be installed on your system.
300     </p>
301 swift 1.20
302 drobbins 1.1 </body>
303     </section>
304     <section>
305 swift 1.20 <title>Configuration of ALSA</title>
306 drobbins 1.1 <body>
307 swift 1.20
308 drobbins 1.1 <p>
309 swift 1.20 Let's start configuring now to get ALSA working properly. We'll need to edit
310     some files, to let our system know about the freshly installed ALSA modules.
311 drobbins 1.1 </p>
312 swift 1.12
313 drobbins 1.1 <p>
314 swift 1.12 First, install <c>alsa-utils</c> on your system:
315     </p>
316    
317     <pre caption = "Emerging alsa-utils">
318     # <i>emerge alsa-utils</i>
319     </pre>
320    
321     <p>
322     Hereafter, we need to edit <path>/etc/modules.d/alsa</path>.
323 drobbins 1.1 </p>
324 swift 1.20
325 drobbins 1.1 <warn>
326 swift 1.20 There is no need to edit <path>/etc/modules.conf</path>. Instead, always edit
327 erwin 1.26 files in <path>/etc/modules.d</path> and run <c>modules-update</c> to generate
328     <path>/etc/modules.conf</path> from the updated data.
329 drobbins 1.1 </warn>
330 swift 1.20
331 seo 1.8 <pre caption="In /etc/modules.d/alsa">
332 bennyc 1.14 ## and then run `modules-update' command.
333 drobbins 1.1 ## Read alsa-driver's INSTALL file in /usr/share/doc for more info.
334     ##
335     ## ALSA portion
336 blubber 1.16 alias snd-card-0 snd-emu10k1
337 drobbins 1.1 ## alias snd-card-1 snd-intel8x0
338 blubber 1.16 ## alias snd-card-2 snd-ens1370
339 drobbins 1.1 ## OSS/Free portion
340 erwin 1.26 alias sound-slot-0 snd-card-0
341 drobbins 1.1 ## alias sound-slot-1 snd-card-1
342 erwin 1.26 ## alias sound-slot-2 snd-card-2
343 drobbins 1.1 ##
344     </pre>
345 swift 1.20
346 drobbins 1.1 <note>
347 erwin 1.26 If you have more than one soundcard, add more <c>snd-card</c> and <c>snd-slot</c>
348     aliases and adjust the <c>cards_limit</c> value at the end of the file. You can
349     find examples for configurations with two or more soundcards in <uri
350 swift 1.20 link="http://www.alsa-project.org/alsa-doc/alsa-howto/c1660.htm">Chapter 6</uri>
351     of the <uri
352     link="http://www.alsa-project.org/alsa-doc/alsa-howto/alsa-howto.html">ALSA
353     Howto</uri>.
354 drobbins 1.1 </note>
355 swift 1.20
356 drobbins 1.1 <p>
357 swift 1.20 Last thing to do in this file, almost at the end, check if these lines are there
358     and uncommented:
359 blubber 1.16 </p>
360 swift 1.20
361 seo 1.8 <pre caption="Near the end of /etc/modules.d/alsa">
362 drobbins 1.1 alias /dev/mixer snd-mixer-oss
363     alias /dev/dsp snd-pcm-oss
364     alias /dev/midi snd-seq-oss
365     </pre>
366 swift 1.20
367 drobbins 1.1 <p>
368 erwin 1.26 After double-checking the file <path>/etc/modules.d/alsa</path> to make sure
369 swift 1.20 everyting is ok, run <c>modules-update</c>.
370     </p>
371    
372     <pre caption="Running modules-update">
373 bennyc 1.14 # <i>modules-update</i>
374 drobbins 1.1 </pre>
375 swift 1.20
376 drobbins 1.1 <note>
377 swift 1.20 Running <c>modules-update</c> here will insert the data from
378     <path>/etc/modules.d/alsa</path> into <path>/etc/modules.conf</path>
379 drobbins 1.1 </note>
380 swift 1.20
381 drobbins 1.1 <p>
382 swift 1.20 You should also verify that <path>/etc/devfsd.conf</path> has the alsa devices
383     and permissions correctly registered.
384 drobbins 1.1 </p>
385 swift 1.20
386 seo 1.8 <pre caption="/etc/devfsd.conf">
387 drobbins 1.1 # ALSA/OSS stuff
388     # Comment/change these if you want to change the permissions on
389     # the audio devices
390     LOOKUP snd MODLOAD ACTION snd
391     LOOKUP dsp MODLOAD
392     LOOKUP mixer MODLOAD
393     LOOKUP midi MODLOAD
394     REGISTER sound/.* PERMISSIONS root.audio 660
395     REGISTER snd/.* PERMISSIONS root.audio 660
396     </pre>
397 swift 1.20
398 drobbins 1.1 <note>
399 swift 1.20 Notice that devfsd.conf sets <path>/dev/sound</path> permissions to be
400     root.audio. Thus, for non-root users to use audio they will have to be part of
401     the audio group.
402 drobbins 1.1 </note>
403 swift 1.20
404 drobbins 1.1 </body>
405     </section>
406     </chapter>
407 swift 1.20
408 drobbins 1.1 <chapter>
409     <title>Starting ALSA</title>
410     <section>
411 swift 1.20 <title>Adding alsasound to a runlevel</title>
412 drobbins 1.1 <body>
413 swift 1.20
414 drobbins 1.1 <p>
415 neysx 1.29 An init script is provided for you which will install all necessary sound
416     drivers for your card (including the OSS support drivers if you set USE=oss).
417     The first thing to do now is to make ALSA startup at boot time:
418 swift 1.20 </p>
419    
420 aaby 1.22 <pre caption="Add ALSA to the boot runlevel">
421 blubber 1.16 # <i>rc-update add alsasound boot</i>
422 drobbins 1.1 </pre>
423 swift 1.20
424     <warn>
425     Note that the alsasound script should be added to the "boot" runlevel, not the
426     "default" runlevel.
427     </warn>
428    
429 drobbins 1.1 </body>
430     </section>
431     <section>
432 swift 1.20 <title>Running and unmuting</title>
433 drobbins 1.1 <body>
434 swift 1.20
435 drobbins 1.1 <p>
436 swift 1.20 Since we're Linux users, we don't want to reboot. So we'll start the alsasound
437     script manually.
438 drobbins 1.1 </p>
439 swift 1.20
440     <pre caption="Starting ALSA">
441 blubber 1.16 # <i>/etc/init.d/alsasound start</i>
442 drobbins 1.1 </pre>
443 swift 1.20
444 drobbins 1.1 <p>
445 swift 1.20 ALSA is running now. If everything is ok, you should be able to see the ALSA
446     modules loaded when running <c>lsmod</c>. However, sound won't work yet,
447 aaby 1.22 because the channels are still muted. We need <c>amixer</c> to fix this.
448 drobbins 1.1 </p>
449 swift 1.20
450 swift 1.12 <pre caption = "Running amixer">
451     # <i>amixer</i>
452 drobbins 1.1 </pre>
453 swift 1.20
454 erwin 1.26 <!-- alsasound init script will do this for them now...
455 drobbins 1.1 <warn>
456 swift 1.20 You shouldn't get this, but <e>if</e> you get an error about "amixer: Mixer
457     attach default error: No such file or directory", you should manually modprobe
458 drobbins 1.1 <c>snd-mixer-oss</c> and <c>snd-pcm-oss</c> once. After that run amixer again.
459     </warn>
460 swift 1.20
461     <pre caption="Only if you get an error when running amixer">
462 bennyc 1.15 # <i>modprobe snd-mixer-oss</i>
463     # <i>modprobe snd-pcm-oss</i>
464     # <i>amixer</i>
465 drobbins 1.1 </pre>
466 erwin 1.26 -->
467 swift 1.20
468 drobbins 1.1 <p>
469 swift 1.13 If you got this far, now unmute Master and PCM channels. Some hardware
470     even requires you to unmute the center channel or even the surround
471     channel.
472 drobbins 1.1 </p>
473 swift 1.20
474 swift 1.13 <pre caption = "Unmuting channels">
475     # <i>amixer set Master 100 unmute</i>
476     # <i>amixer set PCM 100 unmute</i>
477     <comment>Only if the above doesn't succeed on its own:</comment>
478     # <i>amixer set Center 100 unmute</i>
479     # <i>amixer set Surround 100 unmute</i>
480     <comment>Test the sound:</comment>
481     # <i>aplay $KDEDIR/share/sounds/pop.wav</i> <codenote>(pop.wav is part of KDE)</codenote>
482 drobbins 1.1 </pre>
483 swift 1.20
484     <p>
485     We check to see if sound is working by using the aplay (alsa play) command. If
486     you hear a pop, then sound is indeed working. Then, adjust the volume settings
487     to your liking; the ncurses-based <c>alsamixer</c> is a great way to get them
488     "just so".
489 drobbins 1.1 </p>
490 swift 1.20
491     <p>
492 erwin 1.26 When you reboot your system, the <c>alsasound</c> init script will
493     properly save and restore your volume settings.
494     </p>
495    
496     </body>
497     </section>
498     </chapter>
499    
500     <chapter>
501     <title>MIDI Support</title>
502     <section>
503     <title>Hardware Synthesizer</title>
504     <body>
505    
506     <p>
507     Some sound cards (SBLive, Audigy, and others) come with onboard MIDI synthesizers.
508     To use them, you must first install the <c>awesfx</c> package.
509     </p>
510    
511     <pre caption="Install awesfx">
512     # <i>emerge awesfx</i>
513     </pre>
514    
515     <p>
516     Now, you should place your sound fonts in <path>/usr/share/sfbank/</path>. You
517     can probably get the sound fonts off of the windows driver CD for your sound card.
518     With the SBLive, one of the included sound font files is called 8MBGMSFX.SF2.
519     </p>
520    
521 swift 1.28 <note>
522     On some recents CD supplied with a SBLive, the font file is called CT4GMSFX.SF2.
523 neysx 1.29 If it is your case, please replace all occurrences of 8MBGMSFX.SF2 with
524 swift 1.28 CT4GMSFX.SF2 in the examples.
525     </note>
526    
527 erwin 1.26 <p>
528     After copying over the sound font you want to use, you need to select it for use
529     with <c>/usr/bin/sfxload</c>.
530     </p>
531    
532     <pre caption="Selecting the sound font">
533     # <i>/usr/bin/sfxload /usr/share/sfbank/8MBGMSFX.SF2</i>
534     </pre>
535    
536     <note>
537     You may wish to place this command in /etc/conf.d/local.start or in the startup
538     script for your sound card (/etc/alsa.d/emu10k1) to make sure it gets loaded
539     at startup.
540     </note>
541    
542     </body>
543     </section>
544     <section>
545     <title>Timidity++ Virtual Synthesizer</title>
546     <body>
547    
548     <p>
549     If your sound card does not come with a hardware synthesizer (or you don't
550     want to use it), you can use <c>timidity++</c> to provide you with a virtual
551     synthesizer. Start by emerging this package:
552     </p>
553    
554     <pre caption="Installing Timidity++">
555     # <i>emerge timidity++</i>
556     </pre>
557    
558     <p>
559     A sample configuration file will be installed for you in
560     <path>/usr/share/timitidy/config/timidity.cfg</path>. If you don't have a
561     timidity++ configuration setup yet, you can just use this one.
562     </p>
563    
564     <pre caption="Use the default Timidity++ configuration file">
565 swift 1.30 # <i>cp /usr/share/timidity/config/timidity.cfg /usr/share/timidity</i>
566 erwin 1.26 </pre>
567    
568     <p>
569     Now, you need to enable the init script to run when your system boots
570     and enable it now.
571     </p>
572    
573     <pre caption="Add timidity to default runlevel and start it now">
574     # <i>rc-update add timidity default</i>
575     # <i>/etc/init.d/timidity start</i>
576     </pre>
577    
578     <p>
579     Note that there is a configuration file for the init script that you can
580     modify in <path>/etc/conf.d/timidity</path>, and sane defaults have been
581     chosen for you.
582     </p>
583    
584     </body>
585     </section>
586     <section>
587     <title>Testing MIDI Support</title>
588     <body>
589    
590     <p>
591     You can use <c>pmidi</c> to test out your MIDI configuration. To do so,
592     you need to first emerge its package.
593 swift 1.20 </p>
594    
595 erwin 1.26 <pre caption="Installing pmidi">
596     # <i>emerge pmidi</i>
597     </pre>
598    
599 drobbins 1.1 <p>
600 erwin 1.26 The '-l' command line option to pmidi will list all detected MIDI output ports,
601     and '-p' can be used to select the one for playback. Check to see what
602     MIDI output ports are available on your system:
603     </p>
604    
605 swift 1.28 <pre caption="Listed ports when using hardware synthesizer">
606 erwin 1.26 # <i>pmidi -l</i>
607     Port Client name Port name
608     64:0 Rawmidi 0 - EMU10K1 MPU-401 (U EMU10K1 MPU-401 (UART)
609     65:0 Emu10k1 WaveTable Emu10k1 Port 0
610     65:1 Emu10k1 WaveTable Emu10k1 Port 1
611     65:2 Emu10k1 WaveTable Emu10k1 Port 2
612     65:3 Emu10k1 WaveTable Emu10k1 Port 3
613     </pre>
614    
615     <pre caption="Listed ports when using Timidity++">
616     # <i>pmidi -l</i>
617     Port Client name Port name
618     64:0 Rawmidi 0 - ES1371 ES1371
619     128:0 TiMidity TiMidity port 0
620     128:1 TiMidity TiMidity port 1
621     128:2 TiMidity TiMidity port 2
622     128:3 TiMidity TiMidity port 3
623     </pre>
624    
625     <p>
626     Now, try playing a MIDI file to make sure everything works:
627 drobbins 1.1 </p>
628 swift 1.20
629 erwin 1.26 <pre caption="Play a song">
630     # <i>pmidi -p 65:0 Final\ Fantasy\ 7\ -\ Aerith\'s\ Theme.mid</i>
631     or
632     # <i>pmidi -p 128:0 Final\ Fantasy\ 7\ -\ Aerith\'s\ Theme.mid</i>
633     </pre>
634    
635 drobbins 1.1 </body>
636     </section>
637     </chapter>
638 swift 1.20
639 drobbins 1.1 <chapter>
640     <title>Final Notes</title>
641     <section>
642 aaby 1.22 <title>After kernel-upgrades...</title>
643 drobbins 1.1 <body>
644 swift 1.20
645     <p>
646     When you ever rebuild your kernel, or upgrade to another kernel, you'll have to
647     rebuild the ALSA modules.
648     </p>
649    
650     <p>
651 neysx 1.24 Although you might have installed <c>alsa-driver</c>, <c>alsa-lib</c> and
652 swift 1.20 <c>alsa-utils</c>, only the first will have to be installed again, since it will
653     put the alsa modules in <path>/lib/modules/*/kernel/sound/pci/</path>.
654     </p>
655    
656 aaby 1.22 <pre caption="Needed after each kernel compile">
657 blubber 1.16 # <i>emerge alsa-driver</i>
658 drobbins 1.1 </pre>
659 swift 1.20
660 drobbins 1.1 </body>
661     </section>
662     <section>
663 erwin 1.26 <title>alsa-tools and alsa-firmware</title>
664     <body>
665    
666     <p>
667     The alsa-tools and alsa-firmware packages contain tools useful to only users of
668     specific sound cards. Most users will not need these. If you do need alsa-tools,
669     you can set the environment variable 'ALSA_TOOLS' to install just the needed tools
670     for your card:
671     </p>
672    
673     <pre caption="Installing alsa-tools">
674     # <i>env ALSA_TOOLS='as10k1 ac3dec' emerge alsa-tools</i>
675     </pre>
676    
677     </body>
678     </section>
679     <section>
680     <title>Mixing versions</title>
681     <body>
682    
683     <p>
684     Often times, different versions of <c>alsa-driver</c>, <c>alsa-lib</c>,
685     <c>alsa-utils</c>, <c>alsa-tools</c>, and <c>alsa-oss</c> will work with each
686     other, but it is recommended that you try to keep the versions in sync.
687     </p>
688    
689     </body>
690     </section>
691     <section>
692 swift 1.20 <title>/etc/modules.autoload</title>
693 drobbins 1.1 <body>
694 swift 1.20
695     <p>
696 erwin 1.26 You won't have to edit this file for use with ALSA. After doing <c>rc-update add
697     alsasound boot</c>, the correct modules will be loaded at startup.
698 swift 1.20 </p>
699    
700 erwin 1.26 <!--
701 swift 1.20 <p>
702     It's not necessary to add <c>snd-pcm-oss</c> or <c>snd-mixer-oss</c> in this
703     file. Check the <uri link="http://www.djcj.org/LAU/guide/alsbook/faq1.html">this
704     FAQ</uri> for more info.
705     </p>
706 erwin 1.26 -->
707 swift 1.20
708 drobbins 1.1 </body>
709     </section>
710 swift 1.17 <section>
711     <title>Known bugs</title>
712     <body>
713    
714     <note>
715     This guide lags behind on the alsa-development. Chances are these bugs
716     are already fixed when you read this.
717     </note>
718    
719     <ul>
720 swift 1.20 <li>
721     If you have <b>lots of noise</b> when using <b>oss</b> emulation, add
722     <e>options snd-pcm-oss dsp_map=1</e> to <path>/etc/modules.d/alsa</path>
723     </li>
724 swift 1.17 </ul>
725 swift 1.21
726     </body>
727     </section>
728     <section>
729     <title>Activating Joystick Support</title>
730     <body>
731    
732     <p>
733     If your soundcard has a joystick plug, you might be interested in activating
734     joystick support for your soundcard. If so, start by verifying if your soundcard
735     driver has a joystick parameter. You can verify this by running <c>modinfo</c>
736     against your <path>snd-&lt;your chipset&gt;</path>. For instance, for the
737     <c>snd-via82xx</c>:
738     </p>
739    
740     <pre caption="Running modinfo">
741     # <i>modinfo snd-via82xx</i>
742     filename: /lib/modules/2.4.22-ck2/snd-via82xx.o
743     description: "VIA VT82xx audio"
744     author: "Jaroslav Kysela &lt;perex@suse.cz&gt;"
745     license: "GPL"
746     parm: index int array (min = 1, max = 8), description "Index value for VIA 82xx bridge."
747     parm: id string array (min = 1, max = 8), description "ID string for VIA 82xx bridge."
748     parm: enable int array (min = 1, max = 8), description "Enable audio part of VIA 82xx bridge."
749     parm: mpu_port long array (min = 1, max = 8), description "MPU-401 port. (VT82C686x only)"
750     <i>parm: joystick int array (min = 1, max = 8), description "Enable joystick. (VT82C686x only)"</i>
751     parm: ac97_clock int array (min = 1, max = 8), description "AC'97 codec clock (default 48000Hz)."
752     parm: dxs_support int array (min = 1, max = 8), description "Support for DXS channels
753     (0 = auto, 1 = enable, 2 = disable, 3 = 48k only, 4 = no VRA)"
754     </pre>
755    
756     <p>
757     If it has the <c>joystick</c> parameter, then append <c>joystick=1</c> to your
758     <c>options</c> line in <path>/etc/modules.d/alsa</path>. For instance, for the
759     <c>snd-via82xx</c>:
760     </p>
761    
762     <pre caption="Adding the joystick parameter">
763     alias snd-card-0 snd-via82xx
764     options snd-via82xx joystick=1
765     </pre>
766 swift 1.17
767     </body>
768     </section>
769 drobbins 1.1 <section>
770 aaby 1.22 <title>More links...</title>
771 drobbins 1.1 <body>
772 swift 1.20
773 drobbins 1.1 <p>
774     You could check these for additional info:
775     </p>
776 swift 1.20
777 drobbins 1.1 <ul>
778 swift 1.20 <li>
779     <uri link="http://www.gentoo.org/doc/en/desktop.xml">The Gentoo Linux
780     Desktop Configuration Guide</uri>
781     </li>
782     <li>
783     <uri link="http://www.alsa-project.org">ALSA Project Homepage</uri>
784     </li>
785     <li>
786     <uri link="http://www.alsa-project.org/documentation.php3">ALSA Users
787     Documentation</uri>
788     </li>
789     <li>
790     <uri link="http://www.djcj.org">ALSA Howto's and FAQ's</uri>
791     </li>
792     <li>
793     <uri link="http://tldp.org/HOWTO/Sound-HOWTO/index.html">Linux Sound
794     HOWTO</uri>
795     </li>
796     <li>
797     <uri link="http://linux-sound.org/">Sound and MIDI Software For Linux</uri>
798     </li>
799 drobbins 1.1 </ul>
800 swift 1.20
801 drobbins 1.1 </body>
802     </section>
803     </chapter>
804     </guide>

  ViewVC Help
Powered by ViewVC 1.1.20