tinymix的命令格式

come from : https://blog.csdn.net/jinchengzhou/article/details/82796888

最近在调试安卓系统的alsa驱动,一开始搞不清楚tinymix要怎么用,今天终于搞清楚了,其实也很简单:

先打tinymix,首先系统要有安装好,如果没有的话,需要编译android/external/tinyalsa目录,就会生成1个so和4个可执行文件。

现在重点记录怎样用tinymix,

 

  1. # tinymix

  2. Mixer name: 'audiocodec'

  3. Number of controls: 12

  4. ctl type num name value

  5. 0 INT 1 MIC1_G boost stage output mixer control 3

  6. 1 INT 1 MIC2_G boost stage output mixer control 3

  7. 2 INT 1 LINEIN_G boost stage output mixer control 3

  8. 3 INT 1 MIC1 boost AMP gain control 4

  9. 4 INT 1 MIC2 boost AMP gain control 4

  10. 5 INT 1 Lineout volume control 31

  11. 6 INT 1 ADC input gain ctrl 3

  12. 7 BOOL 1 Audio linein in On

  13. 8 BOOL 1 Audio lineout Off

  14. 9 BOOL 1 Audio adda drc Off

  15. 10 BOOL 1 Audio adda loop Off

  16. 11 ENUM 1 audio capture mode linein


在终端输入tinymix,就会显示这个表

 

那么它里面的内容是什么意思呢?

首先我们要知道,一个mixer通常有多个controler,像这个,里面有12个,然后就分别列出每一个controller的信息

首先看第一个:它的编号为0,类型是int型,它目前的值是3,它是用来控制mic1的放大倍数的

同理,第二个也是控制mic2的放大倍数

然后看第7个是一个bool型,也就是只有开关,

那么我如果像改变某一项的时候,要怎么设置呢?

方法是:

 

  1. # tinymix 7

  2. Audio linein in: On

这样在后面跟上控制器的编号,就会把控制器的当前状态显示出来,如果想改变它,就输入:

 

 

  1. # tinymix 7 0

  2. root@dolphin-fvd-p1:/ # tinymix 7

  3. Audio linein in: Off

这样就通过命令设置过去了

 

然后看最后一个是enum类型的,那么问题来了,我不知道enum的名字,改如何设置呢,其实它有提示:

 

  1. # tinymix 11

  2. audio capture mode: main mic mic1_2 >linein

它会列出所有模式,然后当前的模式前面会有一个小箭头标记

 

然后如果要改变就这样操作:

 

  1. root@dolphin-fvd-p1:/ # tinymix 11 "main mic"

  2. root@dolphin-fvd-p1:/ # tinymix 11

  3. audio capture mode: >main mic mic1_2 linein

 

补充一下:

通常只是codec有很多的controler,hdmi和spdif的控制器分布只有一个,要设置别的卡要加上-D参数

 

  1. root@dolphin-fvd-p1:/ # tinymix -D 1 这个是HDMI通道

  2. Mixer name: 'sndhdmi'

  3. Number of controls: 1

  4. ctl type num name value

  5. 0 ENUM 1 hdmi audio format Function pcm

  6. root@dolphin-fvd-p1:/ # tinymix -D 2 这个是spdif通道

  7. Mixer name: 'sndspdif'

  8. Number of controls: 1

  9. ctl type num name value

  10. 0 ENUM 1 spdif audio format Function pcm

  11.  
  12.  
  1. root@dolphin-fvd-p1:/ # tinymix -D 2 0 查看一下有哪些格式可以设置

  2. spdif audio format Function: null >pcm DTS

  3.  
  1. root@dolphin-fvd-p1:/ # tinymix -D 1 0 查看可以设置的格式

  2. hdmi audio format Function: null >pcm AC3 MPEG1 MP3 MPEG2 AAC DTS ATRAC ONE_BIT_AUDIO DOLBY_DIGITAL_PLUS DTS_HD MAT WMAPRO

 

实例:

