<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ALSA on Héctor Bautista</title><link>https://hbautista.com/tags/alsa/</link><description>Recent content in ALSA on Héctor Bautista</description><generator>Hugo -- gohugo.io</generator><language>es-ES</language><lastBuildDate>Thu, 22 Nov 2012 23:00:11 +0000</lastBuildDate><atom:link href="https://hbautista.com/tags/alsa/index.xml" rel="self" type="application/rss+xml"/><item><title>Configurar ALSA en Debian y reproducción de música en segundo plano</title><link>https://hbautista.com/p/configurar-alsa-en-debian-y-reproduccion-de-musica-en-segundo-plano/</link><pubDate>Thu, 22 Nov 2012 23:00:11 +0000</pubDate><guid>https://hbautista.com/p/configurar-alsa-en-debian-y-reproduccion-de-musica-en-segundo-plano/</guid><description>&lt;img src="https://hbautista.com/images/2012/alsaequal-1.png" alt="Featured image of post Configurar ALSA en Debian y reproducción de música en segundo plano" /&gt;&lt;p&gt;He instalado un servidor casero con Debian Squeeze, y como tal, sólo se ha instalado lo necesario para que funcione como tal, servir como servidor Web para manejar control de inventario de bienes informáticos y poco más.&lt;/p&gt;&#10;&lt;p&gt;Resulta que después de dicha instalación (aproximadamente 1 mes después) me surge la necesidad de tener una fuente de audio &amp;ldquo;permanente&amp;rdquo; para el conmutador de la empresa, es decir, el clásico sonido de música en espera cambiarlo por un archivo de audio cualquiera.&lt;/p&gt;&#10;&lt;p&gt; [Alsamixer&lt;/p&gt;&#10;&lt;p&gt;&amp;quot; data-image-caption=&amp;quot;&amp;quot; data-large-file=&amp;quot;/images/2012/alsaequal-1.png&amp;quot; class=&amp;ldquo;aligncenter size-medium wp-image-930&amp;rdquo; title=&amp;ldquo;Alsamixer&amp;rdquo; src=&amp;quot;/images/2012/alsaequal-1.png&amp;quot; alt=&amp;ldquo;Alsamixer&amp;rdquo; width=&amp;ldquo;300&amp;rdquo; height=&amp;ldquo;208&amp;rdquo; srcset=&amp;quot;/images/2012/alsaequal-1.png 300w, /images/2012/alsaequal-1.png 768w, /images/2012/alsaequal-1.png 1014w&amp;quot; sizes=&amp;ldquo;auto, (max-width: 300px) 100vw, 300px&amp;rdquo; /&amp;gt;]&lt;a class="link" href="https://hbautista.com/images/2012/alsaequal-1.png" &gt;1&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;En ese sentido, hay dos equipos que actuán de servidores en el site donde se encuentra el conmutador, pero sólo el equipo con Debian tiene tarjeta de audio, así que el otro quedó descartado.&lt;/p&gt;&#10;&lt;h2 id="manos-a-la-obra"&gt;Manos a la obra&#10;&lt;/h2&gt;&lt;p&gt;Ese pequeño servidor con Debian no tiene ambiente gráfico, se instaló (como mencioné al inicio) sólo la base y de ahí a instalar los paquetes que hicieron falta para dejarlo funcionando. Pues bien, al no instalar el ambiente gráfico no se instalaron los paquetes necesarios para que se pueda oir desde consola.&lt;/p&gt;&#10;&lt;p&gt;Checamos que estén cargados los módulos (en mi caso, sí lo estaba)&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;~# cat /proc/asound/modules&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; snd_via82xx&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Y checar qué módulos se están cargando&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# lsmod |grep snd&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;snd_via82xx &lt;span style="color:#ae81ff"&gt;15256&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gameport &lt;span style="color:#ae81ff"&gt;6061&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; snd_via82xx&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;snd_ac97_codec &lt;span style="color:#ae81ff"&gt;79136&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; snd_via82xx&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ac97_bus &lt;span style="color:#ae81ff"&gt;710&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; snd_ac97_codec&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;snd_pcm &lt;span style="color:#ae81ff"&gt;47226&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;3&lt;/span&gt; snd_via82xx,snd_ac97_codec&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;snd_page_alloc &lt;span style="color:#ae81ff"&gt;5045&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt; snd_via82xx,snd_pcm&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;snd_mpu401_uart &lt;span style="color:#ae81ff"&gt;4067&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; snd_via82xx&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;snd_seq_midi &lt;span style="color:#ae81ff"&gt;3576&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;snd_seq_midi_event &lt;span style="color:#ae81ff"&gt;3684&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; snd_seq_midi&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;snd_rawmidi &lt;span style="color:#ae81ff"&gt;12513&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt; snd_mpu401_uart,snd_seq_midi&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;snd_seq &lt;span style="color:#ae81ff"&gt;35463&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt; snd_seq_midi,snd_seq_midi_event&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;snd_timer &lt;span style="color:#ae81ff"&gt;12270&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt; snd_pcm,snd_seq&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;snd_seq_device &lt;span style="color:#ae81ff"&gt;3673&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;3&lt;/span&gt; snd_seq_midi,snd_rawmidi,snd_seq&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;snd &lt;span style="color:#ae81ff"&gt;34423&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;11&lt;/span&gt; snd_via82xx,snd_ac97_codec,snd_pcm,snd_mpu401_uart,snd_rawmidi,snd_seq,snd_timer,snd_seq_device&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;En caso de que no estén instalados los paquetes necesarios, los instalamos&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# aptitude install alsa-utils alsa-oss alsa-tools&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Bastaría realizar el paso siguiente para ya dejar funcionando la tarjeta, y no dar tantas vueltas como lo hice yo&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# alsaconf&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Sonido en Debian&lt;/p&gt;&#10;&lt;p&gt;&amp;quot; data-image-caption=&amp;quot;&amp;quot; data-large-file=&amp;quot;/images/2012/debian211-1.png&amp;quot; class=&amp;ldquo;size-medium wp-image-931 aligncenter&amp;rdquo; src=&amp;quot;/images/2012/debian211-1.png&amp;quot; alt=&amp;quot;&amp;quot; width=&amp;ldquo;300&amp;rdquo; height=&amp;ldquo;221&amp;rdquo; srcset=&amp;quot;/images/2012/debian211-1.png 300w, /images/2012/debian211-1.png 768w, /images/2012/debian211-1.png 800w&amp;quot; sizes=&amp;ldquo;auto, (max-width: 300px) 100vw, 300px&amp;rdquo; /&amp;gt;&lt;/p&gt;&#10;&lt;p&gt;El problema viene cuando vemos en la &lt;a title="Wiki Alsa Debian" href="http://wiki.debian.org/ALSA" target="_blank" rel="noopener"&gt;Wiki de ALSA en Debian &lt;/a&gt;lo siguiente:&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &#10; &lt;/blockquote&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;For release Squeeze or any later release, alsaconf is no longer available in package &lt;a title="alsa-utils" href="http://packages.debian.org/alsa-utils" target="_blank" rel="noopener"&gt;alsa-utils&lt;/a&gt;. So try to configure alsa by running the command &amp;lsquo;&lt;strong&gt;alsactl init&lt;/strong&gt;&amp;rsquo; as root. Just ignore the error message like &amp;lsquo;Unknown hardware&amp;rsquo; (this issue said to be fixed in alsa-utils .20), then reboot and try to test your sound. For more details please see this &lt;a title="Forums Debian" href="http://forums.debian.net/viewtopic.php?f=6&amp;t=39116" target="_blank" rel="noopener"&gt;thread&lt;/a&gt;.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;Así que tendremos que ejecutar lo siguiente como root:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# alsactl init&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Y con eso ya tenemos resuelto el problema de sonido, bastaría hacer una prueba colocando bocinas o auriculares y reproducir algún archivo de audio para corroborar que todo funciona bien.&lt;/p&gt;&#10;&lt;p&gt;Ahora bien, una vez que ya tengo solucionado el problema de sonido viene ver el segundo punto, dejar audio (o música) reproduciendo en dicho servidor de forma continua, es decir, que esté reproduciendo el o los archivos de audio (mp3) de forma aleatoria y sin parar.&lt;/p&gt;&#10;&lt;p&gt;Para esto usaremos dos programas, el primero es el viejo conocido mplayer(&lt;a class="link" href="http://www.mplayerhq.hu" target="_blank" rel="noopener"&#10; &gt;http://www.mplayerhq.hu&lt;/a&gt;) que me servirá para reproducir archivos de audio.&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ mplayer &lt;span style="color:#e6db74"&gt;&amp;#34;01 Diablo.mp3&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Con esto hacemos una prueba simple de reproducción.&lt;/p&gt;&#10;&lt;p&gt;Si tenemos varios archivos, el comando sería el siguiente:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ mplayer *.mp3&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Si queremos que la reproducción se repita como en un bucle, usamos la opción -loop indicando con un número las veces que queremos que se repita:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ mplayer &lt;span style="color:#e6db74"&gt;&amp;#34;03 Elysium.mp3&amp;#34;&lt;/span&gt; -loop &lt;span style="color:#ae81ff"&gt;5&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Con eso logramos que se repita 5 veces, pero si queremos que sea indefinido, es decir, hasta que nosotros lo cancelemos, sería:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ mplayer &lt;span style="color:#e6db74"&gt;&amp;#34;03 Elysium.mp3&amp;#34;&lt;/span&gt; -loop &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ya avanzamos, ahora la idea es tener varios archivos que se reproduzcan de forma indefinida pero también de forma aleatoria, para lograr esto último, usamos la opción -shuffle:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ mplayer -shuffle -loop &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; *.mp3&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;En este caso, tengo un directorio llamado &amp;ldquo;bond&amp;rdquo; con unos 15 archivos mp3 que quiero que se reproduzcan de forma aleatoria y que se repitan indefinidamente, pero además que si cierro sesión via tty1, putty o ssh, el comando se siga ejecutando en segundo plano. En este caso nohup(&lt;a class="link" href="http://rm-rf.es/nohup-mantiene-ejecucion-comando-pese-salir-terminal/" target="_blank" rel="noopener"&#10; &gt;http://rm-rf.es/nohup-mantiene-ejecucion-comando-pese-salir-terminal/&lt;/a&gt;) es nuestro amigo ñ_ñ&lt;/p&gt;&#10;&lt;p&gt;Quedando el comando final de la siguiente forma:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hbautista@war-machine:~$ nohup mplayer -shuffle -loop &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; bond/*.mp3 &amp;amp;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Y con esto logramos el cometido: Reproducir de forma aleatoria y de forma indefinida los archivos .mp3 que se encuentren en el directorio bond dentro de la carpeta del usuario, lo haga en segundo plano aún si dicho usuario cierra sesión.&lt;/p&gt;&#10;</description></item></channel></rss>