<!--
     The FreeBSD Documentation Project

     $FreeBSD$
-->

<chapter id="sound">
  <chapterinfo>
    <authorgroup>
      <author>
        <firstname>Moses</firstname>
	<surname>Moore</surname>
	<contrib>Contributed by </contrib>
      </author>
    </authorgroup>
    <!-- 20 November 2000 -->
  </chapterinfo>

  <title>Sonido</title>

  <sect1>
    <title>Sin&oacute;psis</title>

    <para>FreeBSD soporta una amplia variedad de tarjetas de sonido,
      lo que permite disfrutar de sonido de alta fidelidad en su 
      sistema. &Eacute;sto incluye la posibilidad de grabar y reproducir 
      archivos de audio tanto en los formatos MPEG Audio Layer 3 
      (MP3), WAV y Ogg Vorbis, así como muchos otros.
      La Colecci&oacute;n de Ports de FreeBSD contiene tambi&eacute;n aplicaciones
      que le permitir&aacute;n editar audio previamente grabado, añadir efectos
      de sonido y controlar dispositivos MIDI.</para>
    
    <para>Tras leer &eacute;ste cap&iacute;tulo usted deber&iacute;a saber:</para>
    <itemizedlist>
      <listitem><para>C&oacute;mo identificar su tarjeta de sonido</para></listitem>
      <listitem><para>C&oacute;mo configurar su sistema de modo que su tarjeta 
      de sonido sea reconocida.</para></listitem> 
      <listitem><para>Confirmar el funcionamiento de su tarjeta usando
      herramientas de muestreo.</para></listitem>
      <listitem><para>C&oacute;mo enfrentarse a problemas de configuraci&oacute;n de sonido.</para></listitem>

      <listitem><para>C&oacute;mo reproducir y crear archivos MP3.</para></listitem>
      <listitem><para>C&oacute;mo convertir pistas de audio CD en archivos de datos.</para></listitem>
    </itemizedlist>

    <para>Antes de leer &eacute;ste cap&iacute;tulo deber&iacute;a:</para>

    <itemizedlist>
      <listitem><para>Saber configurar e instalar un nuevo kernel (<xref
        linkend="kernelconfig">).</para></listitem>
    </itemizedlist>
  </sect1>

  <sect1>
    <title>Identificar el Dispositivo Correcto</title>

    <indexterm><primary>PCI</primary></indexterm>
    <indexterm><primary>ISA</primary></indexterm>
    <indexterm><primary>tarjetas de sonido</primary></indexterm>
    <para>Antes de empezar, deber&iacute;a conocer el modelo de su tarjeta,
      el chip que usa y si es PCI o ISA. FreeBSD soporta una amplia
      gama de tarjetas PCI e ISA. Si no encuentra su tarjeta en la 
      siguiente lista consulte la p&aacute;gina &man.pcm.4; del manual. 
      Ésta no es una lista completa pero incluye muchas de las 
     tarjetas m&aacute;s comunes.</para>

    <itemizedlist>
      <listitem>
	<para>Crystal 4237, 4236, 4232, 4231</para>
      </listitem>

      <listitem>
	<para>Yamaha OPL-SAx</para>
      </listitem>

      <listitem>
	<para>OPTi931</para>
      </listitem>

      <listitem>
	<para>Ensoniq AudioPCI 1370/1371</para>
      </listitem>

      <listitem>
	<para>ESS Solo-1/1E</para>
      </listitem>

      <listitem>
	<para>NeoMagic 256AV/ZX</para>
      </listitem>

      <listitem>
	<para>Sound Blaster Pro, 16, 32, AWE64, AWE128, Live</para>
      </listitem>

      <listitem>
	<para>Creative ViBRA16</para>
      </listitem>

      <listitem>
	<para>Advanced Asound 100, 110, and Logic ALS120</para>
      </listitem>

      <listitem>
	<para>ES 1868, 1869, 1879, 1888</para>
      </listitem>

      <listitem>
	<para>Gravis UltraSound</para>
      </listitem>

      <listitem>
	<para>Aureal Vortex 1 or 2</para>
      </listitem>
    </itemizedlist>

    <indexterm>
      <primary>kernel</primary>
      <secondary>configuraci&oacute;n</secondary>
    </indexterm>
    <para>El driver a usar en el kernel depende del tipo de tarjeta que
      vaya a usar. La secci&oacute;n siguiente contiene informaci&oacute;n sobre qu&eacute
      a&ntilde;adir a la configuraci&oacute;n del kernel que necesita.</para> 

    <sect2>
      <title>Tarjetas Creative, Advance, y ESS Sound</title>

      <para>Si tiene una de las siguientes tarjetas debe a&ntilde;adir:</para>
	
      <programlisting>device pcm</programlisting>

      <para>a su archivo de configuraci&oacute;n del kernel. Si tiene una tarjeta
        ISA PnP tambi&eacute;n tendr&aacute; que a&ntilde;adir:</para>

      <programlisting>device sbc</programlisting>

      <para>Para una tarjeta ISA non-PnP a&ntilde;ada:</para>

      <programlisting>device pcm
