/[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.51 - (hide annotations) (download) (as text)
Mon Jun 6 20:23:12 2005 UTC (9 years, 10 months ago) by fox2mike
Branch: MAIN
Changes since 1.50: +561 -268 lines
File MIME type: application/xml
#92622, New Updated ALSA Guide

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

  ViewVC Help
Powered by ViewVC 1.1.20