/[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.54 - (show annotations) (download) (as text)
Tue Jul 12 19:17:38 2005 UTC (9 years, 3 months ago) by fox2mike
Branch: MAIN
Changes since 1.53: +136 -38 lines
File MIME type: application/xml
#95574, #98429 - Updates + Fixes to the guide. Added sections on the Audio Group and more info regarding USB + ISA sound cards. #92711 went to RESO FIXED, so genkernel information was updated to reflect the corresponding changes. Thanks to Daniel Drake(dsd), Arun Raghavan (for ISA input), Miles Lubin, Jason Bucata, Deathwing00, alin, rane, LinuxBlues on  IRC for helping with proofing and corrections.

1 <?xml version='1.0' encoding="UTF-8"?>
2 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/alsa-guide.xml,v 1.53 2005/06/08 19:54:07 fox2mike Exp $ -->
3
4 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
5
6 <guide link="/doc/en/alsa-guide.xml">
7 <title>Gentoo Linux ALSA Guide</title>
8
9 <author title="Author">
10 <mail link="fox2mike@gentoo.org">Shyam Mani</mail>
11 </author>
12
13 <abstract>
14 This document helps a user setup ALSA on Gentoo Linux.
15 </abstract>
16
17 <!-- The content of this document is licensed under the CC-BY-SA license -->
18 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
19 <license/>
20
21 <version>2.3</version>
22 <date>2005-07-12</date>
23
24 <chapter>
25 <title>Introduction</title>
26 <section>
27 <title>What is ALSA?</title>
28 <body>
29
30 <p>
31 ALSA, which stands for <e>Advanced Linux Sound Architecture</e>, provides
32 audio and MIDI (<e>Musical Instrument Digital Interface</e>) functionality to
33 the Linux operating system. ALSA is the default sound subsystem in the 2.6
34 kernel thereby replacing OSS (<e>Open Sound System</e>), which was used in the
35 2.4 kernels.
36 </p>
37
38 <p>
39 ALSA's main features include efficient support for all types of audio
40 interfaces ranging from consumer sound cards to professional sound
41 equipment, fully modularized drivers, SMP and thread safety, backward
42 compatibility with OSS and a user-space library <c>alsa-lib</c> to make
43 application development a breeze.
44 </p>
45
46 </body>
47 </section>
48 <section>
49 <title>ALSA on Gentoo</title>
50 <body>
51
52 <p>
53 One of Gentoo's main strengths lies in giving the user maximum control over
54 how a system is installed/configured. ALSA on Gentoo follows the same
55 principle. There are two ways you can get ALSA support up and running on your
56 system. We shall look at them in detail in the next chapter.
57 </p>
58
59 </body>
60 </section>
61 </chapter>
62
63 <chapter>
64 <title>Installing ALSA</title>
65 <section>
66 <title>Options</title>
67 <body>
68
69 <warn>
70 The methods shown below are mutually exclusive. You cannot have ALSA compiled
71 in your kernel and use <c>media-sound/alsa-driver</c>. It <e>will</e> fail.
72 </warn>
73
74 <p>
75 The two options are :
76 </p>
77
78 <ol>
79 <li>
80 Use ALSA provided by your kernel. This is the preferred/recommended
81 method.
82 </li>
83 <li>
84 Use Gentoo's <c>media-sound/alsa-driver</c> package.
85 </li>
86 </ol>
87
88 <p>
89 We shall take a peek into both before finally deciding on one.
90 </p>
91
92 <p>
93 If you were to use ALSA provided by the kernel, the following are the pros and
94 cons :
95 </p>
96
97 <table>
98 <tr>
99 <th>Kernel ALSA</th>
100 <th>Pros and Cons</th>
101 </tr>
102 <tr>
103 <th>+</th>
104 <ti>Pretty stable as drivers are integrated into kernel.</ti>
105 </tr>
106 <tr>
107 <th>+</th>
108 <ti>One shot solution, no repeating emerges.</ti>
109 </tr>
110 <tr>
111 <th>-</th>
112 <ti>Might be a slightly older version than <c>alsa-driver</c>.</ti>
113 </tr>
114 </table>
115
116 <p>
117 And, if you were to use alsa-driver,
118 </p>
119
120 <table>
121 <tr>
122 <th>alsa-driver</th>
123 <th>Pros and Cons</th>
124 </tr>
125 <tr>
126 <th>+</th>
127 <ti>Latest drivers from the ALSA Project.</ti>
128 </tr>
129 <tr>
130 <th>-</th>
131 <ti>Every kernel recompile requires a re-emerge of <c>alsa-driver</c>.</ti>
132 </tr>
133 <tr>
134 <th>-</th>
135 <ti>Needs certain kernel config options disabled to work correctly.</ti>
136 </tr>
137 </table>
138
139 </body>
140 </section>
141 <section>
142 <title>So...</title>
143 <body>
144
145 <p>
146 The main difference between using <c>alsa-driver</c> and ALSA that comes with
147 the kernel is that <c>alsa-driver</c> is generally more up to date than the
148 version in the kernel. Since this does not make any huge difference as
149 such, you are encouraged to use the ALSA provided by the kernel.
150 </p>
151
152 </body>
153 </section>
154 <section id="lspci">
155 <title>Before you proceed</title>
156 <body>
157
158 <p>
159 Whichever method of install you choose, you need to know what drivers your
160 sound card uses. In most cases, sound cards (onboard and otherwise) are PCI
161 based and <c>lspci</c> will help you in digging out the required information.
162 Please <c>emerge sys-apps/pciutils</c> to get <c>lspci</c>, if you don't have it
163 installed already. In case you have a USB sound card, <c>lsusb</c> from
164 <c>sys-apps/usbutils</c> <e>might</e> be of help. For ISA cards, try using
165 <c>sys-apps/isapnptools</c>. Also, the following pages <e>may</e> help users
166 with ISA based sound cards.
167 </p>
168
169 <ul>
170 <li>
171 <uri link="http://www.roestock.demon.co.uk/isapnptools/">The ISAPNPTOOLS
172 Page</uri>
173 </li>
174 <li>
175 <uri link="http://www2.linuxjournal.com/article/3269">LinuxJournal PnP
176 Article</uri>
177 </li>
178 <li>
179 <uri link="http://www.tldp.org/HOWTO/Sound-HOWTO/x320.html">TLDP Sound
180 HowTo</uri>
181 </li>
182 </ul>
183
184 <note>
185 For ease of use/explanation, we assume the user has a PCI based sound card for
186 the remainder of this guide.
187 </note>
188
189 <p>
190 We now proceed to find out details about the sound card.
191 </p>
192
193 <pre caption="Soundcard Details">
194 # <i>lspci -v | grep -i audio</i>
195 0000:00:0a.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 06)
196 </pre>
197
198 <p>
199 We now know that the sound card on the machine is a Sound Blaster Live! and
200 the card manufacturer is Creative Labs. Head over to the
201 <uri link="http://www.alsa-project.org/alsa-doc/"> ALSA Soundcard Matrix</uri>
202 page and select Creative Labs from the drop down menu. You will be taken to
203 the Creative Labs matrix page where you can see that the SB Live! uses the
204 <c>emu10k1</c> module. That is the information we need for now. If you are
205 interested in detailed information, you can click on the link next to the
206 "Details" and that will take you to the <c>emu10k1</c> specific page.
207 </p>
208
209 </body>
210 </section>
211 <section id="kernel">
212 <title>Using ALSA provided by your Kernel</title>
213 <body>
214
215 <p>
216 If you're a person who likes to keep things simple like I do, then this is
217 the way to go.
218 </p>
219
220 <note>
221 Since the 2005.0 release, Gentoo Linux uses 2.6 as the default kernel. Unless
222 you are specifically using the 2.4 profile, <c>gentoo-sources</c> will be a
223 2.6 kernel on <e>most</e> architectures. Please check that your kernel is a
224 2.6 series kernel. This method will <e>not</e> work on a 2.4 kernel.
225 </note>
226
227 <p>
228 Let us now configure the kernel to enable ALSA.
229 </p>
230
231 <impo>
232 <c>genkernel</c> users should now run <c>genkernel --menuconfig</c> and then follow
233 the instructions in <uri link="#doc_chap2_pre3">Kernel Options for ALSA</uri>.
234 </impo>
235
236 <pre caption="Heading over to the source">
237 # <i>cd /usr/src/linux</i>
238 # <i>make menuconfig</i>
239 </pre>
240
241 <note>
242 The above example assumes that <path>/usr/src/linux</path> symlink points to
243 the kernel sources you want to use. Please ensure the same before proceeding.
244 </note>
245
246 <p>
247 Now we will look at some of the options we will have to enable in the 2.6
248 kernel to ensure proper ALSA support for our sound card.
249 </p>
250
251 <p>
252 Please note that for the sake of ease, all examples show ALSA built as modules.
253 It is advisable to follow the same as it then allows the use of <c>alsaconf</c>
254 which is a boon when you want to configure your card. Please do <e>not</e> skip the <uri
255 link="#alsa-config">Configuration</uri> section of this document. If you still
256 like to have options built-in, ensure that you make changes to your config
257 accordingly.
258 </p>
259
260 <pre caption="Kernel Options for ALSA">
261 Device Drivers ---&gt;
262 Sound ---&gt;
263
264 <comment>(This needs to be enabled)</comment>
265 &lt;M&gt; Sound card support
266
267 <comment>(Make sure OSS is disabled)</comment>
268 Open Sound System ---&gt;
269 &lt; &gt; Open Sound System (DEPRECATED)
270
271 <comment>(Move one step back and enter ALSA)</comment>
272 Advanced Linux Sound Architecture ---&gt;
273 &lt;M&gt; Advanced Linux Sound Architecture
274 <comment>(Select this if you want MIDI sequencing and routing)</comment>
275 &lt;M&gt; Sequencer support
276 <comment>(Old style /dev/mixer* and /dev/dsp* support. Recommended.)</comment>
277 &lt;M&gt; OSS Mixer API
278 &lt;M&gt; OSS PCM (digital audio) API
279
280 <comment>(You now have a choice of devices to enable support for. Generally,
281 you will have one type of device and not more. If you have more than one
282 sound card, please enable them all here.)</comment>
283
284 <comment>(Mostly for testing and development purposes, not needed for normal
285 users unless you know what you are doing.)</comment>
286 Generic devices ---&gt;
287
288 <comment>(For ISA Sound cards)</comment>
289 ISA devices ---&gt;
290 <comment>(IF you had the Gravis, you would select this option)</comment>
291 &lt;M&gt; Gravis UltraSound Extreme
292
293 <comment>(Move one level back and into PCI devices. Most sound cards today are
294 PCI devices)</comment>
295 PCI devices ---&gt;
296 <comment>(We now select the emu10k1 driver for our card)</comment>
297 &lt;M&gt; Emu10k1 (SB Live!, Audigy, E-mu APS)
298 <comment>(Or an Intel card would be)</comment>
299 &lt;M&gt; Intel/SiS/nVidia/AMD/ALi AC97 Controller
300 <comment>(Or if you have a VIA Card)</comment>
301 &lt;M&gt; VIA 82C686A/B, 8233/8235 AC97 Controller
302
303 <comment>(Move one level back and select in case you have an USB sound card)</comment>
304 USB Devices ---&gt;
305 </pre>
306
307 <p>
308 Now that your options are set, you can (re)compile the kernel and ALSA support
309 for your card should be functional once you reboot into the new kernel.
310 You can now proceed to <uri link="#alsa-utilities">ALSA Utilities</uri> and
311 see if everything is working as it should.
312 </p>
313
314 </body>
315 </section>
316 <section id="alsa-driver">
317 <title>Using the ALSA Driver package</title>
318 <body>
319
320 <p>
321 So you've decided to go the <c>alsa-driver</c> way. Let's get started then.
322 There are a few minor things to be done to ensure only the drivers for your
323 sound card are compiled. Although this is not really necessary, it cuts down
324 on the unnecessary drivers that will be compiled otherwise.
325 </p>
326
327 <p>
328 If you don't have an idea of what drivers your sound card might need, please
329 take a look at the <uri link="#lspci">lspci</uri> section of this guide. Once
330 you have your driver name (<c>emu10k1</c> in our example), edit
331 <path>/etc/make.conf</path> and add a variable, <c>ALSA_CARDS</c>.
332 </p>
333
334 <pre caption="Adding ALSA_CARDS to make.conf">
335 <comment>(For one sound card)</comment>
336 ALSA_CARDS="emu10k1"
337 <comment>(For more than one, seperate names with spaces)</comment>
338 ALSA_CARDS="emu10k1 via82xx"
339 </pre>
340
341 <p>
342 If you have compiled your kernel and want to use <c>alsa-driver</c>, please
343 ensure the following before proceeding, else <c>alsa-driver</c> is likely to
344 fail. The next code listing gives you one way of performing the checks.
345 </p>
346
347 <note>
348 <c>genkernel</c> users can proceed with <uri link="#doc_chap2_pre6">Installing
349 alsa-driver</uri> as their configuration is in sync with the one shown below by
350 default.
351 </note>
352
353 <ol>
354 <li>
355 <c>CONFIG_SOUND</c> is set. (Basic Sound support enabled)
356 </li>
357 <li>
358 <c>CONFIG_SOUND_PRIME</c> is not set. (In-built OSS support disabled)
359 </li>
360 <li>
361 <c>CONFIG_SND</c> is not set. (In-built ALSA support disabled)
362 </li>
363 <li>
364 <path>/usr/src/linux</path> points to the kernel you want ALSA working on.
365 </li>
366 </ol>
367
368 <pre caption=".config checks">
369 <comment>(Assuming the linux symlink points to the correct kernel)</comment>
370 # <i>cd /usr/src/linux</i>
371 # <i>grep SOUND .config</i>
372 <comment>(1. is true)</comment>
373 CONFIG_SOUND=y
374 <comment>(2. is true)</comment>
375 CONFIG_SOUND_PRIME is not set
376 # <i>grep SND .config</i>
377 <comment>(and 3. is true)</comment>
378 CONFIG_SND is not set
379 </pre>
380
381 <p>
382 Now all you have to do is type the magic words... and no, it's not abracadabra.
383 </p>
384
385 <pre caption="Installing alsa-driver">
386 # <i>emerge alsa-driver</i>
387 </pre>
388
389 <impo>
390 Please note that you will have to run <c>emerge alsa-driver</c> after every
391 kernel (re)compile, as the earlier drivers are deleted.
392 </impo>
393
394 </body>
395 </section>
396 </chapter>
397
398 <chapter>
399 <title>Configuring/Testing ALSA</title>
400 <section id="alsa-utilities">
401 <title>ALSA Utilities</title>
402 <body>
403
404 <p>
405 <c>alsa-utils</c> forms an integral part of ALSA as it has a truckload of
406 programs that are highly useful, including the ALSA Initscripts. Hence we
407 strongly recommend that you install <c>alsa-utils</c>
408 </p>
409
410 <pre caption="Install alsa-utils">
411 # <i>emerge alsa-utils</i>
412 </pre>
413
414 <note>
415 If you activated ALSA in your <uri link="#kernel">kernel</uri> <e>and</e> did
416 not compile ALSA as modules, please proceed to the
417 <uri link="#initscript">ALSA Initscript</uri> section. The rest of you need
418 to configure ALSA. This is made very easy by the existence of the
419 <c>alsaconf</c> tool provided by <c>alsa-utils</c>.
420 </note>
421
422 </body>
423 </section>
424 <section id="alsa-config">
425 <title>Configuration</title>
426 <body>
427
428 <note>
429 Please shut down any programs that <e>might</e> access the sound card while
430 running <c>alsaconf</c>.
431 </note>
432
433 <p>
434 The easiest way to configure your sound card is to run <c>alsaconf</c>. Just
435 type <c>alsaconf</c> in a shell as root.
436 </p>
437
438 <pre caption="Invoking alsaconf">
439 # <i>alsaconf</i>
440 </pre>
441
442 <p>
443 You will now see a neat menu guided interface that will automatically probe
444 your devices and try to find out your sound card. You will be asked to pick
445 your sound card from a list. Once that's done, it will ask you permission to
446 automatically make required changes to <path>/etc/modules.d/alsa</path>.
447 It will then adjust your volume settings to optimum levels, run
448 <c>modules-update</c> and start the <path>/etc/init.d/alsasound</path> service.
449 Once <c>alsaconf</c> exits, you can proceed with setting up the ALSA initscript.
450 </p>
451
452 </body>
453 </section>
454 <section id="initscript">
455 <title>ALSA Initscript</title>
456 <body>
457
458 <p>
459 We're now almost all setup. Whichever method you chose to install ALSA, you'll
460 need to have something load your modules or initialize ALSA and restore your
461 volume settings when your system comes up. The ALSA Initscript handles all of
462 this for you and is called <c>alsasound</c>. Add it to the default run-level.
463 </p>
464
465 <pre caption="Adding ALSA to default">
466 # <i>rc-update add alsasound boot</i>
467 * alsasound added to runlevel boot
468 * rc-update complete.
469 </pre>
470
471 <p>
472 Next, just check the <path>/etc/conf.d/alsasound</path> file and ensure that
473 SAVE_ON_STOP variable is set to yes. This saves your sound settings when you
474 shutdown your system.
475 </p>
476
477 </body>
478 </section>
479 <section>
480 <title>Audio Group</title>
481 <body>
482
483 <p>
484 Before we move on to testing, there's one last <e>important</e> thing that needs
485 to be setup. Rule of thumb in a *nix OS : Do not run as root unless needed.
486 This applies here as well ;) How? Well, most of the times you should be logged
487 in as a user and would like to listen to music or access your soundcard. For
488 that to happen, you need to be in the "audio" group. At this point, we'll add
489 users to the audio group, so that they won't have any issues when they want to
490 access sound devices. We'll use <c>gpasswd</c> here and you need to be logged in
491 as root for this to work.
492 </p>
493
494 <pre caption="Adding users to the audio group">
495 <comment>(Substitute &lt;username&gt; with your user)</comment>
496 # <i>gpasswd -a &lt;username&gt; audio </i>
497 Adding user &lt;username&gt; to group audio
498 </pre>
499
500 </body>
501 </section>
502 <section>
503 <title>Volume Check!</title>
504 <body>
505
506 <p>
507 We've completed all the setups and pre-requisites, so let's fire up ALSA. If
508 you ran <c>alsaconf</c>, you can skip this step, since <c>alsaconf</c> already
509 does this for you.
510 </p>
511
512 <pre caption="Start the service">
513 <comment>(ALSA as modules)</comment>
514 # <i>/etc/init.d/alsasound start</i>
515 * Loading ALSA modules ...
516 * Loading: snd-card-0 ... [ ok ]
517 * Loading: snd-pcm-oss ... [ ok ]
518 * Loading: snd-seq ... [ ok ]
519 * Loading: snd-emu10k1-synth ... [ ok ]
520 * Loading: snd-seq-midi ... [ ok ]
521 * Restoring Mixer Levels ... [ ok ]
522 <comment>(ALSA compiled in)</comment>
523 # <i>/etc/init.d/alsasound start</i>
524 * Loading ALSA modules ...
525 * Restoring Mixer Levels ... [ ok ]
526 </pre>
527
528 <p>
529 Now that the required things have been taken care of, we need to check up on
530 the volume as in certain cases, it is muted. We use <c>alsamixer</c> for this
531 purpose.
532 </p>
533
534 <pre caption="Starting alsamixer">
535 <comment>(Opens up a console program. Only required settings are shown)</comment>
536 # <i>alsamixer</i>
537 </pre>
538
539 <impo>
540 If you have issues starting up <c>alsamixer</c> and get errors such as
541 alsamixer: function snd_ctl_open failed for default: No such file or directory,
542 this is usually an issue with udev setting up the devices. Run <c>killall -9
543 udevd; udevstart</c> to reload /dev entries and fire up <c>alsamixer</c>. It
544 should solve the issue.
545 </impo>
546
547 <p>
548 This is how the ALSA Mixer <e>might</e> look the first time you open it. Pay
549 attention to the Master and PCM channels which both have an MM below them.
550 That means they are muted. If you try to play anything with <c>alsamixer</c>
551 in this state, you will not hear anything on your speakers.
552 </p>
553
554 <figure link="/images/docs/alsa-mixermuted.png" short="AlsaMixer Muted" caption="The Alsa Mixer Main Window, Muted"/>
555
556 <p>
557 Now, we shall unmute the channels, and set volume levels as needed.
558 </p>
559
560 <warn>
561 Both Master <e>and</e> PCM need to be unmuted and set to audible volume levels
562 if you want to hear some output on your speakers.
563 </warn>
564
565 <ul>
566 <li>
567 To move between channels, use your left and right arrow keys. (&lt;-
568 &amp; -&gt;)
569 </li>
570 <li>
571 To toggle mute, move to the specific channel, for example Master and press
572 the <e>m</e> key on the keyboard.
573 </li>
574 <li>
575 To increase and decrease the volume levels, use the up and down arrow keys
576 respectively.
577 </li>
578 </ul>
579
580 <note>
581 Be careful when setting your Bass and Treble values. 50 is usually a good
582 number for both. Extremely high values of Bass may cause <e>jarring</e>
583 on speakers that are not designed to handle them.
584 </note>
585
586 <p>
587 After you're all done, your ALSA Mixer should look similar to the one below.
588 Note the 00 instead of the MM and also the volume levels for some optimum
589 settings.
590 </p>
591
592 <figure link="/images/docs/alsa-mixerunmuted.png" short="AlsaMixer Unmuted" caption="Alsa Mixer ready to roll"/>
593
594 </body>
595 </section>
596 <section>
597 <title>Sound Check!</title>
598 <body>
599
600 <p>
601 The irritating way to check your soundcard is to see if you can hear static on
602 the speakers. This isn't exactly fun, but hey, it tells you the card is
603 configured and working.
604 </p>
605
606 <pre caption="Bring on th static">
607 # <i>cat /dev/urandom > /dev/dsp</i>
608 </pre>
609
610 <note>
611 <path>/dev/dsp</path> is a symlink to <path>/dev/sound/dsp</path> and should be
612 automatically created. Try re-directing the output to
613 <path>/dev/sound/dsp</path> in case you don't get a "No such file or directory"
614 error.
615 </note>
616
617 <p>
618 You should hear static. Press <c>Ctrl + C</c> to stop. If you don't hear
619 anything, now is a good time to go back and check/trace out the issue and
620 rectify it.
621 </p>
622
623 <p>
624 Finally. Some music. If everything above is perfect, you should now be able to
625 listen to some good music. A quick way to test is to use a command line tool
626 like <c>media-sound/madplay</c>. You could also use something more well known
627 like <c>mpg123</c> or <c>xmms</c>. If you are an ogg fan, you could use
628 <c>ogg123</c> provided by <c>media-sound/vorbis-tools</c>. Use any player you
629 are comfortable with. As always, <c>emerge</c> what you need.
630 </p>
631
632 <pre caption="Getting the software">
633 <comment>(Install the applications you want)</comment>
634 # <i>emerge madplay mpg123 xmms</i>
635 <comment>(To play .ogg files)</comment>
636 # <i>emerge vorbis-tools</i>
637 </pre>
638
639 <p>
640 And then play your favorite sound track...
641 </p>
642
643 <pre caption="Playing Music">
644 # <i>madplay -v /mnt/shyam/Music/Paul\ Oakenfold\ -\ Dread\ Rock.mp3</i>
645 MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.
646 Title: Dread Rock
647 Artist: Paul Oakenfold
648 Album: Matrix Reloaded
649 Year: 2003
650 Genre: Soundtrack
651 Soundtrack
652 00:04:19 Layer III, 160 kbps, 44100 Hz, joint stereo (MS), no CRC
653
654 # <i>ogg123 Paul\ Oakenfold\ -\ Dread\ Rock.ogg</i>
655 Audio Device: Advanced Linux Sound Architecture (ALSA) output
656
657 Playing: Paul Oakenfold - Dread Rock.ogg
658 Ogg Vorbis stream: 2 channel, 44100 Hz
659 Genre: Soundtrack
660 Transcoded: mp3;160
661 Title: Dread Rock
662 Artist: Paul Oakenfold
663 Date: 2003
664 Album: Matrix Reloaded
665 Time: 00:11.31 [04:28.75] of 04:40.06 (200.6 kbps) Output Buffer 96.9%
666 </pre>
667
668 </body>
669 </section>
670 <section>
671 <title> ALSA and USE</title>
672 <body>
673
674 <p>
675 You can now add the <c>alsa</c> use flag to <path>/etc/make.conf</path> to
676 ensure that your applications that support ALSA get built with it. Some
677 architectures like x86 and amd64 have the flag enabled by default.
678 </p>
679
680 </body>
681 </section>
682 <section>
683 <title>Issues?</title>
684 <body>
685
686 <p>
687 If for some reason you're unable to hear sound, the first thing to do would
688 be to check your <uri link="#doc_chap3_pre6">alsamixer</uri> settings. 80% of
689 the issues lie with muted channels or low volume. Also check your Window
690 Manager's sound applet and verify that volumes are set to audible levels.
691 </p>
692
693 <p>
694 <path>/proc</path> is your friend. And in this case, <path>/proc/asound</path>
695 is your best friend. We shall just take a short look at how much info is made
696 available to us there.
697 </p>
698
699 <pre caption="Fun with /proc/asound">
700 <comment>(First and foremost, if /proc/asound/cards shows your card, ALSA has
701 picked up your sound card fine.)</comment>
702 # <i>cat /proc/asound/cards</i>
703 0 [Live ]: EMU10K1 - Sound Blaster Live!
704 Sound Blaster Live! (rev.6, serial:0x80271102) at 0xb800, irq 11
705
706 <comment>(If you run ALSA off the kernel like I do and wonder how far behind
707 you are from alsa-driver, this displays current running ALSA version)</comment>
708 # <i>cat /proc/asound/version</i>
709 Advanced Linux Sound Architecture Driver Version 1.0.8 (Thu Jan 13 09:39:32 2005 UTC).
710
711 <comment>(ALSA OSS emulation details)</comment>
712 # <i>cat /proc/asound/oss/sndstat</i>
713 Sound Driver:3.8.1a-980706 (ALSA v1.0.8 emulation code)
714 Kernel: Linux airwolf.zion 2.6.11ac1 #2 Wed May 4 00:35:08 IST 2005 i686
715 Config options: 0
716
717 Installed drivers:
718 Type 10: ALSA emulation
719
720 Card config:
721 Sound Blaster Live! (rev.6, serial:0x80271102) at 0xb800, irq 11
722
723 Audio devices:
724 0: EMU10K1 (DUPLEX)
725
726 Synth devices: NOT ENABLED IN CONFIG
727
728 Midi devices:
729 0: EMU10K1 MPU-401 (UART)
730
731 Timers:
732 7: system timer
733
734 Mixers:
735 0: SigmaTel STAC9721/23
736 </pre>
737
738 </body>
739 </section>
740 </chapter>
741
742 <chapter>
743 <title>Other things ALSA</title>
744 <section>
745 <title>Setting up MIDI support</title>
746 <body>
747
748 <p>
749 If your sound card is one of those that come with on-board MIDI synthesizers
750 and you would like to listen to some .mid files, you have to install
751 <c>awesfx</c> which is basically a set of utilities for controlling the AWE32
752 driver. We need to install it first. If you don't have a hardware synthesizer,
753 you can use a virtual one. Please see the section on
754 <uri link="#vsynth">Virtual Synthesizers</uri> for more information.
755 </p>
756
757 <pre caption="Installing awesfx">
758 # <i>emerge awesfx</i>
759 </pre>
760
761 <note>
762 You will need to copy over SoundFont (SF2) files from your sound card's driver
763 CD or a Windows installation into <path>/usr/share/sounds/sf2/</path>. For
764 example a sound font file for the Creative SBLive! card would be 8MBGMSFX.SF2.
765 </note>
766
767 <p>
768 After copying over the Soundfont files, we can then play a midi file as shown.
769 You can also add the <c>asfxload</c> command to
770 <path>/etc/conf.d/local.start</path>, so that the sound font is loaded
771 every time the system starts up.
772 </p>
773
774 <note>
775 <path>/mnt</path> paths mentioned in the code listing(s) below will <e>not</e>
776 be the same in your machine. They are just an example. Please be careful to
777 change the path to suit your machine.
778 </note>
779
780 <pre caption="Loading Soundfonts">
781 <comment>(First, copy the Soundfont)</comment>
782 # <i>cp /mnt/win2k/Program\ Files/CreativeSBLive2k/SFBank/8MBGMSFX.SF2 /usr/share/sounds/sf2/</i>
783 <comment>(We load the specific Soundfont)</comment>
784 # <i>asfxload /usr/share/sounds/sf2/8MBGMSFX.SF2</i>
785 </pre>
786
787 <p>
788 You can now play midi files using a program like <c>aplaymidi</c>. Run
789 <c>aplaymidi -l</c> to get a list of available ports and then pick one
790 to play the file on.
791 </p>
792
793 <pre caption="Playing MIDI">
794 <comment>(Check open ports)</comment>
795 # <i>aplaymidi -l</i>
796 Port Client name Port name
797 64:0 EMU10K1 MPU-401 (UART) EMU10K1 MPU-401 (UART)
798 65:0 Emu10k1 WaveTable Emu10k1 Port 0
799 65:1 Emu10k1 WaveTable Emu10k1 Port 1
800 65:2 Emu10k1 WaveTable Emu10k1 Port 2
801 65:3 Emu10k1 WaveTable Emu10k1 Port 3
802 <comment>(Pick a port, and play a mid file)</comment>
803 # <i> aplaymidi --port=65:0 /mnt/shyam/music/midi/mi2.mid</i>
804 </pre>
805
806 </body>
807 </section>
808 <section id="vsynth">
809 <title>Virtual Synthesizers</title>
810 <body>
811
812 <p>
813 If your sound card lacks a hardware synthesizer, you could use a virtual one
814 like <c>timidity++</c>. Installation is a breeze.
815 </p>
816
817 <pre caption="Installing timidity++">
818 # <i>emerge timidity++</i>
819 </pre>
820
821 <p>
822 For timidity to play sounds, it needs a sound font. If you do not have any,
823 install <c>timidity-eawpatches</c> or <c>timidity-shompatches</c> which will
824 give you some sound fonts. You can have multiple sound font configurations
825 installed, and you can place your own in <path>/usr/share/timidity/</path>.
826 To switch between different timidity configurations, you should use the
827 <c>timidity-update</c> tool provided in the timidity++ package.
828 </p>
829
830 <pre caption="Installing sound fonts">
831 # <i>emerge timidity-eawpatches</i>
832 # <i>timidity-update -g -s eawpatches</i>
833
834 <comment>(or)</comment>
835
836 # <i>emerge timidity-shompatches</i>
837 # <i>timidity-update -g -s shompatches</i>
838 </pre>
839
840 <p>
841 Don't forget to add <c>timidity</c> to the default runlevel.
842 </p>
843
844 <pre caption="Adding timidity to the default runlevel">
845 # <i>rc-update add timidity default</i>
846 # <i>/etc/init.d/timidity start</i>
847 </pre>
848
849 <p>
850 You can now try out <uri link="#doc_chap4_pre3">Playing MIDI</uri> files.
851 </p>
852
853 </body>
854 </section>
855 <section>
856 <title>Tools and Firmware</title>
857 <body>
858
859 <p>
860 Some specific sound cards can benefit from certain tools provided by the
861 <c>alsa-tools</c> and <c>alsa-firmware</c> packages. If you need
862 <c>alsa-tools</c>, be sure to define the ALSA_TOOLS variable in
863 <path>/etc/make.conf</path> with the tools you require. For instance:
864 </p>
865
866 <pre caption="Selecting ALSA Tools in /etc/make.conf">
867 ALSA_TOOLS="as10k1 ac3dec"
868 </pre>
869
870 <p>
871 If the ALSA_TOOLS variable is not set, all available tools will be built.
872 Now, install the <c>alsa-tools</c> (and/or <c>alsa-firmware</c>) package(s):
873 </p>
874
875 <pre caption="Installing ALSA Tools">
876 # <i>emerge alsa-tools</i>
877 </pre>
878
879 </body>
880 </section>
881 <section>
882 <title>A Big thank you to...</title>
883 <body>
884
885 <p>
886 Everyone who contributed to the earlier version of the Gentoo ALSA Guide:
887 Vincent Verleye, Grant Goodyear, Arcady Genkin, Jeremy Huddleston,
888 John P. Davis, Sven Vermeulen, Benny Chuang, Tiemo Kieft and Erwin.
889 </p>
890
891 </body>
892 </section>
893 <section>
894 <title>References</title>
895 <body>
896
897 <ul>
898 <li><uri link="http://www.alsa-project.org/">The ALSA Project</uri></li>
899 <li><uri link="http://linux-sound.org">Linux Sound/MIDI Software</uri></li>
900 </ul>
901
902 </body>
903 </section>
904 </chapter>
905 </guide>

  ViewVC Help
Powered by ViewVC 1.1.20