/[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.34 - (hide annotations) (download) (as text)
Fri May 14 09:35:05 2004 UTC (10 years, 4 months ago) by cam
Branch: MAIN
Changes since 1.33: +3 -3 lines
File MIME type: application/xml
Bumping version.

1 zhen 1.3 <?xml version='1.0' encoding="UTF-8"?>
2 cam 1.34 <!-- $Header: /home/cvsroot/gentoo/xml/htdocs/doc/en/alsa-guide.xml,v 1.33 2004/05/14 09:31:58 cam 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 cam 1.34 <version>1.4.4</version>
44     <date>May 14, 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 cam 1.31 If you want to have OSS compatibility, make sure to emerge <c>alsa-oss</c>, it
285 swift 1.20 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 swift 1.32 <p>
543     If you can't find soundfonts on your driver CD you can download some online from
544     <uri>http://www.parabola.demon.co.uk/alsa/awe64.html</uri>.
545     </p>
546    
547 erwin 1.26 </body>
548     </section>
549     <section>
550     <title>Timidity++ Virtual Synthesizer</title>
551     <body>
552    
553     <p>
554     If your sound card does not come with a hardware synthesizer (or you don't
555     want to use it), you can use <c>timidity++</c> to provide you with a virtual
556     synthesizer. Start by emerging this package:
557     </p>
558    
559     <pre caption="Installing Timidity++">
560     # <i>emerge timidity++</i>
561     </pre>
562    
563     <p>
564     A sample configuration file will be installed for you in
565     <path>/usr/share/timitidy/config/timidity.cfg</path>. If you don't have a
566     timidity++ configuration setup yet, you can just use this one.
567     </p>
568    
569     <pre caption="Use the default Timidity++ configuration file">
570 swift 1.30 # <i>cp /usr/share/timidity/config/timidity.cfg /usr/share/timidity</i>
571 erwin 1.26 </pre>
572    
573     <p>
574 cam 1.33 For timidity to play sounds, it needs a soundfont. If you don't have
575     any, installing the following package will give you some soundfonts.
576     </p>
577    
578     <pre caption="Installing soundfonts">
579     # <i>emerge timidity-eawpatches</i>
580     </pre>
581    
582     <p>
583 erwin 1.26 Now, you need to enable the init script to run when your system boots
584     and enable it now.
585     </p>
586    
587     <pre caption="Add timidity to default runlevel and start it now">
588     # <i>rc-update add timidity default</i>
589     # <i>/etc/init.d/timidity start</i>
590     </pre>
591    
592     <p>
593     Note that there is a configuration file for the init script that you can
594     modify in <path>/etc/conf.d/timidity</path>, and sane defaults have been
595     chosen for you.
596     </p>
597    
598     </body>
599     </section>
600     <section>
601     <title>Testing MIDI Support</title>
602     <body>
603    
604     <p>
605     You can use <c>pmidi</c> to test out your MIDI configuration. To do so,
606     you need to first emerge its package.
607 swift 1.20 </p>
608    
609 erwin 1.26 <pre caption="Installing pmidi">
610     # <i>emerge pmidi</i>
611     </pre>
612    
613 drobbins 1.1 <p>
614 erwin 1.26 The '-l' command line option to pmidi will list all detected MIDI output ports,
615     and '-p' can be used to select the one for playback. Check to see what
616     MIDI output ports are available on your system:
617     </p>
618    
619 swift 1.28 <pre caption="Listed ports when using hardware synthesizer">
620 erwin 1.26 # <i>pmidi -l</i>
621     Port Client name Port name
622     64:0 Rawmidi 0 - EMU10K1 MPU-401 (U EMU10K1 MPU-401 (UART)
623     65:0 Emu10k1 WaveTable Emu10k1 Port 0
624     65:1 Emu10k1 WaveTable Emu10k1 Port 1
625     65:2 Emu10k1 WaveTable Emu10k1 Port 2
626     65:3 Emu10k1 WaveTable Emu10k1 Port 3
627     </pre>
628    
629     <pre caption="Listed ports when using Timidity++">
630     # <i>pmidi -l</i>
631     Port Client name Port name
632     64:0 Rawmidi 0 - ES1371 ES1371
633     128:0 TiMidity TiMidity port 0
634     128:1 TiMidity TiMidity port 1
635     128:2 TiMidity TiMidity port 2
636     128:3 TiMidity TiMidity port 3
637     </pre>
638    
639     <p>
640     Now, try playing a MIDI file to make sure everything works:
641 drobbins 1.1 </p>
642 swift 1.20
643 erwin 1.26 <pre caption="Play a song">
644     # <i>pmidi -p 65:0 Final\ Fantasy\ 7\ -\ Aerith\'s\ Theme.mid</i>
645     or
646     # <i>pmidi -p 128:0 Final\ Fantasy\ 7\ -\ Aerith\'s\ Theme.mid</i>
647     </pre>
648    
649 drobbins 1.1 </body>
650     </section>
651     </chapter>
652 swift 1.20
653 drobbins 1.1 <chapter>
654     <title>Final Notes</title>
655     <section>
656 aaby 1.22 <title>After kernel-upgrades...</title>
657 drobbins 1.1 <body>
658 swift 1.20
659     <p>
660     When you ever rebuild your kernel, or upgrade to another kernel, you'll have to
661     rebuild the ALSA modules.
662     </p>
663    
664     <p>
665 neysx 1.24 Although you might have installed <c>alsa-driver</c>, <c>alsa-lib</c> and
666 swift 1.20 <c>alsa-utils</c>, only the first will have to be installed again, since it will
667     put the alsa modules in <path>/lib/modules/*/kernel/sound/pci/</path>.
668     </p>
669    
670 aaby 1.22 <pre caption="Needed after each kernel compile">
671 blubber 1.16 # <i>emerge alsa-driver</i>
672 drobbins 1.1 </pre>
673 swift 1.20
674 drobbins 1.1 </body>
675     </section>
676     <section>
677 erwin 1.26 <title>alsa-tools and alsa-firmware</title>
678     <body>
679    
680     <p>
681     The alsa-tools and alsa-firmware packages contain tools useful to only users of
682     specific sound cards. Most users will not need these. If you do need alsa-tools,
683     you can set the environment variable 'ALSA_TOOLS' to install just the needed tools
684     for your card:
685     </p>
686    
687     <pre caption="Installing alsa-tools">
688     # <i>env ALSA_TOOLS='as10k1 ac3dec' emerge alsa-tools</i>
689     </pre>
690    
691     </body>
692     </section>
693     <section>
694     <title>Mixing versions</title>
695     <body>
696    
697     <p>
698     Often times, different versions of <c>alsa-driver</c>, <c>alsa-lib</c>,
699     <c>alsa-utils</c>, <c>alsa-tools</c>, and <c>alsa-oss</c> will work with each
700     other, but it is recommended that you try to keep the versions in sync.
701     </p>
702    
703     </body>
704     </section>
705     <section>
706 swift 1.20 <title>/etc/modules.autoload</title>
707 drobbins 1.1 <body>
708 swift 1.20
709     <p>
710 erwin 1.26 You won't have to edit this file for use with ALSA. After doing <c>rc-update add
711     alsasound boot</c>, the correct modules will be loaded at startup.
712 swift 1.20 </p>
713    
714 erwin 1.26 <!--
715 swift 1.20 <p>
716     It's not necessary to add <c>snd-pcm-oss</c> or <c>snd-mixer-oss</c> in this
717     file. Check the <uri link="http://www.djcj.org/LAU/guide/alsbook/faq1.html">this
718     FAQ</uri> for more info.
719     </p>
720 erwin 1.26 -->
721 swift 1.20
722 drobbins 1.1 </body>
723     </section>
724 swift 1.17 <section>
725     <title>Known bugs</title>
726     <body>
727    
728     <note>
729     This guide lags behind on the alsa-development. Chances are these bugs
730     are already fixed when you read this.
731     </note>
732    
733     <ul>
734 swift 1.20 <li>
735     If you have <b>lots of noise</b> when using <b>oss</b> emulation, add
736     <e>options snd-pcm-oss dsp_map=1</e> to <path>/etc/modules.d/alsa</path>
737     </li>
738 swift 1.17 </ul>
739 swift 1.21
740     </body>
741     </section>
742     <section>
743     <title>Activating Joystick Support</title>
744     <body>
745    
746     <p>
747     If your soundcard has a joystick plug, you might be interested in activating
748     joystick support for your soundcard. If so, start by verifying if your soundcard
749     driver has a joystick parameter. You can verify this by running <c>modinfo</c>
750     against your <path>snd-&lt;your chipset&gt;</path>. For instance, for the
751     <c>snd-via82xx</c>:
752     </p>
753    
754     <pre caption="Running modinfo">
755     # <i>modinfo snd-via82xx</i>
756     filename: /lib/modules/2.4.22-ck2/snd-via82xx.o
757     description: "VIA VT82xx audio"
758     author: "Jaroslav Kysela &lt;perex@suse.cz&gt;"
759     license: "GPL"
760     parm: index int array (min = 1, max = 8), description "Index value for VIA 82xx bridge."
761     parm: id string array (min = 1, max = 8), description "ID string for VIA 82xx bridge."
762     parm: enable int array (min = 1, max = 8), description "Enable audio part of VIA 82xx bridge."
763     parm: mpu_port long array (min = 1, max = 8), description "MPU-401 port. (VT82C686x only)"
764     <i>parm: joystick int array (min = 1, max = 8), description "Enable joystick. (VT82C686x only)"</i>
765     parm: ac97_clock int array (min = 1, max = 8), description "AC'97 codec clock (default 48000Hz)."
766     parm: dxs_support int array (min = 1, max = 8), description "Support for DXS channels
767     (0 = auto, 1 = enable, 2 = disable, 3 = 48k only, 4 = no VRA)"
768     </pre>
769    
770     <p>
771     If it has the <c>joystick</c> parameter, then append <c>joystick=1</c> to your
772     <c>options</c> line in <path>/etc/modules.d/alsa</path>. For instance, for the
773     <c>snd-via82xx</c>:
774     </p>
775    
776     <pre caption="Adding the joystick parameter">
777     alias snd-card-0 snd-via82xx
778     options snd-via82xx joystick=1
779     </pre>
780 swift 1.17
781     </body>
782     </section>
783 drobbins 1.1 <section>
784 aaby 1.22 <title>More links...</title>
785 drobbins 1.1 <body>
786 swift 1.20
787 drobbins 1.1 <p>
788     You could check these for additional info:
789     </p>
790 swift 1.20
791 drobbins 1.1 <ul>
792 swift 1.20 <li>
793     <uri link="http://www.gentoo.org/doc/en/desktop.xml">The Gentoo Linux
794     Desktop Configuration Guide</uri>
795     </li>
796     <li>
797     <uri link="http://www.alsa-project.org">ALSA Project Homepage</uri>
798     </li>
799     <li>
800     <uri link="http://www.alsa-project.org/documentation.php3">ALSA Users
801     Documentation</uri>
802     </li>
803     <li>
804     <uri link="http://www.djcj.org">ALSA Howto's and FAQ's</uri>
805     </li>
806     <li>
807     <uri link="http://tldp.org/HOWTO/Sound-HOWTO/index.html">Linux Sound
808     HOWTO</uri>
809     </li>
810     <li>
811     <uri link="http://linux-sound.org/">Sound and MIDI Software For Linux</uri>
812     </li>
813 drobbins 1.1 </ul>
814 swift 1.20
815 drobbins 1.1 </body>
816     </section>
817     </chapter>
818     </guide>

  ViewVC Help
Powered by ViewVC 1.1.20