Ticket #50 (new enhancement)

Opened 13 years ago

Last modified 8 years ago

generalize external mixer API

Reported by: ppalmers Assigned to:
Priority: waiting for volunteer Milestone: Indeterminant (awaiting volunteer)
Component: Version:
Keywords: Cc:
The device the bug applies to:


Define and implement the mixer API in such a way that controls use e.g. the same range for their parameters regardless of the range used by the hardware.

Change History

04/27/12 07:58:01 changed by jwoithe

Given the significant diversity between different interfaces, the major differences in mixer architectures and the fact that different devices implement varying mixer control capabilities, does it still make sense to try to do this? My gut feeling is not, but I'd be interested if anyone else has thoughts in connection with this.

10/31/12 05:21:05 changed by jwoithe

  • priority changed from minor to waiting for volunteer.
  • milestone changed from FFADO 2.x to Indeterminant (awaiting volunteer).

6 months has now passed and there has been no further interest expressed in this ticket. I therefore conclude that there is little interest in pursuing this among the current developers (mostly due to the presence of more important issues which need dealing with). Milestone and priority set to indicate that addressing this ticket requires that someone volunteer to run with it. If after a year or so there is still no movement I propose the ticket be closed as "wontfix".

11/20/12 08:59:30 changed by nils

Well, not exactly volunteering, but off-loading my thoughts:

- Different controls/devices may use different ranges. E.g.: A gain control may have -∞...0 dB, but could also go up to a higher value. Balance or EQ controls (I don't know if they exist in mixers of other interfaces than mine) might go from -12...12dB. I don't think that such different ranges should be expressed with the same range in the UI (e.g. "normalizing" to 0...10(11 :-), or 0%...100%).

- Should we ever get information how to control the DSP inside an interface, we probably would want to do that via the mixer as well.

- Eventually we might want to expose (select) mixer controls to jack/MIDI, so you can hook them up with control surfaces.

11/26/12 15:21:42 changed by jwoithe

Thanks for your thoughts Nils.

Trying to implement a uniform range across all controls from all interfaces will, I suspect, be close to impossible for precisely the reasons you mentioned. While theoretically having a uniform arbitary scale might appeal to programmers and interface designers, the reality is that many semi-pro and professional users of these devices need to know the real device settings. On consumer products this is far less of an issue because they are rarely calibrated in absolute terms. However, for professional interfaces they often are. I therefore agree with you in that a uniform range for all device controls is unlikely to be of practical use (see also my earlier comment along these lines).

I agree on the DSP comment; ffado-mixer is certainly the correct place for such controls and is exactly where I see them going. Given what is done on other platforms this is where users will expect to find them.

Exposing controls via jack/MIDI is also a good idea. There are of course a number of possible approaches to this. FFADO itself could make the exposure itself in parallel to the existing dbus interfaces, or we could utilise a bridging daemon which hooked the dbus controls into jack/MIDI. Both approaches have their pros and cons, and there are undoubtedly other options available too. Regardless of the method adopted, being able to interact with the interfaces via control surfaces would be very useful in many situations.