ibressler / firesound

Volume control for USB Audio devices on Amazon Fire TV
GNU General Public License v3.0
2 stars 0 forks source link

Possible to add HDMI volume controll support? #1

Open sorryusernameisalreadytaken opened 6 years ago

sorryusernameisalreadytaken commented 6 years ago

Hey. THX for your nice work!

I had no Dell AC511 SoundBar so I need a way to reduce the output volume of the HDMI audio output and/or bluetooth audio output.

How can I do this?

ibressler commented 6 years ago

Hi, for bluetooth it will work if the volume controls are accessible via the tinymix program. To check this, you will need shell access on the device, preferably a shell with root permissions. An enumerated list of sound devices available can be found in the /proc/asound directory:

# cd /proc/asound
# ls -d card*

should produce output like this:

card0  card1  cards

It says, there are two cards: 0 and 1. Next, the tinymix command can be used to get more info about available controls:

# tinymix -D 0

or

# tinymix -D 1

Should output some textual description of the audio controls. At least one of the outputs has to have the words playback and volume somewhere. Please post the exact output of the tinymix commands for further introspection. Perhaps, it works with the scripts as they are or just a small fix is needed to get them working.

For HDMI, I don't know if it might work at all since it is a digital output stream internally which doesn't expose any volume controls, afaik.

I hope this helps.

sorryusernameisalreadytaken commented 6 years ago

I really want to give you the outputs but I had no tinymix for my FireTV bueller device.

Where can I get it and where should I push it to?

Greetings by sorryusernameisalreadytaken

ibressler commented 6 years ago

tinymix is a command which is supposed to be available out of the box on the FireTV. It has to be entered as shell command. A terminal emulator as provided by the SManager app can be used to do this. How this looks like, is shown in its manual here.

To get this working, it is required to root the FireTV as explained here for the FireTV2, for example. It is a lengthy procedure which gives access to the underlying system of the FireTV. Otherwise, the shell commands do not have the necessary (root) privileges to control the volume or even get info about available volume controls.

Are you sure, your FireTV is rooted and you typed tinymix in a terminal emulator shell?

sorryusernameisalreadytaken commented 6 years ago

Yes I am sure :)

Here is my adb cmd: C:\Program Files (x86)\Minimal ADB and Fastboot>adb connect 192.168.0.34 * daemon not running. starting it now on port 5037 * * daemon started successfully * connected to 192.168.0.34:5555 C:\Program Files (x86)\Minimal ADB and Fastboot>adb shell shell@bueller:/ $ su root@bueller:/ # cd /proc/asound root@bueller:/proc/asound # ls -d card* card0 cards root@bueller:/proc/asound # tinymix sh: tinymix: not found root@bueller:/proc/asound # tinymix -D 0 sh: tinymix: not found

Are you sure that FireTV1 bueller has tinymix? I am currently on rbox's preRooted rom 5.2.6.0_r1. If it has not, how difficult is it to compile one for the bueller? I think your FireTV2 ist arm64 based and the buller just arm. So I think your tinymix can not run on my machine.

Greetings by sorryusernameisalreadytaken

ibressler commented 6 years ago

Ok, thanks for the terminal output :) I'm not sure if the shell environment you get by ADB or directly on the device (terminal emulator app) is the same (regarding available commands). Assuming it is, we need to check if it really doesn't exist. The following commands would help:

Show which directories are searched for commands:

root@bueller:/ # echo $PATH

Typical paths would be /bin, /usr/bin, /sbin, /usr/sbin. Perhaps, it is found in any of these? Otherwise, I need to check my FireTV by tomorrow.

sorryusernameisalreadytaken commented 6 years ago
root@bueller:/ # echo $PATH
/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin

Just /sbin exits but there is no tinymix in it.

Greetings by sorryusernameisalreadytaken

