最終更新日: 2016-06-26 日 01:23
ホーム | 文書トップ | 目次

Linuxのサウンド関連

Table of Contents

linux_sound.gif

環境

CMI8738関係

ALSA

  • RedHatLinux9に標準では付属していないが、ALSAというLinux用のオーディオ及びMIDIの環境が開発されているということを知る。
  • (将来的には標準となるようだ)
  • これを使用すれば、CMI8738のS/PDIFもすんなり使えそう、ということで導入を試みる。
  • Advanced Linux Sound Architecture(ALSA) (日本語訳)

ドライバのinstall

  • 最初は以下のページを参考にしていたのだが、
  • いろいろてこずり、最終的には下記ページの通りにやったらすんなりできた。
  • 基本的な手順としては、
  • をそれぞれ、./configure;make;make install
    • (Tools(0.9.7)はよくわからないので入れていない)
  • Driverのソースディレクトリ(alsa-driver-0.9.7) で、./snddevices を実行
  • 同様にDriverのソースディレクトリで、./utils/alsaconf を実行
  • これだけである。

ミキサー(alsamixer)の設定

  • この後、デフォルトでミキサーはミュートになっているので、amixerや、alsamixerでミュートを解除する必要がある。
  • 「m」キーでミュートの解除、スペースキーで録音対象の選択する。
  • (trecord内のこのページ を参考にした)
  • 設定の後、
> alsactl store
  • で、/etc/asound.state に設定が保存される。
  • なお、
> alsactl restore
  • で保存した設定が読み込まれるのだが、
/etc/init.d/alsasound start
  • もしくは
/etc/init.d/alsasound restart
  • した場合には自動で行われるが、サーバを再起動させた場合にはこれが行われない。
  • 他のページを参考にした結果、とりあえず、
  • /etc/rc.d/rc.local に alsactl restore を記述するという方法にした。
  • なお、gnome-alsamixerというものがあり、GNOME等のGUI環境ならばこちらが分かり易い。
  • Tarball(gnome-alsamixer-0.9.6.tar.gz)を持ってきてこちらも./configure;make;make install。
    • 下記は、CMI8738を使用した場合の、gnome-alsamixerのスクリーンショット

gnome-alsamixer-8738.jpg

使い方

  • まず、Alsaのwav録音/再生プログラムに関しては、
[録音](例:CD formatで5秒)
> arecord -f cd -t 5 test.wav

[再生]
> aplay test.wav
  • のようにして録音/再生が行うことができる。
  • 肝心のCMI8738のS/PDIFに関してであるが、
  • まず出力に関しては、
  • ミキサーの設定でIEC958 Outputにチェックすると、S/PDIFの出力が有効になり外部D/Aで音を聴くことができた。
  • また入力に関しては、
  • ミキサーの設定でIE958 In Selectにチェックする必要がある。
  • ちゃんと調べていないが、この選択はCD-ROMドライブのS/PDIF(カード上のジャンパに接続する)と、外部のS/PDIFの切り替えではないだろうか?
  • その上で、
> arecord -Dhw:0,2 -fcd test.wav
  • のようにやればよい。
  • (外部のS/PDIF入力は -Dhw:0,2 で指定する)
  • 私は、とりあえず適当にエイリアスをつくって
alias rec='arecord -Dhw:0,2 -fcd'
  • とした。
  • alsa driverのソースで、
  • alsa-driver-0.9.7/alsa-kernel/Documentation/CMIPCI.txt
  • に詳細が載っており、これを参考にするとよい。

その他

  • alsa-docに、使用するサウンドカードの設定が載っている。
  • 今回の場合は、CMI8738
  • ただし、今回のようにalsaconf等を使った場合は、おそらく不要である。不具合があったとき等、参考になるかもしれない。

alsaplayer

配布元

はじめに

  • mp3を再生すべく、最初、mpg123を使おうとしたがNGだったので(下方参照)、AlsaPlayerを使用してみることとした。
  • (むしろ、こちらを先に使ってみるべきでは。。>自分)

インストール

  • alsaplayer-0.99.75.tar.bz2 をダウンロードし、
> tar xvfj alsaplayer-0.99.75.tar.bz2
> cd alsaplayer-0.99.75
> ./configure
> make
> make install
  • で、インストール。
  • すんなりmp3が再生できた。

使い方

> alsaplayer -i text **.mp3

で、コンソールから再生できる。 これでたとえば、

> ls *.mp3 | xargs alsaplayer -i text

とかやれば、ディレクトリ内の全ファイルを再生できるわけだ。

> alsaplayer --help

を読んでわかったのだが、

> alsaplayer -s セッション名

として起動すれば、このセッションの再生を操作できる。

> ls *.mp3 | xargs alsaplayer -s session1 -i text

で起動し、次のようなことができる。

(ステータス表示)

> alsaplayer -n session1 --status

(次の曲)

> alsaplayer -n session1 --next

(前の曲)

> alsaplayer -n session1 --prev

(一時停止/解除)

> alsaplayer -n session1 --pause

mpg123

結論

(とりあえず最初に結論) alsa version 0.9 では、mpg123 は使えないようだ。

作業内容

mpg123-0.59q-1.i386.rpmをダウンロードし、

> rpm -ivh mpg123-0.59q-1.i386.rpm

でインストールしてみたが、「Can't open /dev/dsp!」 というエラーが出て再生できない。 mpg123-0.59r.tar.gzをダウンロードし、

> tar xfvz mpg123-0.59r.tar.gz
> cd mpg123-0.59r
> make linux-alsa
> make install

とやってみるが、make installできない。 make linux でインストールする。 やはり、「Can't open /dev/dsp!」 と言われる。

/dev/dsp0 -> dsp

となっているようで、/dev/dsp0 を chmod o+w してみる。 エラーは出なくなったが、音は再生されない。

いろいろやってみるが、NG。 そもそも、ALSAのホームページの「アプリケーション」のところで、0.5より古いドライバの対応のところに、mpg123が載っているので、 使えないのでは。。

GLAME

> export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
  • して、さらに、/usr/local/lib/pkgconfig/fftw3.pc -> fftw3f.pc としてコピー。
  • これでやっと、./configureが通る。

gogo

  • gogo-2.35-1.i386.rpm を rpm -ivh でインストール。
  • gogo *.wav でmp3に変換できる。

関連リンク&参考ページ

ホーム | 文書トップ | 目次
Created by Emacs 27.1 (Org mode 9.3)