/[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.52 - (hide annotations) (download) (as text)
Tue Jun 7 06:25:11 2005 UTC (9 years, 4 months ago) by fox2mike
Branch: MAIN
Changes since 1.51: +3 -2 lines
File MIME type: application/xml
Updated email for fox2mike

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

  ViewVC Help
Powered by ViewVC 1.1.20