EDIT: I do: ls -Ra | grep tinymix and found no tinymix :-( EDIT2: Got it 👍 I download the the current bueller stock rom: http://www.aftvnews.com/amazon-fire-tv-fire-tv-stick-software-update-history/ update-kindle-bueller-51.5.8.7_user_587444320.bin Then I extract the bin with winrar/7zip and got the "system.new.dat" and "system.transfer.list" and extract them with an tool from xda. There I found the tinymix excutable in /system/bin.

Just push the tinymix excutable to my bueller and made:

su
mount -o remount,rw /system
mv /data/media/0/tinymix /system/bin/
chmod 4755 /system/bin/tinymix
mount -o remount,ro /system

Now I can give the outputs:

root@bueller:/ # tinymix -D 0
Mixer name: 'bueller-snd-card'
Number of controls: 343
ctl     type    num     name                                     value
0       BOOL    1       Voice Rx Device Mute                     Off
1       BOOL    1       Voice Tx Mute                            Off
2       INT     1       Voice Rx Volume                          0
3       ENUM    1       TTY Mode                                 OFF
4       BOOL    1       Widevoice Enable                         Off
5       BOOL    1       Slowtalk Enable                          Off
6       BOOL    1       FENS Enable                              Off
7       BOOL    1       VoLTE Rx Device Mute                     Off
8       BOOL    1       VoLTE Tx Mute                            Off
9       INT     1       VoLTE Rx Volume                          0
10      BOOL    1       Voice2 Rx Device Mute                    Off
11      BOOL    1       Voice2 Tx Mute                           Off
12      INT     1       Voice2 Rx Volume                         0
13      BOOL    1       Voip Tx Mute                             Off
14      INT     1       Voip Rx Volume                           0
15      INT     2       Voip Mode Rate Config                    12 0
16      BOOL    1       Voip Dtx Mode                            Off
17      BOOL    1       Voice2 Stub Tx Mixer STUB_TX_HL          Off
18      BOOL    1       Voice2 Stub Tx Mixer INTERNAL_BT_SCO_TX  Off
19      BOOL    1       Voice2 Stub Tx Mixer SLIM_1_TX           Off
20      BOOL    1       Voice2 Stub Tx Mixer STUB_1_TX_HL        Off
21      BOOL    1       Voice2 Stub Tx Mixer MI2S_TX             Off
22      BOOL    1       Voice2 Stub Tx Mixer SLIM_3_TX           Off
23      BOOL    1       Voice2 Stub Tx Mixer PRIMARY_I2S_TX      Off
24      BOOL    1       Voice2 Stub Tx Mixer AFE_PCM_TX          Off
25      BOOL    1       VoLTE Stub Tx Mixer STUB_TX_HL           Off
26      BOOL    1       VoLTE Stub Tx Mixer INTERNAL_BT_SCO_TX   Off
27      BOOL    1       VoLTE Stub Tx Mixer SLIM_1_TX            Off
28      BOOL    1       VoLTE Stub Tx Mixer STUB_1_TX_HL         Off
29      BOOL    1       VoLTE Stub Tx Mixer MI2S_TX              Off
30      BOOL    1       VoLTE Stub Tx Mixer SLIM_3_TX            Off
31      BOOL    1       VoLTE Stub Tx Mixer PRIMARY_I2S_TX       Off
32      BOOL    1       VoLTE Stub Tx Mixer AFE_PCM_TX           Off
33      BOOL    1       MI2S_RX Port Mixer SLIM_1_TX             Off
34      BOOL    1       SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX Off
35      BOOL    1       SLIMBUS_3_RX Port Mixer MI2S_TX          Off
36      BOOL    1       SLIMBUS_3_RX Port Mixer AFE_PCM_RX       Off
37      BOOL    1       SEC_I2S_RX Port Mixer MI2S_TX            Off
38      BOOL    1       HDMI_RX Port Mixer MI2S_TX               Off
39      BOOL    1       HDMI_RX Port Mixer SLIM_3_TX             Off
40      BOOL    1       AFE_PCM_RX Port Mixer INTERNAL_FM_TX     Off
41      BOOL    1       AFE_PCM_RX Port Mixer SLIM_1_TX          Off
42      BOOL    1       INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX  Off
43      BOOL    1       SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX Off
44      BOOL    1       SLIMBUS_1_RX Port Mixer AFE_PCM_TX       Off
45      BOOL    1       AUXPCM_RX Port Mixer AUX_PCM_UL_TX       Off
46      BOOL    1       AUXPCM_RX Port Mixer SLIM_0_TX           Off
47      BOOL    1       SLIMBUS_0_RX Port Mixer INTERNAL_FM_TX   Off
48      BOOL    1       SLIMBUS_0_RX Port Mixer SLIM_0_TX        Off
49      BOOL    1       SLIMBUS_0_RX Port Mixer AUX_PCM_UL_TX    Off
50      BOOL    1       SLIMBUS_0_RX Port Mixer MI2S_TX          Off
51      BOOL    1       SLIMBUS_3_RX_Voice Mixer Voice Stub      Off
52      BOOL    1       SLIMBUS_3_RX_Voice Mixer VoLTE Stub      Off
53      BOOL    1       SLIMBUS_3_RX_Voice Mixer Voice2 Stub     Off
54      BOOL    1       SLIMBUS_1_RX Mixer Voice Stub            Off
55      BOOL    1       SLIMBUS_1_RX Mixer VoLTE Stub            Off
56      BOOL    1       SLIMBUS_1_RX Mixer Voice2 Stub           Off
57      BOOL    1       STUB_RX Mixer Voice Stub                 Off
58      BOOL    1       STUB_RX Mixer VoLTE Stub                 Off
59      BOOL    1       STUB_RX Mixer Voice2 Stub                Off
60      BOOL    1       Voice Stub Tx Mixer STUB_TX_HL           Off
61      BOOL    1       Voice Stub Tx Mixer INTERNAL_BT_SCO_TX   Off
62      BOOL    1       Voice Stub Tx Mixer SLIM_1_TX            Off
63      BOOL    1       Voice Stub Tx Mixer STUB_1_TX_HL         Off
64      BOOL    1       Voice Stub Tx Mixer MI2S_TX              Off
65      BOOL    1       Voice Stub Tx Mixer SLIM_3_TX            Off
66      BOOL    1       Voice Stub Tx Mixer PRIMARY_I2S_TX       Off
67      BOOL    1       Voice Stub Tx Mixer AFE_PCM_TX           Off
68      BOOL    1       AFE_PCM_RX Audio Mixer MultiMedia1       Off
69      BOOL    1       AFE_PCM_RX Audio Mixer MultiMedia2       Off
70      BOOL    1       AFE_PCM_RX Audio Mixer MultiMedia3       Off
71      BOOL    1       AFE_PCM_RX Audio Mixer MultiMedia4       Off
72      BOOL    1       AFE_PCM_RX Audio Mixer MultiMedia5       Off
73      BOOL    1       AFE_PCM_RX Audio Mixer MultiMedia7       Off
74      BOOL    1       AFE_PCM_RX Audio Mixer MultiMedia8       Off
75      BOOL    1       AFE_PCM_RX Audio Mixer MultiMedia9       Off
76      BOOL    1       AFE_PCM_RX Audio Mixer MultiMedia10      Off
77      BOOL    1       AFE_PCM_RX Audio Mixer MultiMedia11      Off
78      BOOL    1       INTERNAL_FM_RX Audio Mixer MultiMedia1   Off
79      BOOL    1       INTERNAL_FM_RX Audio Mixer MultiMedia2   Off
80      BOOL    1       INTERNAL_FM_RX Audio Mixer MultiMedia3   Off
81      BOOL    1       INTERNAL_FM_RX Audio Mixer MultiMedia4   Off
82      BOOL    1       INTERNAL_FM_RX Audio Mixer MultiMedia5   Off
83      BOOL    1       INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1 Off
84      BOOL    1       INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2 Off
85      BOOL    1       INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3 Off
86      BOOL    1       INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4 Off
87      BOOL    1       INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5 Off
88      BOOL    1       Voice2_Tx Mixer PRI_TX_Voice2            Off
89      BOOL    1       Voice2_Tx Mixer MI2S_TX_Voice2           Off
90      BOOL    1       Voice2_Tx Mixer SLIM_0_TX_Voice2         Off
91      BOOL    1       Voice2_Tx Mixer INTERNAL_BT_SCO_TX_Voice2 Off
92      BOOL    1       Voice2_Tx Mixer AFE_PCM_TX_Voice2        Off
93      BOOL    1       Voice2_Tx Mixer AUX_PCM_TX_Voice2        Off
94      BOOL    1       Voice2_Tx Mixer SEC_AUX_PCM_TX_Voice2    Off
95      BOOL    1       VoLTE_Tx Mixer PRI_TX_VoLTE              Off
96      BOOL    1       VoLTE_Tx Mixer SLIM_0_TX_VoLTE           Off
97      BOOL    1       VoLTE_Tx Mixer INTERNAL_BT_SCO_TX_VoLTE  Off
98      BOOL    1       VoLTE_Tx Mixer AFE_PCM_TX_VoLTE          Off
99      BOOL    1       VoLTE_Tx Mixer AUX_PCM_TX_VoLTE          Off
100     BOOL    1       VoLTE_Tx Mixer SEC_AUX_PCM_TX_VoLTE      Off
101     BOOL    1       Voip_Tx Mixer PRI_TX_Voip                Off
102     BOOL    1       Voip_Tx Mixer MI2S_TX_Voip               Off
103     BOOL    1       Voip_Tx Mixer SLIM_0_TX_Voip             Off
104     BOOL    1       Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip    Off
105     BOOL    1       Voip_Tx Mixer AFE_PCM_TX_Voip            Off
106     BOOL    1       Voip_Tx Mixer AUX_PCM_TX_Voip            Off
107     BOOL    1       Voip_Tx Mixer SEC_AUX_PCM_TX_Voip        Off
108     BOOL    1       Voice_Tx Mixer PRI_TX_Voice              Off
109     BOOL    1       Voice_Tx Mixer MI2S_TX_Voice             Off
110     BOOL    1       Voice_Tx Mixer SLIM_0_TX_Voice           Off
111     BOOL    1       Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice  Off
112     BOOL    1       Voice_Tx Mixer AFE_PCM_TX_Voice          Off
113     BOOL    1       Voice_Tx Mixer AUX_PCM_TX_Voice          Off
114     BOOL    1       Voice_Tx Mixer SEC_AUX_PCM_TX_Voice      Off
115     BOOL    1       MI2S_RX_Voice Mixer Voice Stub           Off
116     BOOL    1       MI2S_RX_Voice Mixer VoLTE Stub           Off
117     BOOL    1       MI2S_RX_Voice Mixer Voice2 Stub          Off
118     BOOL    1       HDMI_RX_Voice Mixer CSVoice              Off
119     BOOL    1       HDMI_RX_Voice Mixer Voip                 Off
120     BOOL    1       HDMI_RX_Voice Mixer VoLTE                Off
121     BOOL    1       HDMI_RX_Voice Mixer Voice Stub           Off
122     BOOL    1       HDMI_RX_Voice Mixer VoLTE Stub           Off
123     BOOL    1       HDMI_RX_Voice Mixer Voice2 Stub          Off
124     BOOL    1       HDMI_RX_Voice Mixer Voice2               Off
125     BOOL    1       SEC_AUX_PCM_RX_Voice Mixer CSVoice       Off
126     BOOL    1       SEC_AUX_PCM_RX_Voice Mixer Voip          Off
127     BOOL    1       SEC_AUX_PCM_RX_Voice Mixer VoLTE         Off
128     BOOL    1       SEC_AUX_PCM_RX_Voice Mixer Voice2        Off
129     BOOL    1       AUX_PCM_RX_Voice Mixer CSVoice           Off
130     BOOL    1       AUX_PCM_RX_Voice Mixer Voip              Off
131     BOOL    1       AUX_PCM_RX_Voice Mixer VoLTE             Off
132     BOOL    1       AUX_PCM_RX_Voice Mixer Voice2            Off
133     BOOL    1       AFE_PCM_RX_Voice Mixer CSVoice           Off
134     BOOL    1       AFE_PCM_RX_Voice Mixer Voip              Off
135     BOOL    1       AFE_PCM_RX_Voice Mixer Voice Stub        Off
136     BOOL    1       AFE_PCM_RX_Voice Mixer VoLTE Stub        Off
137     BOOL    1       AFE_PCM_RX_Voice Mixer Voice2 Stub       Off
138     BOOL    1       AFE_PCM_RX_Voice Mixer VoLTE             Off
139     BOOL    1       AFE_PCM_RX_Voice Mixer Voice2            Off
140     BOOL    1       INTERNAL_BT_SCO_RX_Voice Mixer CSVoice   Off
141     BOOL    1       INTERNAL_BT_SCO_RX_Voice Mixer Voip      Off
142     BOOL    1       INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub Off
143     BOOL    1       INTERNAL_BT_SCO_RX_Voice Mixer VoLTE Stub Off
144     BOOL    1       INTERNAL_BT_SCO_RX_Voice Mixer Voice2 Stub Off
145     BOOL    1       INTERNAL_BT_SCO_RX_Voice Mixer VoLTE     Off
146     BOOL    1       INTERNAL_BT_SCO_RX_Voice Mixer Voice2    Off
147     BOOL    1       SLIM_0_RX_Voice Mixer CSVoice            Off
148     BOOL    1       SLIM_0_RX_Voice Mixer Voip               Off
149     BOOL    1       SLIM_0_RX_Voice Mixer VoLTE              Off
150     BOOL    1       SLIM_0_RX_Voice Mixer Voice2             Off
151     BOOL    1       SEC_RX_Voice Mixer CSVoice               Off
152     BOOL    1       SEC_RX_Voice Mixer Voip                  Off
153     BOOL    1       SEC_RX_Voice Mixer VoLTE                 Off
154     BOOL    1       SEC_RX_Voice Mixer Voice2                Off
155     BOOL    1       PRI_RX_Voice Mixer CSVoice               Off
156     BOOL    1       PRI_RX_Voice Mixer Voip                  Off
157     BOOL    1       PRI_RX_Voice Mixer VoLTE                 Off
158     BOOL    1       PRI_RX_Voice Mixer Voice2                Off
159     BOOL    1       SLIMBUS_4_RX Audio Mixer MultiMedia1     Off
160     BOOL    1       SLIMBUS_4_RX Audio Mixer MultiMedia2     Off
161     BOOL    1       Incall_Music Audio Mixer MultiMedia1     Off
162     BOOL    1       Incall_Music Audio Mixer MultiMedia2     Off
163     BOOL    1       SEC_AUX_PCM_RX Audio Mixer MultiMedia1   Off
164     BOOL    1       SEC_AUX_PCM_RX Audio Mixer MultiMedia2   Off
165     BOOL    1       AUX_PCM_RX Audio Mixer MultiMedia1       Off
166     BOOL    1       AUX_PCM_RX Audio Mixer MultiMedia2       Off
167     BOOL    1       AUX_PCM_RX Audio Mixer MultiMedia3       Off
168     BOOL    1       AUX_PCM_RX Audio Mixer MultiMedia4       Off
169     BOOL    1       AUX_PCM_RX Audio Mixer MultiMedia5       Off
170     BOOL    1       MultiMedia5 Mixer SLIM_0_TX              Off
171     BOOL    1       MultiMedia5 Mixer INTERNAL_FM_TX         Off
172     BOOL    1       MultiMedia5 Mixer AFE_PCM_TX             Off
173     BOOL    1       MultiMedia5 Mixer INTERNAL_BT_SCO_TX     Off
174     BOOL    1       MultiMedia4 Mixer MI2S_TX                Off
175     BOOL    1       MultiMedia4 Mixer SLIM_0_TX              Off
176     BOOL    1       MultiMedia2 Mixer INTERNAL_FM_TX         Off
177     BOOL    1       MultiMedia2 Mixer MI2S_TX                Off
178     BOOL    1       MultiMedia1 Mixer PRI_TX                 Off
179     BOOL    1       MultiMedia1 Mixer MI2S_TX                Off
180     BOOL    1       MultiMedia1 Mixer SLIM_0_TX              Off
181     BOOL    1       MultiMedia1 Mixer AUX_PCM_UL_TX          Off
182     BOOL    1       MultiMedia1 Mixer SEC_AUX_PCM_UL_TX      Off
183     BOOL    1       MultiMedia1 Mixer INTERNAL_BT_SCO_TX     Off
184     BOOL    1       MultiMedia1 Mixer INTERNAL_FM_TX         Off
185     BOOL    1       MultiMedia1 Mixer AFE_PCM_TX             Off
186     BOOL    1       MultiMedia1 Mixer VOC_REC_DL             Off
187     BOOL    1       MultiMedia1 Mixer VOC_REC_UL             Off
188     BOOL    1       MultiMedia1 Mixer SLIM_4_TX              Off
189     BOOL    1       MI2S_RX Audio Mixer MultiMedia1          On
190     BOOL    1       MI2S_RX Audio Mixer MultiMedia2          Off
191     BOOL    1       MI2S_RX Audio Mixer MultiMedia3          Off
192     BOOL    1       MI2S_RX Audio Mixer MultiMedia4          Off
193     BOOL    1       MI2S_RX Audio Mixer MultiMedia5          Off
194     BOOL    1       MI2S_RX Audio Mixer MultiMedia6          Off
195     BOOL    1       MI2S_RX Audio Mixer MultiMedia7          Off
196     BOOL    1       MI2S_RX Audio Mixer MultiMedia8          Off
197     BOOL    1       MI2S_RX Audio Mixer MultiMedia9          Off
198     BOOL    1       MI2S_RX Audio Mixer MultiMedia10         Off
199     BOOL    1       MI2S_RX Audio Mixer MultiMedia11         Off
200     BOOL    1       PSEUDO Mixer MultiMedia4                 Off
201     BOOL    1       PSEUDO Mixer MultiMedia7                 Off
202     BOOL    1       PSEUDO Mixer MultiMedia8                 Off
203     BOOL    1       PSEUDO Mixer MultiMedia9                 Off
204     BOOL    1       PSEUDO Mixer MultiMedia10                Off
205     BOOL    1       PSEUDO Mixer MultiMedia11                Off
206     BOOL    1       HDMI Mixer MultiMedia1                   On
207     BOOL    1       HDMI Mixer MultiMedia2                   Off
208     BOOL    1       HDMI Mixer MultiMedia3                   Off
209     BOOL    1       HDMI Mixer MultiMedia4                   Off
210     BOOL    1       HDMI Mixer MultiMedia5                   Off
211     BOOL    1       HDMI Mixer MultiMedia6                   Off
212     BOOL    1       HDMI Mixer MultiMedia7                   Off
213     BOOL    1       HDMI Mixer MultiMedia8                   Off
214     BOOL    1       HDMI Mixer MultiMedia9                   Off
215     BOOL    1       HDMI Mixer MultiMedia10                  Off
216     BOOL    1       HDMI Mixer MultiMedia11                  Off
217     BOOL    1       HDMI Mixer Pseudo                        Off
218     BOOL    1       SLIMBUS_0_RX Audio Mixer MultiMedia1     Off
219     BOOL    1       SLIMBUS_0_RX Audio Mixer MultiMedia2     Off
220     BOOL    1       SLIMBUS_0_RX Audio Mixer MultiMedia3     Off
221     BOOL    1       SLIMBUS_0_RX Audio Mixer MultiMedia4     Off
222     BOOL    1       SLIMBUS_0_RX Audio Mixer MultiMedia5     Off
223     BOOL    1       SLIMBUS_0_RX Audio Mixer MultiMedia6     Off
224     BOOL    1       SLIMBUS_0_RX Audio Mixer MultiMedia7     Off
225     BOOL    1       SLIMBUS_0_RX Audio Mixer MultiMedia8     Off
226     BOOL    1       SLIMBUS_0_RX Audio Mixer MultiMedia9     Off
227     BOOL    1       SLIMBUS_0_RX Audio Mixer MultiMedia10    Off
228     BOOL    1       SLIMBUS_0_RX Audio Mixer MultiMedia11    Off
229     BOOL    1       SEC_RX Audio Mixer MultiMedia1           Off
230     BOOL    1       SEC_RX Audio Mixer MultiMedia2           Off
231     BOOL    1       SEC_RX Audio Mixer MultiMedia3           Off
232     BOOL    1       SEC_RX Audio Mixer MultiMedia4           Off
233     BOOL    1       SEC_RX Audio Mixer MultiMedia5           Off
234     BOOL    1       SEC_RX Audio Mixer MultiMedia6           Off
235     BOOL    1       SEC_RX Audio Mixer MultiMedia7           Off
236     BOOL    1       SEC_RX Audio Mixer MultiMedia8           Off
237     BOOL    1       SEC_RX Audio Mixer MultiMedia9           Off
238     BOOL    1       SEC_RX Audio Mixer MultiMedia10          Off
239     BOOL    1       SEC_RX Audio Mixer MultiMedia11          Off
240     BOOL    1       SEC_RX Audio Mixer Pseudo                Off
241     BOOL    1       PRI_RX Audio Mixer MultiMedia1           Off
242     BOOL    1       PRI_RX Audio Mixer MultiMedia2           Off
243     BOOL    1       PRI_RX Audio Mixer MultiMedia3           Off
244     BOOL    1       PRI_RX Audio Mixer MultiMedia4           Off
245     BOOL    1       PRI_RX Audio Mixer MultiMedia5           Off
246     BOOL    1       PRI_RX Audio Mixer MultiMedia6           Off
247     BOOL    1       PRI_RX Audio Mixer MultiMedia7           Off
248     BOOL    1       PRI_RX Audio Mixer MultiMedia8           Off
249     BOOL    1       PRI_RX Audio Mixer MultiMedia9           Off
250     BOOL    1       PRI_RX Audio Mixer MultiMedia10          Off
251     BOOL    1       PRI_RX Audio Mixer MultiMedia11          Off
252     BOOL    1       PCM_RX_DL_HL Switch                      Off
253     BOOL    1       SLIMBUS_DL_HL Switch                     Off
254     INT     1       Internal FM RX Volume                    0
255     INT     1       LPA RX Volume                            0
256     BOOL    1       MultiMedia1 EQ Enable                    Off
257     BOOL    1       MultiMedia2 EQ Enable                    Off
258     BOOL    1       MultiMedia3 EQ Enable                    Off
259     INT     1       MultiMedia1 EQ Band Count                0
260     INT     1       MultiMedia2 EQ Band Count                0
261     INT     1       MultiMedia3 EQ Band Count                0
262     INT     5       MultiMedia1 EQ Band1                     0 0 0 0 0
263     INT     5       MultiMedia1 EQ Band2                     0 0 0 0 0
264     INT     5       MultiMedia1 EQ Band3                     0 0 0 0 0
265     INT     5       MultiMedia1 EQ Band4                     0 0 0 0 0
266     INT     5       MultiMedia1 EQ Band5                     0 0 0 0 0
267     INT     5       MultiMedia1 EQ Band6                     0 0 0 0 0
268     INT     5       MultiMedia1 EQ Band7                     0 0 0 0 0
269     INT     5       MultiMedia1 EQ Band8                     0 0 0 0 0
270     INT     5       MultiMedia1 EQ Band9                     0 0 0 0 0
271     INT     5       MultiMedia1 EQ Band10                    0 0 0 0 0
272     INT     5       MultiMedia1 EQ Band11                    0 0 0 0 0
273     INT     5       MultiMedia1 EQ Band12                    0 0 0 0 0
274     INT     5       MultiMedia2 EQ Band1                     0 0 0 0 0
275     INT     5       MultiMedia2 EQ Band2                     0 0 0 0 0
276     INT     5       MultiMedia2 EQ Band3                     0 0 0 0 0
277     INT     5       MultiMedia2 EQ Band4                     0 0 0 0 0
278     INT     5       MultiMedia2 EQ Band5                     0 0 0 0 0
279     INT     5       MultiMedia2 EQ Band6                     0 0 0 0 0
280     INT     5       MultiMedia2 EQ Band7                     0 0 0 0 0
281     INT     5       MultiMedia2 EQ Band8                     0 0 0 0 0
282     INT     5       MultiMedia2 EQ Band9                     0 0 0 0 0
283     INT     5       MultiMedia2 EQ Band10                    0 0 0 0 0
284     INT     5       MultiMedia2 EQ Band11                    0 0 0 0 0
285     INT     5       MultiMedia2 EQ Band12                    0 0 0 0 0
286     INT     5       MultiMedia3 EQ Band1                     0 0 0 0 0
287     INT     5       MultiMedia3 EQ Band2                     0 0 0 0 0
288     INT     5       MultiMedia3 EQ Band3                     0 0 0 0 0
289     INT     5       MultiMedia3 EQ Band4                     0 0 0 0 0
290     INT     5       MultiMedia3 EQ Band5                     0 0 0 0 0
291     INT     5       MultiMedia3 EQ Band6                     0 0 0 0 0
292     INT     5       MultiMedia3 EQ Band7                     0 0 0 0 0
293     INT     5       MultiMedia3 EQ Band8                     0 0 0 0 0
294     INT     5       MultiMedia3 EQ Band9                     0 0 0 0 0
295     INT     5       MultiMedia3 EQ Band10                    0 0 0 0 0
296     INT     5       MultiMedia3 EQ Band11                    0 0 0 0 0
297     INT     5       MultiMedia3 EQ Band12                    0 0 0 0 0
298     INT     1       SRS TruMedia                             0
299     INT     1       SRS TruMedia HDMI                        0
300     INT     1       SRS TruMedia I2S                         0
301     INT     1       SRS SS3D                                 0
302     INT     1       SRS SS3D HDMI                            0
303     INT     1       SRS SS3D I2S                             0
304     ENUM    1       EC_REF_RX                                SLIM_RX
305     INT     8       Playback Channel Map                     1 2 0 0 0 0 0 0
306     INT     3       Device PP Params                         0 0 0
307     ENUM    1       HDMI RX Format                           LPCM
308     INT     1       HDMI RX CA                               0
309     ENUM    1       MI2S RX Format                           LPCM
310     INT     1       IEC958 DIT4192 Input Status              -1
311     INT     1       IEC958 DIT4192 Error Status              -1
312     IEC958  1       IEC958 Playback Mask                     unknown
313     IEC958  1       IEC958 Playback Default                  unknown
314     IEC958  1       IEC958 Playback PCM Stream               unknown
315     BYTE    10      IEC958 Q-subcode Capture Default        00000000000000000000
316     INT     8       Playback Channel Map1                    0 0 0 0 0 0 0 0
317     INT     1       Playback Volume1                         -1
318     INT     8       Playback Channel Map4                    0 0 0 0 0 0 0 0
319     INT     1       Playback Volume4                         -1
320     INT     8       Playback Channel Map9                    0 0 0 0 0 0 0 0
321     INT     1       Playback Volume9                         -1
322     INT     8       Playback Channel Map14                   0 0 0 0 0 0 0 0
323     INT     1       Playback Volume14                        -1
324     INT     8       Playback Channel Map15                   0 0 0 0 0 0 0 0
325     INT     1       Playback Volume15                        -1
326     INT     8       Playback Channel Map16                   0 0 0 0 0 0 0 0
327     INT     1       Playback Volume16                        -1
328     INT     8       Playback Channel Map17                   0 0 0 0 0 0 0 0
329     INT     1       Playback Volume17                        -1
330     INT     8       Playback Channel Map20                   0 0 0 0 0 0 0 0
331     INT     1       Playback Volume20                        -1
332     INT     8       Playback Channel Map21                   0 0 0 0 0 0 0 0
333     INT     1       Playback Volume21                        -1
334     INT     8       Playback Channel Map22                   0 0 0 0 0 0 0 0
335     INT     1       Playback Volume22                        -1
336     ENUM    1       Speaker Function                         Off
337     ENUM    1       SLIM_0_RX Channels                       One
338     ENUM    1       SLIM_0_TX Channels                       One
339     ENUM    1       HDMI_RX Channels                         Two
340     ENUM    1       SEC RX Rate                              Default
341     ENUM    1       HDMI RX Rate                             Default
342     ENUM    1       MI2S RX Rate                             Default

and:

root@bueller:/ # tinymix -D 1
Failed to open mixer
ibressler commented 6 years ago

Hey, good work that you found it! Indeed, I've a FireTV2 (fw 5.0.5) and tinymix resides in /system/bin as well.

I'm surprised by the massive amount of controls you've got for card 0. Mine had just a few with single digit mixer ids (count<10). My volume control script scripts/set_volume.sh tries to figure out the appropriate mixer control automatically by searching for playback volume controls which support a value range. If we get it working, that script needs to be modified finally to cope with multiple possible volume controls ...

Lets check this manually: It retrieves playback volume controls by calling

tinymix -D 0 | grep -i playback | grep -i volume

To get the mixer control ids only, we need an additional grep call:

tinymix -D 0 | grep -i playback | grep -i volume | grep -o '^[0-9]\+'

That produces a list of mixer ids:

317
319
321
323
325
327
329
331
333
335

Now, the properties of those mixers are of interest. You can get them for all ids with a for loop oneliner:

CARD=0; for MIXERCTRL in $(tinymix -D 0 | grep -i playback | grep -i volume | grep -o '^[0-9]\+'); do CMD="tinymix -D $CARD $MIXERCTRL"; echo "$CMD:"; $CMD; done

I'm interested in that output. My script expects a range definition somewhere (e.g. '1->49').

sorryusernameisalreadytaken commented 6 years ago

Just the regex wont work, so I kick it to give you anything:

tinymix -D 0 | grep -i playback | grep -i volume
317     INT     1       Playback Volume1                         -1
319     INT     1       Playback Volume4                         -1
321     INT     1       Playback Volume9                         -1
323     INT     1       Playback Volume14                        -1
325     INT     1       Playback Volume15                        -1
327     INT     1       Playback Volume16                        -1
329     INT     1       Playback Volume17                        -1
331     INT     1       Playback Volume20                        -1
333     INT     1       Playback Volume21                        -1
335     INT     1       Playback Volume22                        -1
CARD=0; for MIXERCTRL in $(tinymix -D 0 | grep -i playback | grep -i volume | grep -o '^[0-9]\+'); do CMD="tinymix -D $CARD $MIXERCTRL"; echo "$CMD:"; $CMD; done
tinymix -D 0 317:
Playback Volume1: -1 (range 0->-1)
tinymix -D 0 INT:
Invalid mixer control
tinymix -D 0 1:
Voice Tx Mute: Off
tinymix -D 0 Playback:
Invalid mixer control
tinymix -D 0 Volume1:
Invalid mixer control
tinymix -D 0 -1:
Invalid mixer control
tinymix -D 0 319:
Playback Volume4: -1 (range 0->-1)
tinymix -D 0 INT:
Invalid mixer control
tinymix -D 0 1:
Voice Tx Mute: Off
tinymix -D 0 Playback:
Invalid mixer control
tinymix -D 0 Volume4:
Invalid mixer control
tinymix -D 0 -1:
Invalid mixer control
tinymix -D 0 321:
Playback Volume9: -1 (range 0->-1)
tinymix -D 0 INT:
Invalid mixer control
tinymix -D 0 1:
Voice Tx Mute: Off
tinymix -D 0 Playback:
Invalid mixer control
tinymix -D 0 Volume9:
Invalid mixer control
tinymix -D 0 -1:
Invalid mixer control
tinymix -D 0 323:
Playback Volume14: -1 (range 0->-1)
tinymix -D 0 INT:
Invalid mixer control
tinymix -D 0 1:
Voice Tx Mute: Off
tinymix -D 0 Playback:
Invalid mixer control
tinymix -D 0 Volume14:
Invalid mixer control
tinymix -D 0 -1:
Invalid mixer control
tinymix -D 0 325:
Playback Volume15: -1 (range 0->-1)
tinymix -D 0 INT:
Invalid mixer control
tinymix -D 0 1:
Voice Tx Mute: Off
tinymix -D 0 Playback:
Invalid mixer control
tinymix -D 0 Volume15:
Invalid mixer control
tinymix -D 0 -1:
Invalid mixer control
tinymix -D 0 327:
Playback Volume16: -1 (range 0->-1)
tinymix -D 0 INT:
Invalid mixer control
tinymix -D 0 1:
Voice Tx Mute: Off
tinymix -D 0 Playback:
Invalid mixer control
tinymix -D 0 Volume16:
Invalid mixer control
tinymix -D 0 -1:
Invalid mixer control
tinymix -D 0 329:
Playback Volume17: -1 (range 0->-1)
tinymix -D 0 INT:
Invalid mixer control
tinymix -D 0 1:
Voice Tx Mute: Off
tinymix -D 0 Playback:
Invalid mixer control
tinymix -D 0 Volume17:
Invalid mixer control
tinymix -D 0 -1:
Invalid mixer control
tinymix -D 0 331:
Playback Volume20: -1 (range 0->-1)
tinymix -D 0 INT:
Invalid mixer control
tinymix -D 0 1:
Voice Tx Mute: Off
tinymix -D 0 Playback:
Invalid mixer control
tinymix -D 0 Volume20:
Invalid mixer control
tinymix -D 0 -1:
Invalid mixer control
tinymix -D 0 333:
Playback Volume21: -1 (range 0->-1)
tinymix -D 0 INT:
Invalid mixer control
tinymix -D 0 1:
Voice Tx Mute: Off
tinymix -D 0 Playback:
Invalid mixer control
tinymix -D 0 Volume21:
Invalid mixer control
tinymix -D 0 -1:
Invalid mixer control
tinymix -D 0 335:
Playback Volume22: -1 (range 0->-1)
tinymix -D 0 INT:
Invalid mixer control
tinymix -D 0 1:
Voice Tx Mute: Off
tinymix -D 0 Playback:
Invalid mixer control
tinymix -D 0 Volume22:
Invalid mixer control
tinymix -D 0 -1:
Invalid mixer control
ibressler commented 6 years ago

No problem, the last grep seems to fail. Omitting the backslash and adding an -E should fix it:

tinymix -D 0 | grep -i playback | grep -i volume | grep -oE '^[0-9]+'

However, results like Playback Volume22: -1 (range 0->-1) don't look promising. Perhaps we need to check other mixer controls as well. I'll have a look on my box ...

It seems, only the USB SoundBar offers tunable volume controls (of type INT with a positive value number, or more). The internal card 0 does not provide this:

# tinymix -D 1
Mixer name: 'Dell AC511 USB SoundBar'
Number of controls: 7
ctl     type    num     name                                     value
0       INT     2       Playback Channel Map                     0 0
1       INT     2       Playback Sample Rates                    48000 44100
2       INT     2       Capture Sample Rates                     48000 44100
3       BOOL    1       Line Capture Switch                      Off
4       INT     2       Line Capture Volume                      51 51
5       BOOL    1       PCM Playback Switch                      On
6       INT     2       PCM Playback Volume                      51 51

Of interest is the latest control 6 which can be used for volume control. The details if that mixer control looks like this:

# tinymix -D 1 6
PCM Playback Volume: 51 51 (range 0->51)

Showing the range, mentioned above.

Therefore, it might work if you add an additional audio sink, i.e. output device, such as bluetooth output you mentioned initially. That might work better.

sorryusernameisalreadytaken commented 6 years ago

THX for your reply, ok let us try a bluetooth speaker. It a Anker A7910 without own volume-control. (useless with a FireTV yet :D) I connect it with my bueller device and I hear, very loud, sound.

tinymix -D 0 | grep -i playback | grep -i volume
317     INT     1       Playback Volume1                         -1
319     INT     1       Playback Volume4                         -1
321     INT     1       Playback Volume9                         -1
323     INT     1       Playback Volume14                        -1
325     INT     1       Playback Volume15                        -1
327     INT     1       Playback Volume16                        -1
329     INT     1       Playback Volume17                        -1
331     INT     1       Playback Volume20                        -1
333     INT     1       Playback Volume21                        -1
335     INT     1       Playback Volume22                        -1

All ID give me this:

root@bueller:/ # tinymix -D 0 335
Playback Volume22: -1 (range 0->-1)
root@bueller:/ # tinymix -D 0 333
Playback Volume21: -1 (range 0->-1)
root@bueller:/ # tinymix -D 0 331
Playback Volume20: -1 (range 0->-1)
root@bueller:/ # tinymix -D 0 329
Playback Volume17: -1 (range 0->-1)
root@bueller:/ # tinymix -D 0 327
Playback Volume16: -1 (range 0->-1)
root@bueller:/ # tinymix -D 0 325
Playback Volume15: -1 (range 0->-1)
root@bueller:/ # tinymix -D 0 323
Playback Volume14: -1 (range 0->-1)
root@bueller:/ # tinymix -D 0 321
Playback Volume9: -1 (range 0->-1)
root@bueller:/ # tinymix -D 0 319
Playback Volume4: -1 (range 0->-1)
root@bueller:/ # tinymix -D 0 317
Playback Volume1: -1 (range 0->-1)

For HDMI Volume control in future: Is there a potential chance to control this volume, I think many many FireTV users would love this.

Greetings by sorryusernameisalreadytaken

ibressler commented 6 years ago

Hi, thanks for the output! In case of a bluetooth audio device you need to chose another card number (!=0). tinymix -D 0 queries the internal device. After pairing the the bluetooth device, do

# cd /proc/asound
# ls -d card*

And there should be an additional card card1 or card2. The new one should be related to the bluetooth audio sink, query it by doing tinymix -D 1 or tinymix -D 2.

I'm aware of the desire to control the native HDMI audio output, but some research has to be done of how to do this on Linux in general, ie. if it is possible at all.

sorryusernameisalreadytaken commented 6 years ago

Hey. Did you find any informations about the HDMI audio output?

stefanodifrancesco commented 2 years ago

Hi, Raspberry should be able to set volume of HDMI audio output, so why Fire TV can't?

ibressler commented 2 years ago

Hi Stefano,

this depends also on the hardware implementation of the HDMI output, meaning that the chipset has to support it and provide something the common drivers can control. So, two possibilites are at least:

  1. the hardware does not support it at all.
  2. the hardware supports it but the driver does not, ie. can't control it appropriately

Keeping in mind that the FireTV is meant for running on a TV which always has audio volume control build in, it's understandable to use a simpler hardware without this feature, saving costs perhaps.

While there are many devices which can control HDMI output volume this does not say anything about that specific hardware (which was a FireTV2, non-4k in my case).

best Ingo

Am 22.11.21 um 19:11 schrieb Stefano Di Francesco:

Hi, Raspberry should be able to set volume of HDMI audio output, so why Fire TV can't?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ibressler/firesound/issues/1#issuecomment-975790756, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAE3YZD4QHPAFYPJHF3UII3UNKBWHANCNFSM4D7QCSYA. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

stefanodifrancesco commented 2 years ago

Hi Ingo,

ok thanks. I was hoping it was a software limit.