Ticket #323 (closed bug: fixed)

Opened 10 years ago

Last modified 8 years ago

some settings in ffado-mixer don't work on Terratec Phase 24FW

Reported by: maxi Assigned to: arnonym
Priority: minor Milestone:
Component: ffado-mixer Version: FFADO 2.0.1
Keywords: Cc:
The device the bug applies to:

Description

On my Terratec Producer Phase 24FW some settings don't work in ffado-mixer. The affected settings are:

in the Hardware Mixer Settings:

  • Master

in the Routing settings:

  • 3/4 Out Level (can be switched between line and headphone)
  • Analog in Level (can be switched from 0 to 4)

Everything else seems to work fine.

Wher trying to change the mentioned settings I get the followong erros:

18:00:17 dbus ERROR Failed to set Continuous /org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Feature_8 on server org.ffado.Control 18:00:18 dbus ERROR Failed to set Continuous /org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Feature_2 on server org.ffado.Control 18:00:20 dbus ERROR Failed to set Continuous /org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Feature_1 on server org.ffado.Control

I'll also attach the outupt of ffado-diag.

I'm currently running a Debian testing OS with jack and ffado packages from Debian experimental.

If you need any additional information just tell me what I have to do.

Attachments

ffado-diag.log (7.7 kB) - added by maxi on 02/23/11 09:11:14.
Output of ffado-diag

Change History

02/23/11 09:11:14 changed by maxi

  • attachment ffado-diag.log added.

Output of ffado-diag

04/01/12 07:55:06 changed by jwoithe

Is it feasible for someone to lend assistance here, or is it something which requires that a core developer has access to the device concerned (Terratec Phase 24FW)?

Which ffado driver does this device use (which is another way of asking what chip the device is based on - bobob, DICE, etc).

It looks like there's some sort of consistenty trouble between the driver concerned and the ffado-mixer panel being used. Given that the report is against FFADO 2.0.1 it could also be that the problem has since been fixed independently of this ticket. Can anyone shed light on any of this?

(follow-up: ↓ 4 ) 04/01/12 12:21:08 changed by stefanr

I have a Terratec Phase X24FW. It is a Bebob device. According to some old notes of mine it is DM1100 based.

But I can't assist here because I know nothing about the protocol, about the driver implementation, or even about how ffado-mixer is supposed to function. Let's see:

$ ffado-mixer
bash: ffado-mixer: command not found

Argh, once again I am even clueless about the installation procedure of ffado-mixer. I definitely managed to get it installed after many troubles at some point, but evidently something is amiss again. So don't even ask me to reproduce any ffado-mixer problems.

(follow-up: ↓ 5 ) 04/01/12 14:58:42 changed by maxi

I'm currently using ffado from debian testing which is 2.0.99+svn2019-1 and this bug is still present. I can compile and test a current svn checkout, if you think it makes sense.

(in reply to: ↑ 2 ) 04/01/12 16:41:15 changed by jwoithe

Replying to stefanr:

But I can't assist here because I know nothing about the protocol, about the driver implementation, or even about how ffado-mixer is supposed to function.

That's fair enough. I'm in a similar situation except that I also don't actually have the interface in question. Certainly the debugging of this particular problem requires someone with the interface who understands how the Phase 24FW mixer is meant to function.

Let's see:

> $ ffado-mixer
> bash: ffado-mixer: command not found

Argh, once again I am even clueless about the installation procedure of ffado-mixer. I definitely managed to get it installed after many troubles at some point, but evidently something is amiss again.

