Skip to content

Commit a177abc

Browse files
committed
update README for version 0.1.0 release
It is time to release. Signed-off-by: Takashi Sakamoto <[email protected]>
1 parent 7c0f3a9 commit a177abc

File tree

1 file changed

+218
-122
lines changed

1 file changed

+218
-122
lines changed

README.rst

Lines changed: 218 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,31 @@
22
snd-firewire-ctl-services
33
========================
44

5-
2023/04/16
5+
2023/04/19
66
Takashi Sakamoto
77

88
Introduction
99
============
1010

11-
This project is a sub project in Advanced Linux Sound Architecture a.k.a ALSA,
12-
to produce userspace service daemon for Audio and Music units on IEEE 1394 bus,
13-
supported by drivers in ALSA firewire stack.
11+
This project is a sub-project within Advanced Linux Sound Architecture a.k.a ALSA, aimed to provide
12+
user space service programs for Audio and Music units connected to IEEE 1394 bus, supported by
13+
drivers in ALSA firewire stack.
1414

15-
Executables (binary crates)
16-
===========================
15+
The latest release is
16+
`version 0.1.0 <https://github.com/alsa-project/snd-firewire-ctl-services/releases/tag/snd-firewire-ctl-services%2Fv0.1.0>`_.
17+
18+
The service programs are designed to operate digital signal processing function in the audio and
19+
music units connected to IEEE 1394 bus. The service programs work as
20+
`message broker <https://en.wikipedia.org/wiki/Message_broker>`_. ALSA control and sequencer
21+
applications are available as an end to communicate to the service programs. The audio and music
22+
units in IEEE 1394 bus is the opposite end. The service programs receives messages from both
23+
ends, then translates and convert the messages to send to the opposite end. The internal design of
24+
the programs are illustrated in ``Design note`` section.
25+
26+
Executables for service programs
27+
================================
28+
29+
The project provides the following service programs in the form of Rust binary crates:
1730

1831
snd-firewire-digi00x-ctl-service
1932
For sound card bound to ALSA firewire-digi00x driver (snd-firewire-digi00x)
@@ -32,98 +45,19 @@ snd-dice-ctl-service
3245
snd-fireface-ctl-service
3346
For sound card bound to ALSA fireface driver (snd-fireface)
3447

35-
License
36-
=======
37-
38-
* Some library crates are released under MIT license. They are available in `<crates.io>`_
39-
as well.
40-
41-
* `alsa-ctl-tlv-codec <https://crates.io/crates/alsa-ctl-tlv-codec>`_
42-
* `ieee1212-config-rom <https://crates.io/crates/ieee1212-config-rom>`_
43-
* `ta1394-avc-general <https://crates.io/crates/ta1394-avc-general>`_
44-
* `ta1394-avc-audio <https://crates.io/crates/ta1394-avc-audio>`_
45-
* `ta1394-avc-stream-format <https://crates.io/crates/ta1394-avc-stream-format>`_
46-
* `ta1394-avc-ccm <https://crates.io/crates/ta1394-avc-ccm>`_
47-
48-
* Some library crates for protocol implementation are released under GNU Lesser General
49-
Public License v3.0 or later with respect to clause for reverse engineering. They are
50-
available in `<crates.io>`_ as well.
51-
52-
* `firewire-bebob-protocols <https://crates.io/crates/firewire-bebob-protocols>`_
53-
* `firewire-fireworks-protocols <https://crates.io/crates/firewire-fireworks-protocols>`_
54-
* `firewire-oxfw-protocols <https://crates.io/crates/firewire-oxfw-protocols>`_
55-
* `firewire-dice-protocols <https://crates.io/crates/firewire-dice-protocols>`_
56-
* `firewire-digi00x-protocols <https://crates.io/crates/firewire-digi00x-protocols>`_
57-
* `firewire-tascam-protocols <https://crates.io/crates/firewire-tascam-protocols>`_
58-
* `firewire-motu-protocols <https://crates.io/crates/firewire-motu-protocols>`_
59-
* `firewire-fireface-protocols <https://crates.io/crates/firewire-fireface-protocols>`_
60-
61-
* The other crates are released under GNU General Public License Version 3.
62-
63-
Dependencies
64-
============
65-
66-
* Rust programming language <https://www.rust-lang.org/>
67-
* Cargo
68-
* glib `<https://developer.gnome.org/glib/>`_
69-
* libhinawa v2.5 or later `<https://github.com/alsa-project/libhinawa>`_
70-
* libhitaki v0.2 or later `<https://github.com/alsa-project/libhitaki>`_
71-
* alsa-gobject v0.3 or later `<https://github.com/alsa-project/alsa-gobject/>`_
72-
73-
* The library crates enumerated in `License` section are downloaded from `<crates.io>`_ when
74-
building.
75-
76-
How to build
77-
============
78-
79-
Build ::
80-
81-
$ cargo build
82-
83-
Execute temporarily ::
84-
85-
& cargo run --bin (the executable name) -- (the arguments of executable)
86-
87-
All of executables can print help when either ``--help`` or ``-h`` is given as an argument of
88-
command line. Additionally, either ``--log-level`` or ``-l`` is also available for runtime
89-
debugging. For further information, please refer to ``Runtime debugging`` clause.
90-
91-
Install executables ::
92-
93-
$ cargo install --path (path to binary crate)
48+
Disclaimer
49+
==========
9450