# tinymix -D 1                                                
Mixer name: 'imxnull-audio'
Number of controls: 28
ctl    type    num    name                                     value
0    INT    2    PCM Playback Volume                      155 155
1    INT    2    Capture Volume                           14 14
2    INT    1    Capture Attenuate Switch (-6dB)          0
3    BOOL    1    Capture ZC Switch                        On
4    INT    2    Headphone Playback Volume                103 103
5    BOOL    1    Headphone Playback ZC Switch             On
6    INT    1    Mic Volume                               1
7    BOOL    1    Bass Enable                              Off
8    INT    1    Bass Filter Feq                          1
9    INT    1    Bass Volume                              58
10    INT    1    Bass Level                               96
11    INT    1    Surround Width                           4
12    INT    1    Main Channel Volume                      100
13    INT    1    Mixer Channel Volume                     0
14    BOOL    1    AVC Enable                               Off
15    BOOL    1    AVC Hard Limit                           Off
16    INT    1    AVC Max Gain                             1
17    INT    1    AVC Threshold (-dB)                      12
18    BOOL    1    DAP_MIXER Mixer Channel                  Off
19    ENUM    1    I2S_OUT                                  ADC
20    ENUM    1    DAC_IN                                   I2S_IN
21    ENUM    1    MIX_MUX                                  ADC
22    ENUM    1    DAP_IN                                   ADC
23    ENUM    1    Headphone Mux                            DAC
24    ENUM    1    Capture Mux                              MIC_IN
25    ENUM    1    Jack Function                            on
26    ENUM    1    Speaker Function                         off
27    ENUM    1    Line In Function                         off

# tinymix -D 1 6 0

 

 

 

由于ALSA架构太过于庞大,对于嵌入式设备而言很多功能用不到,且会增加功耗,

所以Android采用了精简后的tinyalsa,tinyalsa相关的底层调试工具

常用的有tinymix,tinyplay,tinycap,下面分别介绍他们的使用方法。
 
1.tinymix
tinymix可以查看系统的音频控件,可直接执行tinymix进行查看。tinymix更多的作用的是用来手动设置控件的值,控件可通过tinymix查看,或者通过mixer_paths.xml进行查看。下面以手动设置speaker相关控件为例进行说明tinymix的使用方法:
 
mixer_paths.xml文件中speaker相关控件如下:
 
    <path name="speaker">
        <ctl name="RX3 MIX1 INP1" value="RX1" />
        <ctl name="LINE_OUT" value="Switch" />
        <ctl name="SPK" value="Switch" />          
    </path>
下面以手动设置speaker相关控件为例进行说明tinymix的使用方法,如下,第一个参数为控件名,第二个参数为控件值
 
tinymix "RX3 MIX1 INP1" "RX1"
tinymix "LINE_OUT" "Switch"
tinymix "SPK" "Switch"

tinymix加控件名可以查看控件的值,如想查看"LINE_OUT"的值,可执行tinymix "LINE_OUT"
 
2.tinyplay
可以使用tinyplay直接进行播放wav格式文件,在播放之前需要先使用tinymix进行相关控件的设置,下面以speaker为例进行说明,注意最后一行需要加上,代表打开I2S的播放控件。
 
tinymix "RX3 MIX1 INP1" "RX1"
tinymix "LINE_OUT" "Switch"
tinymix "SPK" "Switch"
    
tinymix "PRI_MI2S_RX Audio Mixer MultiMedia5" "1"
设置好上面控件后,执行tinypaly xxx.wav即可进行音频的播放
 
3.tinycap
tinycap是用来录音的,使用之前也需要先设置录音相关的控件,以主mix为例进行过说明,注意最后一行是打开I2S的录音控件
 
tinymix "ADC1 Volume" "6"
tinymix "DEC1 MUX" "ADC1"
tinymix "IIR1 INP1 MUX" "DEC1"
 
tinymix "MultiMedia1 Mixer TERT_MI2S_TX" "1"
设置好上面控件后,执行tinycap xxx.wav即可以将音频录制到xxx.wav中,Ctrl+C停止录音。
 
注意,最好使用linux进行测试,使用windows的话,可能没法正常录音。
 
