[alsa-devel] [PATCH 0/5] ALSA: firewire-tascam: add MIDI functionality
Takashi Sakamoto
o-takashi at sakamocchi.jp
Tue Oct 13 11:36:32 CEST 2015
HI,
On Oct 13 2015 07:20, Jonathan Woithe wrote:
> On Mon, Oct 12, 2015 at 02:48:16PM +0200, Stefan Richter wrote:
>> On Oct 12 Takashi Sakamoto wrote:
>>> Although TASCAM FireWire series has physical controls, this patchset
>>> doesn't support them. I think some facilities are required to enable this
>>> functionality:
>>> * handling MIDI messages on virtual MIDI ports by this driver
>>> * handling status and control messages in isochronous packet by this
>>> driver
>>
>> As a side note, AFAIR, RME devices encapsulate status in their isochronous
>> stream too... or was it MOTU?
>
> Both do, but in completely different ways for different purposes. In the
> case of RME devices the information communicated can be used to help control
> and monitor the streaming system but it is not essential: there are other
> arguably easier ways to maintain the streaming rates, and these alternatives
> are what we use in FFADO now.
>
> In MOTU devices the information relates mainly to device control changes
> which are made via the front panel controls. This is used to keep software
> mixer/control programs in sync with the hardware when changes are made on
> the hardware while the software control application is running. It sounds
> like this is close to what the Tascam units do based on Takashi's comments
> (although obviously with a very different protocol).
(In this message, I mention about the other issues because of its
priority, sorry.)
I don't know the reason that you're interested in it, while I'm not
currently interested in it.
When the status and control messages are handled by the drivers,
consumers are userspace applications. Userspace applications perform
some reactions against the status and control messages. Most of the
reactions are archieved via fw character devices.
(Of cource, I know there're some requirements for drivers to perform
such responsibilities, instead of userspace applications. But it's a
rare case, I think.)
When considering about userspace applications, permissions of fw
character devices are important. Thus, 'udevd' in systemd project has
enough rules for userspace applications to handle IEEE 1394 units for
audio and sound.
In the series of the patchset, I committed for some models which
Digidesign and TASCAM produced. Unfortunately, there're no rules for
these models. Userspace applications are disabled to access these units.
I believe this issue is prior to handling status and control messages.
Besides, I think this is a main issue which Damien Zammit faced in this
post:
[alsa-devel] firewire mixer interface -- was Re: [PATCH 11/11] ALSA:
digi00x: apply double-oh-three algorism to multiplex PCM samples
http://mailman.alsa-project.org/pipermail/alsa-devel/2015-March/089381.html
If possible, I'd like to add enough rules to udevd, including RME and
MOTU models before working for them.
Well, for udevd, current ALSA firewire stack has another issue. It's
'device database' for IEEE 1394 units.
Currently, the database has entries with vendor/model name of OHCI 1394
host controller for any IEEE 1394 units. It's preferrable to use
vendor/model name of each units, at least for audio and sound.
PulseAudio includes a patch for this issue. It has additional conditions
to select correct strings for IEEE 1394 units.
http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=3ac73598c67cb59a318c8baaf33fe97eed1e0b3e
If possible, I'd like to remove this ugly patch by working in udevd
upstream.
I'm glad to get your help for these issues, Stefan and Jonathan.
Regards
Takashi Sakamoto
More information about the Alsa-devel
mailing list