FFADO 2.0 Beta7 (1.999.38) available

Life has been catching up with most of the FFADO developers over the last few months. Therefore the activity was rather low. However today we are proud to announce a new beta release. This release mainly improves the mixer applets, increases the reliability of streaming and improves latency performance. An elaborate changelog can be found below.

This beta release is created to collect feedback about the library under common usage. It is expected that there are still some bugs and unresolved system related issues. However the code has proven itself to be usable. It is recommended that you have a basic amount of experience with Linux and with building software before you try to install this.

Please review this package thoroughly in order to spot potential problems. Feedback on distribution aspects and documentation is also welcome.

libffado?

This release provides the libffado shared library that provides a unified programming interface to configure and use all supported devices. Currently this library is used by the ‘firewire’ backend of the jack audio connection kit sound server (http://jackaudio.org). This backend provides audio and midi support, and is available both in jackd and it’s multiprocessor variant jackdmp. (note: At the moment there is no support for ALSA nor for pulseaudio.)

Access to the device internal configuration (e,g, internal mixer) is exposed using the ffado-dbus-server daemon. This daemon exposes the configurable parameters of all detected devices through DBUS. The ffadomixer application in support/mixer presents a basic GUI to control these parameters (only for officially supported devices). Features

  • 24-bit audio input/output (unlimited number of channels)
  • supports for all sample rates a device supports
  • MIDI input/output (unlimited number of channels)
  • Support for S/PDIF and ADAT/SMUX I/O
  • Support for external sync (e.g. Wordclock)
  • Internal mixer and device control support for all officially supported devices (NOTE: no support for internal effects DSP)
  • Support for device aggregation (limited to devices on the same bus that are synced externally)

Usage feedback

This release introduces an option where you can identify your device as being used on Linux with FFADO. You will be asked whether you want to submit your device information to ffado.org. The reason this feature is present is to convince the supportive vendors that their cooperation pays off, and to convince the other vendors that Linux users are a market. A secondary advantage is that we can keep track of what versions are used by how many people.

Therefore we would like to ask everyone to perform this registration. No personal data is transmitted (except for an optional email address). The IP address of the submitter is saved to help recovery in case the database is bombed with bogus data. However the address is first processed by one-way MD5 hashing it, such that it is not recoverable and privacy is secured. This usage information is of enormous importance for future device support. The aggregated statistics are available here: http://www.ffado.org/?q=usage.

Changelog

Beta6 => Beta7

  • General code cleanup
  • Improve mixers of various devices (especially the MOTU and Edirol mixers)
  • Port mixers to QT4 for better usability (QT3 mixers still work but are deprecated)
  • Implement support for ECHO session blocks
  • Fix Focusrite Saffire Pro clock source selection
  • Implement configuration file mechanism to ease run-time configuration
  • Improve the behavior when confronted with dying iso transmit handlers
  • Reset transmit buffer rate DLL on XRUN.
  • Improve bus reset handling
  • Improve reliability of ISO streaming on various host controllers
  • Fix discovery issues with DM1x00 based devices (especially Edirol devices)
  • Remove the dependency on libavc1394 by implementing our own FCP transaction support
  • Fix float to int conversion dynamic range bug in the AMDTP StreamProcessor

Beta5 => Beta6

  • implement discovery fallback (tries generic support when encountering an unsupported device)
  • fix gcc-4.3 compilation issues
  • take CC and CXX from the environment if defined there
  • implement separate mixer for Phase X24 and Phase 24
  • fix saffire mixer
  • fix cache issues
  • fix clock source segfault
  • fix ffadomixer python 2.4 compatibility
  • use FocusRite vendor-specific clock selection for the Saffire PRO devices

Beta4 => Beta5

  • fix BeBoB flooding issues
  • numerous mixer improvements
  • fix threading issues
  • remove all unused code
  • fix clocksource selection bugs
  • fix 64bit compilation issue
  • improve library behavior in error situations
  • improve shutdown of MOTU interfaces
  • make dbus server handle busresets cleanly

Beta3 => Beta4

  • fix bugs in BeBoB caching code
  • extend Saffire PRO26 mixer
  • various mixer improvements
  • switch back to BeBoB discovery code for FA-101

Beta2 => Beta3

  • fix memory corruption bug in saffire LE mixer code
  • various debugging code improvements
  • create config save directory if not present.
  • change registration window looks.
  • various MOTU mixer improvements
  • workaround MOTU not setting a vendor/model name
  • one window for all mixers, tabbed.
  • fix CTR reconstruction bug
  • Add a generic part for each mixer controlling the nickname and the clocksource.
  • Rework/resort the initialization of mixer-widgets…
  • fix issues in timestamp usage
  • re-enable late transmission
  • switched off all extended debugging features by default

Beta1 => Beta2

  • Correct issues in the README file
  • Remove unneeded ALSA dependency
  • Several mixer improvements
  • Implement usage statistics gathering

Building and Installing

Please refer to the README document in the package. Not doing so means taking a risk ;).