Experiments with ECHO AudioFire's

Aside from the 2.0 beta tree, there is also some other work going on... admittedly, it's more fun to work on features than to work on bugs. But hey, the current beta code seems to be pretty good. We're just waiting for a next jack version to be released, such that our users don't have to recompile jack themselves. After that we can go for a large-audience beta. And the associated bug reports... Let's have some fun first!

This is a report on one of the experiments going on for post 2.0. First: the results...

click here for the full-size version

What is this?
Since I got partial source code from ECHO, more specifically the hardware abstraction layer, I realized that I might be able to mimic the ECHO windows driver interface with a Wine "pseudo-driver". The idea would be that one could run the ECHO windows control panels in Wine, and that the pseudo-driver would relay the command & control to the FFADO driver. And so I was off for quite some days of Wine degustation. I can honestly say that using the Windows API is not a pleasant journey...

But as you can see, in the end it seems to be working fine. The setup shown on the screenshot is one with an AudioFire2 and an AudioFire8 connected to FFADO. Then the ECHO control panel was launched through my customized Wine. The panels are fully functional. Except for the metering, for one reason or the other that doesn't work. The data is passed on to the control panel as far as I can tell, but it doesn't update the meters.

Before you start asking... this stuff is not publicly available yet. There are several issues to be resolved first. Amongst these are:

  • Getting my Wine core modifications into the Wine source tree
  • Figure out how to compile the Wine pseudo-driver from outside the Wine tree (since it's not going to be accepted into their trunk anyway).
  • Sort out the legal issues. To build this prototype I used some code and headers from ECHO (unlike in FFADO itself). This means that I either have to remove that code or get official permission from ECHO to open-source it.
  • Merge the most recent FFADO with my local experimental branch, since they have diverged quite a lot over the last months.
  • Figure out whether I want full open-source panels with associated maintenance, or this kind meet-in-the-middle where I don't have to care about the GUI's, but have to tolerate some closed source applications.

But nevertheless a preview of what lies after what still has to come. Comments welcome...



echocpl2.png246.24 KB
echocpl2_small.png144.79 KB


For the Wine outsite driver part, maybe you can just create a ffado-echo-gui package or something like that. The same thing can be done for closed part.

For exemple you can follow what is done for alsa with alsa-tools-gui and alsa-firmware packages.


The main question is whether we want to go this route.

Does echo use the same mixer code for all of their devices? More directly, will this work with a Gina or Layla?

I have no idea.

That is the question...

the ffado-mixer still needs to maintained for non AF devices tho... so the answer is leaning NO Wine ... but then again, if you get permission and somehow come up with process that is not that hard... would allow for mixer and (just a thought) POSSIBLY allowing their software perform a firmware update (if that information is "exposed" in the source code that you have). Means the partially working (not for AF8/12) fireworks firmware updater is replaced as well...

That said, I can see native as always being better and STILL think NO Wine is better.

Side-Note> The ffado-mixer is really wide for AF12 (goes off screen) -- if a Wine mixer means it fits on screen... I've be more interested but still lean NO Wine. It's just another "attachment" to that OS that seems unnecessary at this point (firmware updates are another topic)

P.S.> I don't see and SPDIF (unless I am blind) on the AF12

Is this what is meant by "Reportedly licensed the ECHO audio implementation." when I look up my Mackie Onyx 400F, which uses an ECHO chipset? (Though I can't seem to remember which chip it is or where to find that info.)

The support status for my Onyx is unknown. Would I be risking much if I just give it a go and see what happens? I'm new to Linux, so please forgive me if these are stupid questions. I'm trying to read the manual. Is there anything like "FFADO for Dummies" where I could learn more?

I cannot thank you enough for all you're doing!