95-
The runtime crates which provide the executables are listed below:
96-
97-
snd-firewire-digi00x-ctl-service
98-
``snd-firewire-digi00x-ctl-service`` crate locates in ``runtime/digi00x``
99-
snd-firewire-tascam-ctl-service
100-
``snd-firewire-tascam-ctl-service`` crate locates in ``runtime/tascam``
101-
snd-fireworks-ctl-service
102-
``snd-fireworks-ctl-service`` crate locates in ``runtime/fireworks``
103-
snd-firewire-motu-ctl-service
104-
``snd-firewire-motu-ctl-service`` crate locates in ``runtime/motu``
105-
snd-oxfw-ctl-service
106-
``snd-oxfw-ctl-service`` crate locates in ``runtime/oxfw``
107-
snd-bebob-ctl-service
108-
``snd-bebob-ctl-service`` crate locates in ``runtime/bebob``
109-
snd-dice-ctl-service
110-
``snd-dice-ctl-service`` crate locates in ``runtime/dice``
111-
snd-fireface-ctl-service
112-
``snd-fireface-ctl-service`` crate locates in ``runtime/fireface``
113-
114-
The executable is usually installed under ``~/.cargo/bin``, while it's possible to choose the path.
115-
In detail, please refer to
116-
`manual of cargo install <https://doc.rust-lang.org/cargo/commands/cargo-install.html>`_.
117-
118-
Uninstall executables ::
51+
The project provides neither GUI programs nor end-user interfaces against expectation of users,
11952

120-
$ cargo uninstall -p (name of runtime crate)
53+
The main motivation of project is to preserve the way (protocol) to operate the audio and music
54+
units in IEEE 1394 bus, which was defined by several vendors.
12155

12256
Supported devices
12357
=================
12458

125-
Currently below devices are supported. If you would like to add support for
126-
your device, please contact to developer.
59+
Currently below devices are supported. If you would like to add support for your device, please
60+
contact to developer.
12761

12862
* snd-firewire-digi00x-ctl-service
12963

@@ -138,7 +72,7 @@ your device, please contact to developer.
13872
* Tascam FW-1884
13973
* Tascam FW-1082
14074
* Tascam FW-1804
141-
* Tascam FE-8
75+
* Tascam FE-8 (work without ALSA firewire-tascam driver)
14276

14377
* snd-fireworks-ctl-service
14478

@@ -155,21 +89,29 @@ your device, please contact to developer.
15589

15690
* snd-firewire-motu-ctl-service
15791

158-
* MOTU 828
159-
* MOTU 896
160-
* MOTU Traveler
161-
* MOTU 828mkII
162-
* MOTU 896HD
163-
* MOTU UltraLite
164-
* MOTU 8pre
165-
* MOTU 4pre
166-
* MOTU AudioExpress
167-
* MOTU 828mk3 (FireWire only)
168-
* MOTU 828mk3 (Hybrid)
169-
* MOTU UltraLite mk3 (FireWire only)
170-
* MOTU UltraLite mk3 (Hybrid)
171-
* MOTU Traveler mk3
172-
* MOTU Track 16
92+
* Version 1 models
93+
94+
* MOTU 828
95+
* MOTU 896
96+
97+
* Register DSP models
98+
99+
* MOTU Traveler
100+
* MOTU 828mkII
101+
* MOTU 896HD
102+
* MOTU UltraLite
103+
* MOTU 8pre
104+
* MOTU 4pre
105+
* MOTU AudioExpress
106+
107+
* Command DSP models
108+
109+
* MOTU 828mk3 (FireWire only)
110+
* MOTU 828mk3 (Hybrid)
111+
* MOTU UltraLite mk3 (FireWire only)
112+
* MOTU UltraLite mk3 (Hybrid)
113+
* MOTU Traveler mk3
114+
* MOTU Track 16
173115