device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15</programlisting>

      <para>al archivo de configuraci&oacute;n de su kernel. Los detalles de 
        configuraci&oacute;n de arriba son por defecto. 
        Deber&iacute;a cambiar la IRQ u otros par&aacute;metros
        para hacerlos coincidir con su tarjeta. Vea la p&aacute;gina &man.sbc.4;
        del manual para m&aacute;s informaci&oacute;n.</para>

      <note>
	<para>La Sound Blaster Live no est&aacute; soportada en FreeBSD 4.0 salvo que
          se instale un parche, cosa que est&aacute; fuera del cometido de &eacute;sta 
          secci&oacute;n. Recomendamos que se actualice a la &uacute;ltima versi&oacute;n 
          -STABLE antes de intentar usar &eacute;sta tarjeta.</para>
      </note>
    </sect2>

    <sect2>
      <title>Tarjetas Gravis UltraSound</title>

      <para>Para una tarjeta PnP ISA, necesitar&aacute; a&ntilde;adir:</para>

      <programlisting>device pcm
device gusc</programlisting>

      <para>al archivo de configuraci&oacute;n de su kernel. Si tiene una ISA non-PnP
        necesitar&aacute; a&ntilde;adir:</para> 

      <programlisting>device pcm
device gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13</programlisting>

      <para>al archivo de configuraci&oacute;n de su kernel. Puede necesitar
        cambiar la IRQ u otro tipo de datos para que ajusten con su
        tarjeta. Vea la p&aacute;gina &man.gusc.4; del manual para m&aacute;s
        informaci&oacute;n.</para>
    </sect2>

    <sect2>
      <title>Tarjetas Crystal Sound</title>

      <para>Para tarjetas Crystal necesitar&aacute; a&ntilde;adir:</para>

      <programlisting>device pcm
device csa</programlisting>

      <para>al archivo de configuraci&oacute;n de su kernel.</para>
    </sect2>

    <sect2>
      <title>Soporte Gen&eacute;rico</title>

      <para>Para tarjetas PnP ISA o tarjetas PCI, necesitar&aacute
        a&ntilde;adir:</para>

      <programlisting>device pcm</programlisting>

      <para>al su archivo de configuraci&oacute;n de su kernel. Si tiene una
        tarjeta ISA non-PnP que no tenga un <quote>bridge driver</quote> tendr&aacute;
        que a&ntilde;adir:</para>

      <programlisting>device pcm0 at isa? irq 10 drq 1 flags 0x0</programlisting>

      <para>a su archivo de configuraci&oacute;n del kernel. Puede necesitar
        cambiar la IRQ u otros par&aacute;metros para que ajusten con su
        tarjeta.</para>

    </sect2>

    <sect2>
      <title>Tarjetas de Sonido integradas</title>

      <para>Algunos sistemas con dispositivos de sonido integrados
        en la placa base pueden requerir la siguiente opci&oacute;n en el
        fichero de configuraci&oacute;n del kernel:</para>

      <programlisting>options PNPBIOS</programlisting>
    </sect2>
  </sect1>

  <sect1>
    <title>Recompilar el Kernel</title>

    <para>Una vez conseguido el archivo de configuraci&oacute;n del kernel
      que necesita debe recompilar el kernel. Por favor consulte
      el cap&iacute;tulo <xref linkend="kernelconfig-building"> del manual
      para m&aacute;s informaci&oacute;n.</para>
  </sect1>

  <sect1>
    <title>Crear y Probar Nodos de Dispositivos</title>

    <indexterm><primary>nodos de dispositivos</primary></indexterm>
    <para>Tras reiniciar, acceda al sistema y escriba <command>dmesg | grep pcm</command> tal y como se muestra aqu&iacute;:</para> 

    <screen>&prompt.root; dmesg | grep pcm
