<!--
     The FreeBSD Documentation Project
     The FreeBSD Japanese Documentation Project

     Original revision: 1.16
     $FreeBSD$
-->

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

  <title>サウンド</title>

  <sect1>
    <title>この章では</title>

    <para>FreeBSD はあなたのコンピュータから原音に忠実な再生を楽しむための,
    数多くの種類のサウンドカードをサポートしています.
    これにより, MPEG Audio Layer 3 (MP3) や WAV, Ogg Vorbis などの
    音楽を録音したり再生したりできるようになります.
    加えて FreeBSD Ports コレクションには, あなたが録音した音楽を
    編集したり, 音響効果を加えたり, 接続された MIDI 機器を制御したり
    するためのアプリケーションが含まれています.</para>

<!-- XXX we need to talk about ripping MP3s here. -->

    <para>この章を読めば, 以下のことを知ることができます:</para>
    <itemizedlist>
      <listitem><para>サウンドカードをインストールする方法.</para></listitem>
      <listitem><para>システムを設定してサウンドカードを認識させる方法.
      </para></listitem>
      <listitem><para>サンプルアプリケーションを利用してサウンドカードが
      うまく動いているかどうかをテストする方法.</para></listitem>
      <listitem><para>サウンド関連の設定のトラブルシュート方法.
      </para></listitem>
    </itemizedlist>

    <para>この章を読む前に, 以下のことを理解しておく必要があります:</para>

    <itemizedlist>
      <listitem><para>新しいカーネルを設定してインストールする方法 (<xref
        linkend="kernelconfig">).</para></listitem>
    </itemizedlist>
  </sect1>

  <sect1>
    <title>正しいデバイスの確認</title>

    <indexterm><primary>PCI</primary></indexterm>
    <indexterm><primary>ISA</primary></indexterm>
    <indexterm><primary>サウンドカード</primary></indexterm>
    <para>設定をはじめる前に, あなたが持っているカードのモデル, 
      そのカードが使用しているチップ, そして PCI, ISA
      どちらのカードなのかを確認する必要があります.
      FreeBSD は, さまざまな PCI および ISA のカードをサポートしています.
      もしあなたのカードが次のリストに無い場合は,
      &man.pcm.4; のマニュアルページを確認してください.
      これは完全なリストではありませんが,
      良く使われているカードがだいたい含まれています.</para>
      
    <itemizedlist>
      <listitem>
        <para>Crystal 4237, 4236, 4232, 4231</para>
      </listitem>

      <listitem>
	<para>ヤマハ 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, および Logic ALS120</para>
      </listitem>

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

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

      <listitem>
	<para>Aureal Vortex 1 および 2</para>
      </listitem>
    </itemizedlist>

    <indexterm>
      <primary>カーネル</primary>
      <secondary>コンフィグレーション</secondary>
    </indexterm>
    <para>カーネル内で使用するドライバは,
      使用するカードの種類によって異なります.
      この節では, それらの詳しい情報と,
      <link linkend="kernelconfig">カーネルコンフィグレーションファイル</link>に
      何を追加すれば良いのかについて説明します.</para>

    <sect2>
      <title>Creative, Advance, および ESS 社製サウンドカード</title>

      <para>これらのカードを使用する場合は,
        カーネルコンフィグレーションファイルに以下の設定を追加します.</para>

      <programlisting>device pcm</programlisting>

      <para>PnP の ISA カードを使用する場合は, さらに</para>

      <programlisting>device sbc</programlisting>

      <para>も加えてください.
        PnP ではない ISA のカードを使用する場合は,</para>

      <programlisting>device pcm</programlisting>

      <para>と</para>

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

      <para>を加えます.
        これらは標準の設定にあわせたものですので,
        IRQ などの設定は必要に応じて変更する必要があります.
        また, 設定の詳細については, &man.sbc.4;
        のマニュアルページを参照してください.</para>

      <note>
        <para>パッチを適用していない FreeBSD 4.0 は
          Sound Blaster Live に対応していません.
          また, この文書ではその設定方法については扱いません.
          このカードを使用する前に, 最新の -STABLE
          にアップデートするようにしてください.</para>
      </note>
    </sect2>

    <sect2>
      <title>Gravis 社製 UltraSound カード</title>

      <para>PnP の ISA カードを使用するには,
        カーネルコンフィグレーションファイルに次の
        2 つの設定を追加します.</para>

      <programlisting>device pcm</programlisting>

      <programlisting>device gusc</programlisting>

      <para>PnP ではない ISA カードの場合には,</para>

      <programlisting>device pcm</programlisting>

      <para>と</para>

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

      <para>を加えます.
        IRQ などの設定は必要に応じて変更する必要があります.
        また, 設定の詳細については, &man.gusc.4;
        のマニュアルページを参照してください.</para>
    </sect2>

    <sect2>
      <title>Crystal 社製サウンドカード</title>

      <para>Crystal 社製のカードを使用する場合は,
        カーネルコンフィグレーションファイルに</para>

      <programlisting>device pcm</programlisting>

      <para>と</para>

      <programlisting>device csa</programlisting>

      <para>の両方が必要です.</para>
    </sect2>

    <sect2>
      <title>一般的なカードのサポート</title>

      <para>PnP ISA カードや PCI カードを使用する場合は,</para>

      <programlisting>device pcm</programlisting>

      <para>をカーネルコンフィグレーションファイルに追加します.
        ブリッジドライバを持たない, PnP 非対応の ISA
        カードの場合は,</para>

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

      <para>を加えます.
        IRQ などの設定は,
        ハードウェアの設定に合うように必要に応じて変更してください.</para>
    </sect2>
  </sect1>

  <sect1>
    <title>カーネルの再構築</title>

    <para>必要な設定をカーネルコンフィグレーションファイルに追加したら,
      カーネルを再構築します.
      詳細についてはハンドブックの<xref linkend="kernelconfig-building">を参照してください.</para>
  </sect1>

  <sect1>
    <title>デバイスノードの作成とテスト</title>

    <indexterm><primary>デバイスノード</primary></indexterm>
    <para>再起動した後, ログインして <command>cat /dev/sndstat</command>
      を実行します. すると, 以下のように出力されるはずです.</para>

    <programlisting>FreeBSD Audio Driver (newpcm) Sep 21 2000 18:29:53
