硬件支持:alsa-utils工具包的使用 .

一.alsa-utils介紹

ALSA是kernel中的一個聲音驅動程序.它包括alsa核心和其他聲卡的驅動.
alsa-utils是alsa的一個工具包,裏面包含有聲卡測試和音頻編輯的工具.

二.alsa-utils的安裝

1.RPM包方式

Turbolinux 10.5,11版本已經包含有alsa-utils的rpm包,你可以直接安裝:

# rpm -ivh alsa-utils-xxx.rpm

2.源碼包方式

下載地址:

http://www.alsa-project.org/main/index.php/Download

源碼包安裝方法:

# tar zxvf alsa-utils-1.0.6.tar.gz
# cd alsa-utils-1.0.6
# ./configure
# make install

三.alsa-utils工具的使用

alsa-utils包含的工具有:

alsactl, aconnect, alsamixer, amidi, amixer, aplay, aplaymidi, arecord, arecordmidi,
aseqnet, iecset, speaker-test

1.alsactl的使用

alsactl用來對alsa聲卡驅動進行一些高級的設置.系統中裝有多個聲卡,它也可以支持.
有時在音量控制面板無法調整的選項,可以使用alsactl來實現.
alsactl可以將指定聲卡的驅動程序設置信息保存到配置文件.或從配置文件中恢復指定
聲卡的驅動程序的設置信息.

alsactl格式:

       alsactl [options] [store|restore] <card # or id>

選項:

       -h, --help
		打印幫助信息

       -f, --file
		指定使用的配置文件,默認爲/etc/asound.state.
              Select   the   configuration   file  to  use.  The  default  is
              /etc/asound.state


       -F, --force
		與恢復命令一起使用.表示最大限度的恢復設置值.


       -d, --debug
		調試模式,輸出更多細節信息.

       -v, --version
		打印alsactl版本號.

文件:
	/etc/asound.state(或使用-f指定的文件)保存有聲卡所有混合器的設置信息.

示例:

# rm /etc/asound.state -f
# alsactl store

2.aconnect的使用

aconnect是ALSA音序器的連接管理器.用來連接或斷開ALSA音序器上的端口.端口是
可以隨意定義的.
如,使用aconnect可以連接到任何由aseqview建立的設備端口.

命令格式:

       aconnect [-d] [-options] sender receiver
       aconnect -i|-o [-options]
       aconnect -x

選項:
連接管理
       -d, --disconnect
		斷開連接.

       -e, --exclusive
		使用獨佔模式連接端口.發送和接收端口將不能再與其他端口相連.

       -r, --real queue
		將時間包的時間戳,轉換爲真實時間隊列的當前值.

顯示端口
       -i, --input
		顯示存在的輸入端口.

       -o, --output
		顯示存在的輸出端口.

       -l, --list
		顯示當前的連接狀態.

刪除連接
       -x, --removeall
		刪除所有連接.

示例:

連接端口64:0到65:0:
           % aconnect 64:0 65:0
這個連接是單向的,所有到發送端口64:0的數據,將被重定向到接收65:0端口.如果有另一個端口65:1,
也使用64:0作爲發送端口,則數據會同時發送到2個接收端口.
端口連接時,使用:
           % aconnect -d 64:0 65:0

地址也可以使用客戶端的名字來代替:
           % aconnect External:0 Emu8000:1

使用-i打印出輸入端口信息.-o打印出輸出端口信息.
           % aconnect -i
           client 0: ’System’ [type=kernel]
               0 ’Timer           ’
               1 ’Announce        ’
           client 64: ’External MIDI-0’ [type=kernel]
               0 ’MIDI 0-0        ’

可以使用-x選項來清除所有的連接.
           % aconnect -x

3.alsamixer的使用

alsamixer是一個終端界面的聲卡音量調節器.如圖:

命令格式:
       alsamixer [options]