pcm0: &lt;SB16 DSP 4.11&gt; on sbc0</screen>

    <para>La salida que muestre su sistema puede ser diferente. Si no hay 
      dispositivos <devicename>pcm</devicename> en la salida del comando 
      hay alg&uacute;n error en los pasos previos. Si le sucede &eacute;sto vuelva a su
      archivo de configuraci&oacute;n del kernel y aseg&uacute;rese de que ha elegido 
      el dispositivo adecuado. Consulte la secci&oacute;n de problemas para 
      opciones adicionales.</para>

    <para>Si al ejecutar el comando anterior encontr&oacute; <devicename>pcm0</devicename> ejecute lo siguiente 
      como root:</para>

    <screen>&prompt.root; cd /dev
&prompt.root; sh MAKEDEV snd0</screen>

    <para>Si encontr&oacute; <devicename>pcm1</devicename> haga igual que
      que en el paso anterior reemplazando
      <devicename>snd0</devicename> con 
      <devicename>snd1</devicename>.</para>

    <note>
      <para>Los comandos anteriores <emphasis>no</emphasis> van
      a crear dispositivos 
	<devicename>/dev/snd</devicename>!</para>
    </note>

    <para><command>MAKEDEV</command> crear&aacute; un grupo de device
      nodes, incluyendo:</para>

    <informaltable frame="none">
      <tgroup cols="2">
	<thead>
	  <row>
	    <entry>Dispositivo</entry>
	    <entry>Descripci&oacute;n</entry>
	  </row>
	</thead>

	<tbody>
	  <row>
	    <entry><devicename>/dev/audio</devicename></entry>
	    <entry>dispositivo de audio compatible con SPARC</entry>
	  </row>

	  <row>
	    <entry><devicename>/dev/dsp</devicename></entry>
	    <entry>Dispositivo para voz digital</entry>
	  </row>

	  <row>
	    <entry><devicename>/dev/dspW</devicename></entry>
	    <entry>Como <devicename>/dev/dsp</devicename> pero con muestreo de 16 bits</entry>
	  </row>

	  <row>
	    <entry><devicename>/dev/midi</devicename></entry>
	    <entry>Dispositivo midi de acceso Raw</entry>
	  </row>

	  <row>
	    <entry><devicename>/dev/mixer</devicename></entry>
	    <entry>Dispositivo Mezclador</entry>
	  </row>

	  <row>
	    <entry><devicename>/dev/music</devicename></entry>
	    <entry>Interfaz para secuenciador de nivel 2</entry>
	  </row>

	  <row>
	    <entry><devicename>/dev/sequencer</devicename></entry>
	    <entry>Dispositivo secuenciador</entry>
	  </row>

	  <row>
	    <entry><devicename>/dev/pss</devicename></entry>
	    <entry>Interfaz para dispositivos programables</entry>
	  </row>
	</tbody>
      </tgroup>
    </informaltable>

    <para>Si todo ha ido bien deber&iacute;a tener una tarjeta de sonido funcionando.
      Si no es as&iacute; lea la siguiente secci&oacute;n.</para>
  </sect1>

  <sect1>
    <title>Problemas Comunes</title>

    <qandaset>
      <indexterm><primary>nodo de dispositivo</primary></indexterm>
      <qandaentry>
	<question>
	  <para>&iexcl;Recibo un error "unsupported subdevice XX" !</para>
	</question>

	<answer>
	  <para>Uno o m&aacute;s nodos de dispositivos no se crearon correctamente. 
           Repita los pasos anteriores.</para>
	</answer>
      </qandaentry>

      <indexterm><primary>Puerto I/O</primary></indexterm>
      <qandaentry>
	<question>
	  <para>&iexcl;Tengo un error "sb_dspwr(XX) timed out" !</para>
	</question>

	<answer>
	  <para>El puerto I/O que ha puesto no es el correcto.</para>
	</answer>
      </qandaentry>

      <indexterm><primary>IRQ</primary></indexterm>
      <qandaentry>
	<question>
	  <para>&iexcl;Tengo un error "bad irq XX"!</para>
	</question>

	<answer>
	  <para>La IRQ que ha puesto no es la correcta. Aseg&uacute;rese de que
            la IRQ que pone la la IRQ de la tarjeta son la misma.</para>
	</answer>
      </qandaentry>

      <qandaentry>
	<question>
	  <para>Me da un error <errorname>nombre_del_error>xxx: gus pcm not attached, out of 
	    memory.</errorname>
	    &iquest;Por qu&eacute me pasa &eacute;sto?</para>
	</question>

	<answer>
          <para>No hay memoria libre que se pueda asignar a &eacute;ste dispositivo.</para>

	</answer>
      </qandaentry>
    </qandaset>
  </sect1>

  <sect1 id="mp3">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Chern</firstname>
	  <surname>Lee</surname>
	  <contrib>Contributed by </contrib>
	</author>
      </authorgroup>
      <!-- 11 Sept 2001 -->
    </sect1info>

    <title>Audio MP3</title>

    <para>El formato MP3 (MPEG Layer 3 Audio) se aproxima mucho 
      a la calidad de sonido del CD, as&iacute; que no hay raz&oacute;n para privar
      a su sistema FreeBSD de disfrutar de &eacute;l.</para>

    <sect2 id="mp3-players">
      <title>Reproductores de MP3</title>

      <para>Con mucho el reproductor de MP3 m&aacute;s popular 
        para XFree86 es <application>XMMS</application>, 
        (X Multimedia System). Puede usar skins de <application>WinAmp</application> en <application>XMMS</application> puesto que el interfaz gr&aacute;fico
        es casi id&eacute;ntico al de la aplicaci&oacute;n de Nullsoft.
	<application>XMMS</application> tambi&eacute;n tiene soporte nativo
        de plugins.</para>

      <para><application>XMMS</application> puede instalarse desde el port
	audio/xmms o como package.</para>

      <para>El interfaz de <application>XMMS</application> es intuitivo e 
        incluye lista de canciones, ecualizador gr&aacute;fico y muchas m&aacute;s cosas.
        Aquellos que conozcan WinAmp encontrar&aacute;n <application>XMMS</application>
