root/tags/2.0-beta1/README

Revision 987, 10.9 kB (checked in by jwoithe, 4 years ago)

Include information about the dependencies of ffado-mixer. Those more knowledgeable in the required packages may need to make tweaks to the stated version numbers - the ones included are just wild guesses on my part.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 FFADO v2.x
2 ==========
3
4 The FFADO project aims to provide a free driver implemenation for FireWire
5 (IEEE1394, iLink) based (semi-) professional audio interfaces. The focus of
6 the project are on audio/music production rather than consumer audio. This
7 means that, although we intend to supported all features at some point,
8 consumer features are considered less important. The most obvious example of
9 a consumer feature is AC3/DTS passthrough support, which is unsupported at
10 the moment.
11
12 This package provides the libffado shared library that provides a unified
13 programming interface to configure and use all supported devices. Currently
14 this library is used by the 'firewire' backends of the jack audio connection
15 kit sound server (jackaudio.org). This backend provides audio and midi support,
16 and is available both in jackd and it's multiprocessor variant jackdmp.
17 (note: At the moment there is no support for ALSA nor for pulseaudio.)
18
19 Access to the device internal configuration (e,g, internal mixer) is exposed
20 using the ffado-dbus-server daemon. This daemon exposes the configurable
21 parameters of all detected devices through DBUS. The ffadomixer application in
22 support/mixer presents a GUI to control these parameters (only for officially
23 supported devices).
24
25 Features
26 --------
27 * 24-bit audio input/output (unlimited number of channels)
28 * supports for all samplerates a device supports
29 * MIDI input/output (unlimited number of channels)
30 * Support for S/PDIF and ADAT/SMUX I/O
31 * Internal mixer and device control support for all officially supported
32   devices (NOTE: no support for internal DSP)
33 * Support for device aggregation (limited to devices on the same bus)
34
35 Device Support
36 --------------
37
38 The devices officially supported are:
39 * ESI Quatafire 610
40 * Terratec Producer Phase 88
41 * Focusrite Saffire (original/white)
42 * Focusrite Saffire PRO10
43 * Focusrite Saffire PRO26
44 * ECHO AudioFire2
45 * Mackie Onyx Mixer FireWire expansion
46
47 The 'officially supported' label is only given to devices that fullfil the
48 following:
49 * at least one of the developers has the device
50 * the vendor provides development support (access to information)
51 * the device works
52
53 Through reverse-engineering the following devices will also work:
54 * MOTU traveller
55 * MOTU 828mkII
56 Note: the support for these devices is based on a significant reverse
57 engineering effort. This means that the developers had no support from the
58 device vendor, and this of course limits the extent to which problems can
59 be solved. You have been warned. Please do not buy devices for which support
60 is based upon reverse engineering, nor from vendors that are Linux-hostile
61 (e.g. MOTU). Value the support that some vendors provide and buy their
62 stuff. Check ffado.org for details. It can't be said enough: currently it is
63 extremely unwise to buy a MOTU device if you intend to use Linux.
64
65 The driver is written to provide generic support for all devices it might be
66 able to handle. This means that most devices based on the BridgeCo BeBoB or
67 the ECHO FireWorks platform will work, at least to a certain extent.
68
69 Devices that have been reported to (partially) work with the generic support:
70 * Presonus FireBox
71 * Presonus FirePod / FP10
72 * Focusrite Saffire LE
73 * ECHO AudioFire8
74 * ECHO AudioFire12
75
76 Usupported devices:
77 * Presonus FireStation
78 * Presonus FireStudio (all variants)
79 * TC Konnekt (all variants)
80 * Alesis devices
81 * Metric Halo devices
82 * RME Firewire devices
83
84 We constantly try to persuade vendors to help us extend our device support.
85
86 Dependencies
87 ------------
88
89 To build libffado you need several libraries. For all libraries a
90 version is provided which is a 'known good' version.  The first few
91 libraries it seems it is not necessary that the version must
92 match. The chances that it works also with an older versions are good:
93
94 alsa        (>= 1.0.0)
95 libxml++2   (>= 2.13.0)
96
97 These libraries here should be at least the version listed:
98
99 libraw1394  (>= 1.3.0),  http://www.linux1394.org
100 libiec61883 (>= 1.1.0),  http://www.linux1394.org
101 libavc1394  (>= 0.5.3),  http://sourceforge.net/projects/libavc1394
102 dbus-1      (>= 1.0),    http://dbus.freedesktop.org
103
104 Currently only the jackd audio server is supported.
105
106 jackd (>= 0.107.6), http://jackaudio.org
107
108 Optionally, but recommended is that you install qjackctl:
109
110 qjackctl (>= 0.2.20.10), http://sourceforge.net/projects/qjackctl
111
112 To build the optional ffado device mixer control utility you also require:
113
114 Qt          (>= 3.0),     http://trolltech.com/products/qt
115 SIP         (>= 4.7.0),   http://www.riverbankcomputing.co.uk/sip/index.php
116 PyQt        (note below), http://www.riverbankcomputing.co.uk/pyqt/
117 dbus-python (>= 0.82.0),  http://dbus.freedesktop.org/releases/dbus-python/
118
119 The version of PyQt must be chosen to match the version of Qt in use.
120 For Qt 4.x use PyQt 4.x while for all other Qt versions from 1.43.
121
122 SIP is only required to compile PyQt.  If using a binary package of PyQt
123 SIP should not be needed.
124
125 How to build
126 ------------
127
128 Building the code is straight forward if PKG_CONFIG_PATH, LD_LIBRARY_PATH
129 and INCLUDE_PATH is correctly set up.
130
131 E.g on my system I have installed libraw1394, libiec61883 and libavc1394
132 under /usr/local:
133
134 $ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
135 $ export LD_LIBRARY_PATH=/usr/local/lib
136
137 If you want to build the release version you can do following:
138
139 $ scons
140 $ scons install
141
142 If you want some debug information (because something seems not
143 to work correctly) you can try to do following:
144
145 $ scons DEBUG=yes
146 $ scons install
147
148 NOTE: In order to build jackd with ffado support, you have
149 to install libffado before you build jackd. The backend to use in jackd is
150 firewire.
151
152 DISTRIBUTION PACKAGERS NOTE: Please do not enable support for devices
153 if it is not on by default. If device support for a specific device
154 is not turned on by default by the developers, it means that it is not
155 ready yet. Most of the time it is placeholder code for future devices.
156
157 Running jackd
158 -------------
159
160 The easiest way to run this is using qjackctl. There are only minor
161 differences with the other backends, however you should change some
162 of the default values:
163 - The 'interface' field should contain only a number. This number is
164   the port number of the IEEE1394 host controller the audio device
165   is connected to. For most people this will be '0', but if you have
166   multiple controllers, you have to change this number.
167 - The 'Input channels' and 'Output channels' fields indicate if the
168   backend should provide capture and/or playback channels. If you set
169   these to 0, no channels are created. In order to enable capture and/or
170   playback, you have to set them to a nonzero value.
171 - It is recommended to change the 'periods/buffer' field to 3, especially
172   if you use low period sizes (=< 128)
173 - It is recommended to raise the RT priority to 70.
174
175 In order to get it running from the command line, you need to provide some
176 arguments to jackd.
177
178 Run
179
180 $ jackd -d firewire --help
181
182 to see the backend options. You can easily figure out how to set them using
183 the remarks given above (for qjackctl).
184
185 For the other aspects of jackd usage, consult the jackd documentation.
186
187 Here is a sample session (without realtime support enabled):
188
189 [wagi@halo ~]$ jackd -d firewire
190 jackd 0.102.9
191 Copyright 2001-2005 Paul Davis and others.
192 jackd comes with ABSOLUTELY NO WARRANTY
193 This is free software, and you are welcome to redistribute it
194 under certain conditions; see the file COPYING for details
195
196 JACK compiled with System V SHM support.
197 loading driver ..
198 Freebob using Firewire port 0, node -1
199 libiec61883 warning: Established connection on channel 0.
200 You may need to manually set the channel on the receiving node.
201 libiec61883 warning: Established connection on channel 1.
202 You may need to manually set the channel on the transmitting node.
203
204 (Note: you can safely ignore the libiec61883 warnings, they are normal.)
205
206 In case of problems
207 -------------------
208
209 Under the tests directory there is a test program. You should first
210 try to run this.
211
212 If you don't have installed libffado then you can adapt your
213 LD_LIBRARY_PATH environment variable to
214
215 $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../src/.libs
216
217 Then you can try running the program without having to install it.
218
219 With the release version you see something like this:
220
221 wagi@cruxam:~/src/libffado/tests$ ./test-ffado discover
222 verbose level = 0
223 Using ffado library version: libffado 0.9.0
224
225   port = 2, devices_on_bus = 1
226   get info for device = 0, node = 1
227 Direction:              0 (capture)
228
229 Connection Info
230 ===============
231
232 Number of connections:  1
233
234   Connection  0
235   -------------
236     [ 0] Id:         0
237     [ 0] Port:       2
238     [ 0] Node:       1
239     [ 0] Plug:       0
240     [ 0] Dimension:  7
241     [ 0] Samplerate: 44100
242     [ 0] IsoChannel: -1
243     [ 0] IsMaster:   0
244     [ 0] Number of stream infos: 8
245
246     StreamId  Position Location Format Type DPort Name
247     --------------------------------------------------
248     [ 0]:[ 0] 0x01     0x01     0x06   0x02 0x00  MicIn 1+2 left
249     [ 0]:[ 1] 0x04     0x02     0x06   0x02 0x00  MicIn 1+2 right
250     [ 0]:[ 2] 0x02     0x01     0x06   0x03 0x00  LineIn 1+2 left
251     [ 0]:[ 3] 0x05     0x02     0x06   0x03 0x00  LineIn 1+2 right
252     [ 0]:[ 4] 0x00     0x01     0x06   0x04 0x00  SpdifIn 1 left
253     [ 0]:[ 5] 0x03     0x02     0x06   0x04 0x00  SpdifIn 1 right
254     [ 0]:[ 6] 0x06     0x01     0x0d   0x0a 0x00  MidiIn2
255     [ 0]:[ 7] 0x06     0x02     0x0d   0x0a 0x00  MidiIn2
256
257
258 Direction:              1 (playback)
259
260 Connection Info
261 ===============
262
263 Number of connections:  1
264
265   Connection  0
266   -------------
267     [ 0] Id:         0
268     [ 0] Port:       2
269     [ 0] Node:       1
270     [ 0] Plug:       0
271     [ 0] Dimension:  11
272     [ 0] Samplerate: 44100
273     [ 0] IsoChannel: -1
274     [ 0] IsMaster:   0
275     [ 0] Number of stream infos: 12
276
277     StreamId  Position Location Format Type DPort Name
278     --------------------------------------------------
279     [ 0]:[ 0] 0x01     0x01     0x06   0x03 0x00  MultiChannel 7.1 Front left
280     [ 0]:[ 1] 0x06     0x02     0x06   0x03 0x00  MultiChannel 7.1 Front right
281     [ 0]:[ 2] 0x02     0x03     0x06   0x03 0x00  MultiChannel 7.1 Center
282     [ 0]:[ 3] 0x07     0x04     0x06   0x03 0x00  MultiChannel 7.1 Subwoofer
283     [ 0]:[ 4] 0x03     0x05     0x06   0x03 0x00  MultiChannel 7.1 Rear left
284     [ 0]:[ 5] 0x08     0x06     0x06   0x03 0x00  MultiChannel 7.1 Rear right
285     [ 0]:[ 6] 0x04     0x07     0x06   0x03 0x00  MultiChannel 7.1 Surround left
286     [ 0]:[ 7] 0x09     0x08     0x06   0x03 0x00  MultiChannel 7.1 Surround right
287     [ 0]:[ 8] 0x00     0x01     0x06   0x04 0x00  SpdifOut 1 left
288     [ 0]:[ 9] 0x05     0x02     0x06   0x04 0x00  SpdifOut 1 right
289     [ 0]:[10] 0x0a     0x01     0x0d   0x0a 0x00  MidiOut2
290     [ 0]:[11] 0x0a     0x02     0x0d   0x0a 0x00  MidiOut2
291
292
293 If you don't get this, check if you have multiple host controllers, and
294 use the -p parameter to specify them. If you get any error messages, the
295 best way to help us figure out what the problem might be is to build the
296 debug version (scons ENABLE_DEBUG=1). You can then rerun the test
297 application (with -v5) and send us its output.
298
Note: See TracBrowser for help on using the browser.