選項:
       -h, -help
		顯示幫助信息.

       -c <card number or idenfication>
		指定需要設置的聲卡.默認爲0.

       -D <device identification>
		選擇需要控制的調節器.

       -g
		設置界面顏色.

       -s
		最小化界面窗口.

快捷鍵:
	進入alsamixer界面後,可以使用下面快捷鍵進行控制:

   常規控制:
	左右箭頭或n,p	用來選擇通道.

	上下箭頭或+,-	同時調整選定通道的左右聲道的音量.

	B,=	設置左右聲道音量相同.

	M	靜音當前通道.<,>分別對左,右聲道靜音.

	空格	選擇錄音源.在選定的通道上按"空格",可以標記此通道爲錄音源.此操作僅限
		輸入設備.插入鍵或";",刪除鍵或"'"分別選定左右通道.

	L	刷新屏幕.

   快捷設置
       PageUp	增大5格音量.

       PageDown	減小5格音量.
	
       End	設置音量爲0.

	分別調整左,右或整個通道的音量.
	Q,W,E	增大 左,右,通道 的音量.

	Z,X,C	減小 左,右,通道 的音量.

	alt-q,ESC	退出.

4.amidi的使用

amidi的作用是對ALSA的RawMIDI端口進行讀寫.
amidi是一個命令行工具,允許你以獨佔模式向MIDI設備讀/寫數據.

命令格式:
       amidi options

選項:
	-h,-V,-l,-L	用於顯示信息.
	-s,-r,-S,-d	用於發送/接收數據.

       -h, --help
		打印幫助信息.

       -V, --version
		打印版本號.

       -l, --list-devices
		打印所有硬件MIDI端口的列表.

       -L, --list-rawmidis
		打印所有RawMIDI定義.

       -p, --port=name
		設置要使用的ALSA RawMIDI端口.若不指定,則使用聲卡0的端口0.

       -s, --send=filename
		發送指定文件的內容到MIDI端口.文件中必須包含raw MIDI命令(.syx,.mid文件).

       -r, --receive=filename
		將MIDI端口接收的數據寫入指定文件.

       -S, --send-hex="..."
		發送十六進制字節到MIDI端口.

       -d, --dump
		從MIDI端口接收數據,然後以十六進制形式打印出來.

       -t, --timeout=秒
		指定超時,當端口無數據輸出達到超時時長時,將停止接收數據.

示例:

       amidi -p hw:0 -s my_settings.syx
		發送my_settings.syx終端MIDI命令到端口 hw:0.

       amidi -S ’
		發送XG復位到默認端口.

       amidi -p virtual -d
		建立一個虛擬RawMIDI端口,然後發送所有數據到這個端口.

5.amixer的使用

amixer是命令行的ALSA聲卡驅動調節器工具.
amixer用來在命令行控制ALSA的調節器,並且支持多聲卡.
amixer不加參數時,將打印默認聲卡的設置信息.

命令格式:

       amixer [-c card] [cmd]

命令:
       help   顯示語法幫助.

       info   顯示調節器設備的信息.

       scontrols	顯示調節器器的完整列表 .

       scontents	顯示包含詳細信息的調節器的完整列表.

       set or sset <SCONTROL> <PARAMETER> ...
			設置調節器信息.

       get or sget <SCONTROL>
			顯示調節器的信息.

       controls	顯示聲卡控制器的信息.
		
       contents	顯示完整的聲卡控制器信息.

       cset <CONTROL> <PARAMETER> ...
		設置聲卡控制器信息.

       cget <CONTROL>	顯示聲卡控制器的信息.

選項:
       [-c card]
		選擇指定的聲卡.

       [-D device]
		選擇需要控制的設備名.默認是 default.

       -h     Help
		顯示幫助信息.

       -q
		安靜模式.不輸出設置結果.

示例:

      # amixer -c 1 sset Line,0 80%,40% unmute cap
	 設置第2塊聲卡的"line"的左聲道音量爲80%,右聲道爲40%,取消靜音,並設置
	它爲聲音源.

      # amixer -c 2 cset numid=34 40%
	設置第34個聲卡元素爲40%.