f&aacute;cil de usar.</para>

      <para>Existe una alternativa; el port audio/mpg123 es un reproductor
         MP3 en l&iacute;nea de comandos.</para>

      <para><application>mpg123</application> puede usarse indic&aacute;ndole un dispositivo
        de sonido concreto y el archivo MP3 en la l&iacute;nea de comandos como se muestra aqu&iacute;:</para>

      <screen>&prompt.root; mpg123 -a <replaceable>/dev/dsp1.0</replaceable> GrandesÉxitos-DeAlguno.mp3 
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!





Playing MPEG stream from BT - GrandesÉxitos-DeAlguno.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
</screen>

      <para><literal>/dev/dsp1.o</literal> debe reemplazarse por el 
        dispositivo <devicename>dsp</devicename> que tenga en su sistema.</para>

    </sect2>

    <sect2 id="rip-cd">
      <title>Extracci&oacute;n de Pistas de CD Audio</title>

      <para>Antes de convertir una pista o todo un CD a MP3 la informaci&oacute;n
        de audio del CD debe pasar al disco duro. Ésto se hace convirtiendo
        los datos raw CDDA (CD Digital Audio) en archivos WAV.</para>

      <para>El programa <command>cdda2wav</command>, que es parte del port
        sysutils, se usa para la extracci&oacute;n del audio de 
        los Discos Compactos y de la informaci&oacute;n asociada con &eacute;ste.</para>

      <para>Con el CD en la unidad, el siguiente comando (utilizado como
        <username>root</username>) convertir&aacute; un CD entero en archivos WAV
        individuales, uno por pista:</para>

      <screen>&prompt.root; cdda2wav -D <replaceable>0,1,0</replaceable> -B</screen>

      <para>La opci&oacute;n <option>-D <replaceable>0,1,0</replaceable></option>
	indica el dispositivo  SCSI <devicename>0,1,0</devicename>, que
        se corresponde con la salida del comando <command>cdrecord -scanbus</command>.</para>

      <para>Para extraer pistas individuales utilice la opci&oacute;n
	<option>-t</option> como se v&eacute aqu&iacute;:</para>

      <screen>&prompt.root; cdda2wav -D <replaceable>0,1,0</replaceable> -t 7</screen>

      <para>Ésta opci&oacute;n trata la s&eacute;ptima pista del CD de audio. Para tratar un 
        rango de pistas, por ejemplo las pistas de la uno a la siete, especifique
        el rango:</para>

      <screen>&prompt.root; cdda2wav -D <replaceable>0,1,0</replaceable> -t 1+7</screen>

      <para><application>cdda2wav</application> s&oacute;lo soporta unidades 
        CDROM SCSI. Para unidades IDE utilice audio/cdd o alguna
        otra entre las variadas aplicaciones que hay en la colecci&oacute;n de ports 
        de audio.</para>

    </sect2>

    <sect2 id="mp3-encoding">
      <title>Creando Archivos MP3</title>

      <para>Hoy d&iacute;a el codificador MP3 por excelencia es el
	<application>lame</application>.
	<application>Lame</application> Puede encontrarse en
        audio/lame en el &aacute;rbol de ports.</para>

      <para>Usando archivos WAV previamente extra&iacute;dos, el siguiente
        comando convierte <filename>audio01.wav</filename> en <filename>audio01.mp3</filename>:</para>

      <screen>&prompt.root; lame -h -b <replaceable>128</replaceable> \
