Linux で CD オーディオの音量を設定するにはどうすればいいですか?

Linux で CD オーディオの音量を設定するにはどうすればいいですか?

Windows 7 のコントロール パネル -> サウンド -> サウンドのプロパティ ウィンドウには、CD オーディオの音量を設定するためのスライダーがあります。

ここに画像の説明を入力してください

そして、一般的な Linux ミキサーで対応するものが見つからないのはかなり奇妙です:alsamixerまたはamixer

CD ドライブを接続して、cdcd(CD プレーヤー) で CD オーディオの音量を設定してみました。

$ cdcd setvol 0
Invalid volume

これは実際には無効なボリュームではなく、呼び出しが失敗したためですioctl()。このユーティリティのソース コード (libcdaudio 内) を検索して少し変更した後、このことがわかりました。

--- cdaudio.c.orig  2004-09-09 06:26:20.000000000 +0600
+++ cdaudio.c   2012-05-30 21:34:34.167915521 +0600
@@ -578,8 +578,10 @@
   cdvol_data.CDVOLCTRL_BACK_RIGHT_SELECT = CDAUDIO_MAX_VOLUME;
 #endif

-  if(ioctl(cd_desc, CDAUDIO_SET_VOLUME, &cdvol) < 0)
-    return -1;
+  if(ioctl(cd_desc, CDAUDIO_SET_VOLUME, &cdvol) < 0) {
+     printf("*** cd_set_volume: ioctl() returned error\n");
+     return -1;
+  }

   return 0;
 }

ちなみに、cdcd の get volume コマンドはかなり奇妙な出力を生成します:

         Left  Right
Front 1281734864  32767
Back        0      0

また、aumixも試してみました:

$ aumix -c 0

しかし、すべて成功しませんでした。

私はこのマニュアルを読んでいます—http://tldp.org/HOWTO/Alsa-sound-6.html(セクション6.2 ミキサー) は、CD チャネルがamixer出力で提示できるものです。Ubuntu 12.04 LTS インストールでは、サウンド カードのドライバーがいくつか不足している可能性があります。ただし、そうではないと思います。

$ lsmod | grep snd
snd_mixer_oss          22602  0 
snd_hda_codec_hdmi     32474  1 
snd_hda_codec_realtek   223867  1 
snd_hda_intel          33773  4 
snd_hda_codec         127706  3 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel
snd_hwdep              13668  1 snd_hda_codec
snd_pcm                97188  3 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
snd_seq_midi           13324  0 
snd_rawmidi            30748  1 snd_seq_midi
snd_seq_midi_event     14899  1 snd_seq_midi
snd_seq                61896  2 snd_seq_midi,snd_seq_midi_event
snd_timer              29990  2 snd_pcm,snd_seq
snd_seq_device         14540  3 snd_seq_midi,snd_rawmidi,snd_seq
snd                    78855  19 snd_mixer_oss,snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep ,snd_pcm,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
soundcore              15091  1 snd
snd_page_alloc         18529  2 snd_hda_intel,snd_pcm

スピーカーの歯擦音ノイズを除去するには、Windows 7 で行ったように、CD オーディオ チャネルの音量をミュートするか 0 に設定するだけです。

答え1

最終的に、オーディオサブシステムを完全に置き換えることでこの問題を解決できました。OSS4

関連パッケージ:

ii  oss-compat     2                         amd64    Open Sound System (OSS) compatibility package
ii  oss4-base      4.2-build2006-2+deb7u1    amd64    Open Sound System - base package
ii  oss4-dkms      4.2-build2006-2+deb7u1    amd64    Open Sound System - DKMS module sources
ii  oss4-gtk       4.2-build2006-2+deb7u1    amd64    Open Sound System - simple GTK2-based mixer control
ii  oss4-source    4.2-build2006-2+deb7u1    amd64    Open Sound System - drivers sources

そして、音質も非常に優れています。なぜ一部の人気ディストリビューションで非推奨になっているのか、まったく理解できません。

関連情報