6.arecord,aplay的使用

arecord,aplay是命令行的ALSA聲卡驅動的錄音和播放工具.
arecord是命令行ALSA聲卡驅動的錄音程序.支持多種文件格式和多個聲卡.
aplay是命令行播放工具,支持多種文件格式.

命令格式:

       arecord [flags] [filename]
       aplay [flags] [filename [filename]] ...

選項:
       -h, --help
             幫助.

       --version
              打印版本信息.

       -l, --list-devices
              列出全部聲卡和數字音頻設備.

       -L, --list-pcms
              列出全部PCM定義.

       -D, --device=NAME
		指定PCM設備名稱.

       -q --quiet
		安靜模式.

       -t, --file-type TYPE
		文件類型(voc,wav,raw或au).

       -c, --channels=#
		設置通道號.

       -f --format=FORMAT
		設置格式.格式包括:S8  U8  S16_LE  S16_BE  U16_LE
              U16_BE  S24_LE S24_BE U24_LE U24_BE S32_LE S32_BE U32_LE U32_BE
              FLOAT_LE  FLOAT_BE  FLOAT64_LE  FLOAT64_BE   IEC958_SUBFRAME_LE
              IEC958_SUBFRAME_BE MU_LAW A_LAW IMA_ADPCM MPEG GSM

       -r, --rate=#<Hz>
		設置頻率.

       -d, --duration=#
		設置持續時間,單位爲秒.

       -s, --sleep-min=#
		設置最小休眠時間.

       -M, --mmap
		mmap流.

       -N, --nonblock
		設置爲非塊模式.

       -B, --buffer-time=#
		緩衝持續時長.單位爲微妙.

       -v, --verbose
		顯示PCM結構和設置.

       -I, --separate-channels
		設置爲每個通道一個單獨文件.

示例:

       aplay -c 1 -t raw -r 22050 -f mu_law foobar
	播放raw文件foobar.以22050Hz,單聲道,8位,mu_law格式.

       arecord -d 10 -f cd -t wav -D copy foobar.wav
	以CD質量錄製foobar.wav文件10秒鐘.使用PCM的"copy".

7.aplaymidi的使用

aplaymidi用來播放標準的MIDI文件.
aplaymidi是一個命令行工具,可以在一個或多個ALSA端口上播放MIDI
文件.

命令格式:

       aplaymidi -p client:port[,...] [-d delay] midifile ...

選項:
       -h, --help
              輸出幫助信息.

       -V, --version
              輸出版本信息.

       -l, --list
              輸出可以使用的輸出端口列表.

       -p, --port=client:port,...
		設置端口.

       -d, --delay=seconds
		設置MIDI文件結束後,等待時長.

8.arecordmidi的使用

arecordmidi用於錄製標準的MIDI文件.
arecordmidi可以從一個或多個ALSA端口上,錄製一個標準MIDI文件.

命令格式:

       arecordmidi -p client:port[,...] [options] midifile

選項:
       -h,--help
              打印幫助信息.

       -V,--version
              打印版本號.

       -l,--list
              打印可以使用的輸入端口.

       -p,--port=client:port,...
		設置端口.

       -b,--bpm=beats
		設置MIDI文件的速率,默認爲120 BPM.

       -f,--fps=frames
		設置幀率.

       -s,--split-channels
		設置每個通道將錄製成一個單獨的MIDI文件.

       -d,--dump
		在標準輸出上,以文本形式顯示接受到的事件信息

9.aseqnet的使用

aseqnet是ALSA調節器的網絡連接工具.
aseqnet是ALSA調節器的客戶端程序,可以從網絡上發送和接收事件數據包.
網絡上有主機A,主機B.A爲服務器端,B爲客戶端.ALSA調節器系統必須同事運行
在兩個服務器上.然後建立服務器端口:

hostA% aseqnet
 sequencer opened: 128:0

在HostB上執行:

           hostB% aseqnet hostA
           sequencer opened: 132:0