FYI ffado-mixer is installed automatically at the same time as the rest of FFADO (that is, as part of "scons install". If it's not available on the system after doing this about the only thing I can think of is that one of its dependencies is not met. Scons should print out information about this as part of its startup messages (it checks for prerequisites on each run).

So don't even ask me to reproduce any ffado-mixer problems.

Ok, I won't. :-)

Looking at the original post it seems that the mixer code is expecting certain dbus controls to be available, but either they are not or they are not accepting the value that ffado-mixer is requesting they set themselves to. This may be an issue in the mixer code in use or in the device code used by ffado-dbus-server to create the dbus mixer control objects. Debugging this really needs access to the device though so that's about as far as I can go.

(in reply to: ↑ 3 ) 04/01/12 16:48:19 changed by jwoithe

Replying to maxi:

I'm currently using ffado from debian testing which is 2.0.99+svn2019-1 and this bug is still present.

Thanks for the additional feedback.

I can compile and test a current svn checkout, if you think it makes sense.

Looking at the commit logs since r2019 I can't see anything there that I would expect to have any effect on Bebob-based devices which this one most likely is. If it's convenient to do so it may be worthwhile confirming that trunk head also suffers from the problem, but if trying this is too hard I suspect it's safe to assume that the problem is still present.

One thing you could do to help clarify where the problem lies is to run

ffado-dbus-server -v 6

in a separate terminal window prior to starting ffado-mixer, and posting the resulting output from ffado-dbus-server. This will tell us what dbus controls the device code is creating which in turn may allow us to determine whether the problem is in the device code or ffado-mixer.

04/02/12 05:16:01 changed by maxi

"ffado-dbus-server -v 6" doesn't output anything interesting, however it seems like these controls are simply not provided by ffado-dbus-server:

$ qdbus org.ffado.Control
/
/org
/org/ffado
/org/ffado/Control
/org/ffado/Control/DeviceManager
/org/ffado/Control/DeviceManager/000aac04005f9c07
/org/ffado/Control/DeviceManager/000aac04005f9c07/ConfigRom
/org/ffado/Control/DeviceManager/000aac04005f9c07/Generic
/org/ffado/Control/DeviceManager/000aac04005f9c07/Generic/ClockSelect
/org/ffado/Control/DeviceManager/000aac04005f9c07/Generic/Nickname
/org/ffado/Control/DeviceManager/000aac04005f9c07/Generic/SamplerateSelect
/org/ffado/Control/DeviceManager/000aac04005f9c07/Generic/StreamingStatus
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/EnhancedMixer_1
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/EnhancedMixer_2
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/EnhancedMixer_3
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Feature_LRBalance_1
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Feature_LRBalance_2
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Feature_LRBalance_3
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Feature_LRBalance_4
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Feature_LRBalance_5
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Feature_LRBalance_6
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Feature_LRBalance_7
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Feature_LRBalance_8
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Feature_Volume_1
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Feature_Volume_2
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Feature_Volume_3
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Feature_Volume_4
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Feature_Volume_5
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Feature_Volume_6
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Feature_Volume_7
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Feature_Volume_8
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Selector_1
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Selector_2
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Selector_3
/org/ffado/Control/DeviceManager/000aac04005f9c07/Mixer/Selector_4

However I noticed that there is Feature_Volume_{1,2,8} that is not used by the gui. So I tried this quick patch and it seems to work.

--- phase24control.py.orig      2012-01-11 09:54:59.000000000 +0100
+++ phase24control.py   2012-04-02 13:57:08.000000000 +0200
@@ -76,7 +76,7 @@
     # public slot
     def setLineLevel(self,a0):
         log.debug("setting line level to %d" % (a0 * -768))
-        self.hw.setContignuous('/Mixer/Feature_2', a0 * -768)
+        self.hw.setContignuous('/Mixer/Feature_Volume_2', a0 * -768)
 
     # public slot
     def setFrontLevel(self,a0):
@@ -84,10 +84,10 @@
             return
         if(a0 == 0):
             log.debug("setting front level to %d" % (0))
-            self.hw.setContignuous('/Mixer/Feature_8', 0)
+            self.hw.setContignuous('/Mixer/Feature_Volume_8', 0)
         else:
             log.debug("setting front level to %d" % (1536))
-            self.hw.setContignuous('/Mixer/Feature_8', 1536)
+            self.hw.setContignuous('/Mixer/Feature_Volume_8', 1536)
 
     # public slot
     def setOutSource12(self,a0):
@@ -131,11 +131,11 @@
             else:
                 self.setWindowTitle("Terratec Phase 24 Control")
 
-                self.VolumeControls['master'] = ['/Mixer/Feature_1', self.sldMaster]
+                self.VolumeControls['master'] = ['/Mixer/Feature_Volume_1', self.sldMaster]
                 self.sldMaster.setEnabled(True)
 
                 self.cmbFrontLevel.setEnabled(True)
-                val = self.hw.getContignuous('/Mixer/Feature_8')
+                val = self.hw.getContignuous('/Mixer/Feature_Volume_8')
                 if val > 0:
                     self.cmbFrontLevel.setCurrentIndex(1)
                 else:
@@ -151,7 +151,7 @@
                 log.debug("%s state is %d" % (name , state))
                 ctrl[1].setCurrentIndex(state)
 
-            val = self.hw.getContignuous('/Mixer/Feature_2')/-768
+            val = self.hw.getContignuous('/Mixer/Feature_Volume_2')/-768
             if val > 4:
                 self.cmbLineLevel.setCurrentIndex(4)
             else:

I will do some more testing when I have more time to verify that everything works as expected, but my quick tests look good so far.

04/02/12 05:53:27 changed by jwoithe

That's all very interesting. Thanks for looking into this and suggesting the patch. My only comment was going to be whether this patch would break the mixer for other interfaces, but I then noticed that the Phase 24FW has its own dedicated mixer. Given this, I see no reason to hold the patch so I've committed it as r2111. Please do continue your testing, and if this shows that things are good let us know so we can close this ticket as "fixed".

04/24/12 09:11:05 changed by maxi

I think the only device where my patch cound breake something is the Phase X24FW. It uses the same mixer interface, but the hardware is a little different. I guess someone with a Phase X24FW would have to test this.

04/24/12 09:13:56 changed by maxi

This somehow got lost in my last reply:

After testing this patch some time now, I couldn't find any problems. So for me everything is fixed.

Feel free to close this issue.

04/24/12 15:02:13 changed by stefanr

Just now I managed to build ffado-mixer. It appears to work alright with my Phase X24FW. I haven't used ffado-mixer for a long time and never used each and every feature of the X24FW, hence I can't really be sure that everything in ffado-mixer works like it is intended to do. But I definitely do not get any errors. Hardware mixer and routing seem to respond like they are meant to. (This is on svn 2125 right now.)

04/24/12 19:42:27 changed by jwoithe

  • status changed from new to closed.
  • resolution set to fixed.

As per comment 9 the original problem has been confirmed fixed. In addition, it seems from comment 10 that the patch hasn't caused regressions for the X24FW. Ticket closed as "fixed". Thanks "maxi" and Stefan for your help with this one.