174116
* snd-oxfw-ctl-service
175117

@@ -242,10 +184,174 @@ your device, please contact to developer.
242184

243185
* snd-fireface-ctl-service
244186

245-
* Fireface 800
246-
* Fireface 400
247-
* Fireface UCX
248-
* Fireface 802
187+
* Former models
188+
189+
* Fireface 800
190+
* Fireface 400
191+
192+
* Latter models
193+
194+
* Fireface UCX
195+
* Fireface 802
196+
197+
Restrictions
198+
============
199+
200+
Due to a lack of information about the target devices, certain restrictions are unavoidable.
201+
However, we welcome any assistance that can enhance the project.
202+
203+
* snd-bebob-ctl-service
204+
205+
* The most of compressor, equalizer, and reverb controls are not available for Focusrite Saffire.
206+
* No control is available for un-coded devices. For example, PrismSound Orpheus is the case.
207+
208+
* snd-fireworks-ctl-service
209+
210+
* Some control is not available for Gibson Robot Interface Pack.
211+
212+
* snd-dice-ctl-service
213+
214+
* The most of equalizer controls are not available for Focusrite Saffire Pro 24 DSP.
215+
* The most of monitor parameters may not work for Alesis iO 14/26 FireWire. This may come from
216+
firmware version.
217+
* The channel strip dynamics, equalizer, and reverb are not available for Lexicon I-ONIX 810s.
218+
* No control is available for Focusrite Saffire Pro 40 (TCD3070 ASIC).
219+
* No control is available for Solid State Logic Duende Classic and Mini.
220+
221+
* snd-firewire-digi00x-ctl-service
222+
223+
* Due to hardware design, the function of DSP can not be configured unless an ALSA PCM
224+
application initiates isochronous communication.
225+
226+
* snd-firewire-tascam-ctl-service
227+
228+
* Due to hardware design, most controls are not synchronized to hardware expectedly unless an
229+
ALSA PCM application initiates isochronous communication.
230+
* For console models, any event in control surface is available via port of ALSA Sequencer. The
231+
event is converted to controller event with channel 0 which has the consecutive number as param
232+
and event value. At present, the consecutive number is fixed and not configurable.
233+
234+
* snd-motu-ctl-service
235+
236+
* Due to hardware design, most controls, including hardware metering, are not synchronized to
237+
hardware expectedly for Register DSP models unless an ALSA PCM application initiates isochronous
238+
communication.
239+
* Due to hardware design, hardware metering may not work properly for Command DSP models unless an
240+
ALSA PCM application initiates isochronous communication.
241+
* The channel positionss available in the hardware meter is not adequate in all Command DSP
242+
models.
243+
* Sometimes, there may be an issue with initializing Command DSP models for communication. In such
244+
case, the workaround is to simply restart the service program.
245+
* 896 mk3 (FireWire only/Hybrid) is not supported since developer has no change to access to it..
246+
247+
* snd-fireface-ctl-service
248+
249+
* The controls of latter models are not synchronized to any operation by the Remote Control or
250+
the Advanced Remote Control.
251+
252+
Support
253+
=======
254+
255+
* If finding any issue, please file it to
256+
`github repository <https://github.com/alsa-project/snd-firewire-ctl-services>`_.
257+
258+
License
259+
=======
260+
261+
* Some library crates are released under MIT license. They are available in `<crates.io>`_
262+
as well.
263+
264+
* `alsa-ctl-tlv-codec <https://crates.io/crates/alsa-ctl-tlv-codec>`_
265+
* `ieee1212-config-rom <https://crates.io/crates/ieee1212-config-rom>`_
266+
* `ta1394-avc-general <https://crates.io/crates/ta1394-avc-general>`_
267+
* `ta1394-avc-audio <https://crates.io/crates/ta1394-avc-audio>`_
268+
* `ta1394-avc-stream-format <https://crates.io/crates/ta1394-avc-stream-format>`_
269+
* `ta1394-avc-ccm <https://crates.io/crates/ta1394-avc-ccm>`_
270+
271+
* Some library crates for protocol implementation are released under GNU Lesser General
272+
Public License v3.0 or later with respect to clause for reverse engineering. They are
273+
available in `<crates.io>`_ as well.
274+
275+
* `firewire-bebob-protocols <https://crates.io/crates/firewire-bebob-protocols>`_
276+
* `firewire-fireworks-protocols <https://crates.io/crates/firewire-fireworks-protocols>`_
277+
* `firewire-oxfw-protocols <https://crates.io/crates/firewire-oxfw-protocols>`_
278+
* `firewire-dice-protocols <https://crates.io/crates/firewire-dice-protocols>`_
279+
* `firewire-digi00x-protocols <https://crates.io/crates/firewire-digi00x-protocols>`_
280+
* `firewire-tascam-protocols <https://crates.io/crates/firewire-tascam-protocols>`_
281+
* `firewire-motu-protocols <https://crates.io/crates/firewire-motu-protocols>`_
282+
* `firewire-fireface-protocols <https://crates.io/crates/firewire-fireface-protocols>`_
283+
284+
* The other crates are for runtime and released under GNU General Public License Version 3.
285+
286+
Dependencies
287+
============
288+
289+
* Rust programming language <https://www.rust-lang.org/> v1.65 or later.
290+
* Cargo
291+
* glib `<https://developer.gnome.org/glib/>`_
292+
* libhinawa v2.5 or later `<https://github.com/alsa-project/libhinawa>`_
293+
* libhitaki v0.2 or later `<https://github.com/alsa-project/libhitaki>`_
294+
* alsa-gobject v0.3 or later `<https://github.com/alsa-project/alsa-gobject/>`_
295+
296+
* The library crates enumerated in `License` section are downloaded from `<crates.io>`_ when
297+
building by configurations of `Cargo.toml`.
298+
299+
How to build
300+
============
301+
302+
Build ::
303+
304+
$ cargo build
305+
306+
Execute temporarily ::
307+
308+
& cargo run --bin (the executable name) -- (the arguments of executable)
309+
310+
All of executables can print help when either ``--help`` or ``-h`` is given as an argument of
311+
command line. In the most executables, the first positional argument is the numeric identifier of
312+
sound card in Linux sound subsystem. For further information, please refer to ``Runtime debugging``
313+
clause.
314+
315+
Install executables ::
316+
317+
$ cargo install --path (path to binary crate)
318+
319+
The runtime crates which provide the executables are listed below:
320+
321+
snd-firewire-digi00x-ctl-service
322+
``snd-firewire-digi00x-ctl-service`` crate locates in ``runtime/digi00x``
323+
snd-firewire-tascam-ctl-service
324+
``snd-firewire-tascam-ctl-service`` crate locates in ``runtime/tascam``
325+
snd-fireworks-ctl-service
326+
``snd-fireworks-ctl-service`` crate locates in ``runtime/fireworks``
327+
snd-firewire-motu-ctl-service
328+
``snd-firewire-motu-ctl-service`` crate locates in ``runtime/motu``
329+
snd-oxfw-ctl-service
330+
``snd-oxfw-ctl-service`` crate locates in ``runtime/oxfw``
331+
snd-bebob-ctl-service
332+
``snd-bebob-ctl-service`` crate locates in ``runtime/bebob``
333+
snd-dice-ctl-service
334+
``snd-dice-ctl-service`` crate locates in ``runtime/dice``
335+
snd-fireface-ctl-service
336+
``snd-fireface-ctl-service`` crate locates in ``runtime/fireface``
337+
338+
The executable is usually installed under ``~/.cargo/bin``, while it's possible to choose the path.
339+
In detail, please refer to
340+
`manual of cargo install <https://doc.rust-lang.org/cargo/commands/cargo-install.html>`_.
341+
342+
Uninstall executables ::
343+
344+
$ cargo uninstall -p (name of runtime crate)
345+
346+
Runtime debugging
347+
=================
348+
349+
All executables support an option for log level for debugging. When either ``-l`` or
350+
``--log-level`` is given with log level, they prints verbose logs to standard output.
351+
At present, ``debug`` is just supported for the log level.
352+
353+
This function is implemented by `tracing <https://crates.io/crates/tracing>`_ and
354+
`tracing-subscriber <https://crates.io/crates/tracing-subscriber>`_ crates.
249355

250356
Supported protocols
251357
===================
@@ -271,16 +377,6 @@ Supported protocols
271377
* Protocol for former models of Fireface series of RME GmbH
272378
* Protocol for latter models of Fireface series of RME GmbH
273379

274-
Runtime debugging
275-
=================
276-
277-
All executables support an option for log level for debugging. When either ``-l`` or
278-
``--log-level`` is given with log level, they prints verbose logs to standard output.
279-
At present, ``debug`` is just supported for the log level.
280-
281-
This function is implemented by `tracing <https://crates.io/crates/tracing>`_ and
282-
`tracing-subscriber <https://crates.io/crates/tracing-subscriber>`_ crates.
283-
284380
Design note
285381
===========
286382

0 commit comments

Comments
 (0)