Installed devices:
pcm0: &lt;Aureal Vortex 8830&gt; at memory 0xfeb40000 irq 5 (4p/1r +channels duplex)</programlisting>

    <para>エラーメッセージが出力される場合は,
      今までの手順のどこかが間違っています.
      カーネルコンフィグレーションファイルをもう一度見直して,
      正しいデバイスを選択しているかどうか確認してください.</para>

    <para>エラーが出力されずに <devicename>pcm0</devicename>
      が出力された場合は,
      <command>su</command> コマンドで
      <username>root</username> になり,
      次のように実行します.</para>

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

    <para>エラーが出力されずに <devicename>pcm1</devicename>
      が出力された場合は,
      <command>su</command> コマンドで
      <username>root</username> になり,
      次のように実行します.</para>

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

    <para>上のコマンドはどちらも,
      <devicename>/dev/snd</devicename> という
      デバイスを作成するもの<emphasis>ではない</emphasis>という点に注意してください!
      これらは代わりに,
      次のような複数のデバイスノードを作成します.</para>

    <informaltable frame="none">
      <tgroup cols="2">
	<thead>
	  <row>
	    <entry>デバイス</entry>
	    <entry>説明</entry>
	  </row>
	</thead>

	<tbody>
	  <row>
	    <entry><devicename>/dev/audio</devicename></entry>
	    <entry>SPARC 互換オーディオデバイス</entry>
	  </row>

	  <row>
	    <entry><devicename>/dev/dsp</devicename></entry>
	    <entry>(訳注: 8 ビットで) サンプリングする音声デバイス</entry>
	  </row>

	  <row>
	    <entry><devicename>/dev/dspW</devicename></entry>
            <entry><devicename>/dev/dsp</devicename>と同様.
              ただしサンプリングは 16 ビット.</entry>
	  </row>

	  <row>
	    <entry><devicename>/dev/midi</devicename></entry>
	    <entry>Raw MIDI アクセスデバイス</entry>
	  </row>

	  <row>
	    <entry><devicename>/dev/mixer</devicename></entry>
	    <entry>コントロールポートミキサーデバイス</entry>
	  </row>

	  <row>
	    <entry><devicename>/dev/music</devicename></entry>
	    <entry>レベル 2 シーケンサインタフェース</entry>
	  </row>

	  <row>
	    <entry><devicename>/dev/sequencer</devicename></entry>
	    <entry>シーケンサデバイス</entry>
	  </row>

	  <row>
	    <entry><devicename>/dev/pss</devicename></entry>
	    <entry>プログラム可能なデバイスインタフェース</entry>
	  </row>
	</tbody>
      </tgroup>
    </informaltable>

    <para>すべてうまく行けば,
      サウンドカードの機能を使用することができます.
      うまく行かない場合は, 次の節をご覧ください.</para>
  </sect1>

  <sect1>
    <title>よくある問題</title>

    <qandaset>
      <indexterm><primary>デバイスノード</primary></indexterm>
      <qandaentry>
	<question>
	  <para>unsupported subdevice XX error が出ました!</para>
	</question>

	<answer>
          <para>いくつかのデバイスノードが正しく作成されていません.
            前節の手順をもう一度やってみてください.</para>
	</answer>
      </qandaentry>

      <indexterm><primary>I/O ポート</primary></indexterm>
      <qandaentry>
	<question>
	  <para>sb_dspwr(XX) timed out error が出ました!</para>
	</question>

	<answer>
	  <para>I/O ポートが正しく設定されていません.</para>
	</answer>
      </qandaentry>

      <indexterm><primary>IRQ</primary></indexterm>
      <qandaentry>
	<question>
	  <para>bad irq XX error が出ました!</para>
	</question>

	<answer>
	  <para>IRQ が正しく設定されていません.
            カーネルコンフィグレーションファイル中の
            IRQ の設定と,
            サウンドカードの IRQ の設定が同じであるか確認してください.</para>
	</answer>
      </qandaentry>

      <qandaentry>
	<question>
	  <para><errorname>xxx: gus pcm not attached, out of memory</errorname> というエラーが出ます.
            何が起きたのでしょうか?</para>
	</question>

	<answer>
          <para>これは,
            デバイスを使用するために必要なメモリが確保できない時に表示されます.</para>
	</answer>
      </qandaentry>
    </qandaset>
  </sect1>
</chapter>

<!--
     Local Variables:
     mode: sgml
     sgml-declaration: "../chapter.decl"
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     sgml-parent-document: ("../book.sgml" "part" "chapter")
     End:
-->