相关概念:
Sample:样本长度,音频数据最基本的单位,常见的有8位和16位。
Channel:声道数,分为单声道mono和立体声stereo。
Frame:帧,构成一个完整的声音单元,Frame = Sample * channel。
Rate:又称Sample rate,采样率,即每秒的采样次数,针对帧而言。
Interleaved:交错模式,一种音频数据的记录方式,在交错模式下,数据以连续桢的形式存放,即首先记录完桢1的左声道样本和右声道样本(假设为立体声),再开始桢2的记录。而在非交错模式下,首先记录的是一个周期内所有桢的左声道样本,再记录右声道样本,数据是以连续通道的方式存储。多数情况下使用交错模式。
Period size:周期,每次硬件中断处理音频数据的帧数,对于音频设备的数据读写,以此为单位。
Buffer size:数据缓冲区大小,这里特指runtime的buffer size,而不是snd_pcm_hardware定义的buffer_bytes_max。一般来说Buffer size =period_size * period_count,period_count相当于处理完一个buffer数据所需的硬件中断次数。

  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: tinymix命令是一个Linux命令,它可以用来管理音频模块和控制音频设置。它的命令格式如下: tinymix [-D sound_card] [ctrl_name=value] 其中,sound_card代表声卡名称,ctrl_name代表音频控制器的名称,value代表相应的音频控制器的值。 具体来说,可以使用以下命令选项: -D:指定要控制的声卡名称。 ctrl_name:音频控制器的名称,例如“Mic Boost Volume”。可以使用命令tinymix -L”来列出可用的音频控制器列表。 value:相应音频控制器的值,例如“3”。具体值视不同的音频控制器而定。 使用tinymix命令,用户可以方便地控制和调整不同的音频设置,包括音量、混音和EQ等功能,从而获得更好的听觉体验。 ### 回答2: tinymix是一个命令行工具,可以用于控制音频设备的音量、通道、采样率等设置。它的基本命令格式如下: tinymix [OPTION] [PARAM] 其中,[OPTION]是命令选项,可以是下列任意一个或多个: - s:指定音频设备的编号,可以是数字或字符串形式; - D:指定音频设备的类型,如PCM、DMIC、ADC等; - c:指定音频设备的通道数; - r:指定音频设备的采样率; - d:设置音频设备的音量大小; - q:查询当前音频设备的设置参数; - h:显示帮助信息。 [PARAM]是指定的命令参数,它的具体值依赖于所选的命令选项。例如,当使用-d选项设置音量大小时,[PARAM]应该是一个介于0和255之间的整数。当使用-s选项指定设备编号时,[PARAM]应该是设备的编号值。 此外,tinymix还支持一些其他的高级命令,如tinymix -B检查音频设备是否即将溢出,tinymix -R重置音频设备等。总之,根据命令选项和参数的不同组合,可以使用tinymix来满足各种音频设备的控制需求。 ### 回答3: tinymix是一个命令行工具,它用于查询和控制Linux系统中的音频设置。它的命令格式如下: tinymix [OPTIONS] [CONTROL] OPTIONS是可选项,它们用于更改tinymix行为的方式。以下是一些可用的选项: -h 或 --help: 显示tinymix帮助信息; -r 或 --raw:以原始十六进制格式显示音频控制; -d 或 --device:使用指定的音频设备; -s 或 --system:使用系统级别的音频控制而不是用户级别的; -q 或 --quiet:不输出查询结果; -v 或 --version:显示tinymix的版本号。 CONTROL是要查询或更改的特定音频设置控制,它可以是设备或应用程序相关的。下面是一些可用的CONTROL: Master Playback Volume:系统主音量控制; Headphone Playback Volume:耳机音量控制; Capture Volume:录音音量控制; Noise Suppression:噪音抑制控制; Equalizer:均衡器控制; Playback PCM Device:指定用于播放的PCM声卡设备; Capture PCM Device:指定用于录制的PCM声卡设备; Audio Routing:设置音频路由等。 举例: 1. 查询主音量大小 tinymix 'Master Playback Volume' 2. 将主音量设置为30% tinymix 'Master Playback Volume' 30 通过使用tinymix命令,您可以更改主音量、录制音量、耳机音量等,以提高您在Linux系统上的音频体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值