--tt "<replaceable>T&iacute;tulo de Copla o Cantar</replaceable>" \
--ta "<replaceable>Grupo, Solista o Coral Sinf&oacute;nica</replaceable>" \
--tl "<replaceable>T&iacute;tulo del &Atilde;lbum</replaceable>" \
--ty "<replaceable>2001</replaceable>" \
--tc "<replaceable>Autor de la extracci&oacute;n y paso a MP3</replaceable>" \
--tg "<replaceable>Genre</replaceable>" \
<replaceable>audio01.wav audio01.mp3</replaceable></screen>

      <para>Los 128 kbits pasan por ser el est&aacute;ndar <quote>de facto</quote>
        usado en el ratio de bits de los MP3 al uso. Muchos prefieren
        mayores calidades, 160 e incluso 192. A mayor ratio de bits,
        mayor espacio requerido en el disco --pero la calidad 
        tambi&eacute;n ser&aacute; mayor--.
        La opci&oacute;n <option>-h</option> utiliza el modo <quote>m&aacute;s calidad pero
        algo m&aacute;s lento</quote>. Opciones que empiezan por <option>--t</option>
        indican etiquetas ID3, que suelen inclu&iacute;r informaci&oacute;n sobre la
        canci&oacute;n que se incluye en el archivo MP3. Puede encontrar 
        m&aacute;s opciones consultando el manual de lame.</para>
    </sect2>

    <sect2 id="mp3-decoding">
      <title>Decodificando MP3</title>

      <para>Para grabar un CD de audio desde archivos MP3 debe convertir
        &eacute;stos a un formato WAV no comprimido. Tanto <application>XMMS</application>
        como <application>mpg123</application> soportan la conversi&oacute;n de MP3
        a un formato de fichero no comprimido.</para>

      <para>Escribiendo a disco desde <application>XMMX</application>:</para>

      <procedure>
	<step>
	  <para>Ejecute <application>XMMS</application>.</para>
	</step>

	<step>
          <para>Bot&oacute;n derecho del rat&oacute;n en la ventana para
            acceder al men&uacute; de <application>XMMS</application>.</para>
	</step>

	<step>
	  <para>Elija <literal>Preferences</literal> en 
	    <literal>Opctions</literal>.</para>
	</step>

	<step>
	  <para>Cambie Output Plugin a <quote>Disk Writer
	      Plugin</quote>.</para>
	</step>

	<step>
	  <para>Pulse <literal>Configure</literal>.</para>
	</step>

	<step>
          <para>Elija un directorio en el que guardar los 
            archivos.</para>
	</step>

	<step>
          <para>Cargue el archivo MP3 en <application>XMMS</application>
            normalmente, con el volumen al 100% y las opciones de 
            ecualizaci&oacute;n desactivadas.</para>
	</step>

	<step>
	  <para>Pulse <literal>Play</literal> &mdash; parecer&aacute; que <application>XMMS</application>
            est&aacute; reproduciendo m&uacute;sica pero no sonar&aacute; nada. 
            Lo que est&aacute; haciendo es volcar el MP3 a un 
            archivo.</para>
	</step>

	<step>
	  <para>No olvide volver a poner el Output Plugin como estaba 
             antes cuando quiera volver a escuchar MP3.</para>
	</step>
      </procedure>

      <para>Escribiendo la salida en <application>mpg123</application>:</para>

      <procedure>
	<step>
	  <para>Escriba mpg123 -s <replaceable>audio01.mp3</replaceable>
	    &gt; audio01.pcm</para>
	</step>
      </procedure>

      <para><application>XMMS</application> genera un archivo en formato  WAV, mientras que 
	<application>mpg123</application> convierte MP3 a datos audio raw PCM.
        Ambos formatos pueden usarse con <application>cdrecord</application>
	o <application>burncd</application> para crear un  CDROM de audio.</para>

      <para>Consulte "creating-cds" para m&aacute;s informaci&oacute;n acerca
          del uso de grabadoras de CD en FreeBSD.</para>
    </sect2>
  </sect1>
</chapter>