現在所有發送到HostA:128:0的數據將被傳送到HostB:132:0上,反之亦然.

命令格式:

       aseqnet [remotehost]

選項:
       -p port
		指定TCP端口號或服務名.

       -s addr
		設置指定地址用於讀操作.

       -d addr
		設置指定地址用於寫操作.
       -v
		詳細輸出模式.

10.iecset的使用

設置或輸出IEC958狀態位.
iecset是個小工具,通過ALSA的API,設置或輸出IEC958(或稱S/PDIF)狀態位信息.
直接運行iecset將輸出當前IEC958的狀態信息. 命令格式:

       iecset [options] [cmd arg...]

選項:
       -D device
		設置需要打開的設備名.

       -c card
		設置需要打開的網卡名.

       -x
		輸出AESx字節格式的狀態信息.

       -i
		從標準輸入讀取命令信息,每行一個命令.

命令:
       professional <bool>
		專業模式(true)或用戶模式(false).

       audio <bool>
		音頻模式(true).

       rate <int>
		採樣頻率,單位Hz.

       emphasis <int>
		設置加強值.0 = none, 1 = 50/15us, 2 = CCITT.

       lock <bool>
		速率鎖.

       sbits <int>
		採樣位:2 = 20bit, 4 = 24bit, 6 = undefined.

       wordlength <int>
		設置字長:0  =  No,  2 = 22-18 bit, 4 = 23-19 bit, 5 = 24-20
              bit, 6 = 20-16 bit. 

       category <int>
		分類:值從0到0x7f.

       copyright <bool>
		設置是否包含版權.

       original <boo>
		原始標記:

示例:

輸出當前IEC958信息.
$ iecset
	Mode: consumer
	Data: audio
	Rate: 44100 Hz
	Copyright: permitted
	Emphasis: none
	Category: general
	Original: 1st generation
	Clock: 1000 ppm

顯示當前第1塊聲卡的IEC958狀態位.
$ iecset -Dhw:0
	Mode: consumer
	Data: non-audio
	Rate: 44100 Hz
	Copyright: permitted
	Emphasis: none
	Category: general
	Original: 1st generation
	Clock: 1000 ppm

設置當前爲用戶模式,並打開"非音頻"位.
$ iecset pro off audio off
	Mode: consumer
	Data: non-audio
	Rate: 44100 Hz
	Copyright: permitted
	Emphasis: none
	Category: general
	Original: 1st generation
	Clock: 1000 ppm

11.speaker-test的使用

speaker-test是一個針對 ALSA驅動的聲音測試工具.
speaker-test可以分別對左右聲道進行單獨的測試.

命令格式:

       speaker-test [-options]

選項:
       -c | --channels NUM
		設置通道數目.

       -D | --device NAME
		設置使用的PCM設備名.

       -f | --frequency FREQ
		設置聲音頻率.

       --help
		輸出幫助信息.

       -b | --buffer TIME
		設置緩衝區時長.0爲使用最大的緩衝區大小.

       -p | --period TIME
		設置節拍爲多少微秒.

       -r | --rate RATE
		設置音頻率.

       -t | --test pink|sine|wav
              -t pink	表示測試時使用噪聲.
              -t sine	表示測試時使用音頻信號聲.
              -t wav	表示測試時使用WAV文件.

       -l | --nloops COUNT
		設置測試循環的次數.

       -w | --wavfile
		設置測試時播放的wav文件.

       -W | --wavdir
		設置一個包含wav文件的目錄.默認爲/usr/share/sounds/alsa.

示例:

在一個音頻接口上進行立體聲測試
#  speaker-test -Dplug:front -c2

在兩個音頻接口上進行4聲道測試.
#  speaker-test -Dplug:surround40 -c4

在立體聲接口上進行5.1聲道測試.
# speaker-test -Dplug:surround51 -c6

測試低音揚聲器.
# speaker-test -Dplug:surround51 -c6 -s1 -f75
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章