From: Takashi Sakamoto <o-takashi@sakamocchi.jp>
To: Robin Gareus <robin@gareus.org>
Cc: tiwai@suse.de, alsa-devel@alsa-project.org, clemens@ladisch.de,
Damien Zammit <damien.zammit@gmail.com>,
ffado-devel@lists.sf.net
Subject: Re: firewire mixer interface -- was Re: [PATCH 11/11] ALSA: digi00x: apply double-oh-three algorism to multiplex PCM samples
Date: Fri, 20 Mar 2015 22:25:26 +0900 [thread overview]
Message-ID: <550C1FC6.4050700@sakamocchi.jp> (raw)
In-Reply-To: <550C0CFC.4060404@gareus.org>
Hi Robin,
On Mar 20 2015 21:05, Robin Gareus wrote:
>> $ ./firewire-request /dev/fw1 write 0xffffe0000118 0x0000000[0|1|2|3]
>
> Yes, that's what I was asking about. Can one safely write raw control
> messages to /dev/fw* without interfering with ongoing streaming?
Any userspace applications can destroy packet streaming which kernel
driver starts, by transaction to streaming-related register.
In current implementation of ALSA firewire stack and Linux FireWire
subsystem, we cannot avoid this.
For example, about Digi 002/003 family, we can destroy kernel streaming
in a way below:
1.write/read PCM samples to ALSA PCM character devices (in most case
done via alsa-lib PCM API)
2.write transaction with 0x00000003 for 0xffffe0000004 to /dev/fw%u.
3.Applications cannot read/write PCM samples again.
In this case, usually, the process receive EIO from ALSA PCM API.
> Instead interfacing via established protocols /dev/snd/control* or
> rather libasound's snd_mixer_t seems like a no-brainer to me.
As long as being able to send transactions via FireWire character
devices, the headache remains, regardless of the place to implement such
control functionality.
> Are there any control elements on common 1394 devices that cannot be
> properly exposed using existing infrastructure?
More explaination, please.
>> On the other hand, IEEE 1394 bus-connected sound devices implements its
>> own way to tell their control capabilities and model-specific way to
>> perform control. Thus we should prepare for model-specific parsers. The
>> idea to include these parsers into kernel-space increases maintaining
>> efforts.
>
> Agreed. Most of the heavy lifting should probably be done by libasound.
I don't think it possible to argue the other ALSA developers for going
to include such vendor-specific or model-specific huge codes to
alsa-lib... (Except for intel HDA)
>> In an aspect of user experience, I cannot find any differences between
>> using alsamixer (or amixer) and using specific-application.
>
> Uhm. It's a huge difference. There is a whole lot of existing
> infrastructure: from Sys-V init.d and/or SystemD save/restore, dbus
> hooks, existing mixer GUIs and application integration, not to mention
> various language bindings (eg pyalsa).
Here, I mention about alsa-lib control API to add control elements from
userspace and it's eventing mechanism.
http://www.alsa-project.org/alsa-doc/alsa-lib/group___control.html#gad5f640f1d836b532b1c18d7604a90bad
Regards
Takashi Sakamoto
next prev parent reply other threads:[~2015-03-20 13:25 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-15 16:00 [RFC][PATCH 00/11] digi00x: new driver for Digidesign 002/003 family Takashi Sakamoto
2015-03-15 16:00 ` [PATCH 01/11] ALSA: digi00x: add skelton for Digi 002/003 device driver Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 02/11] ALSA: digi00x: add streaming functionality Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 03/11] ALSA: digi00x: add proc node for clock status Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 04/11] ALSA: digi00x: add PCM functionality Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 05/11] ALSA: digi00x: add MIDI functionality Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 06/11] ALSA: digi00x: add hwdep interface Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 07/11] ALSA: digi00x: support unknown asynchronous message Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 08/11] ALSA: digi00x: support MIDI ports for device control Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 09/11] ALSA: firewire-lib: allows to implement external MIDI callback function Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 10/11] digi00x: improve MIDI capture/playback Takashi Sakamoto
2015-03-15 16:01 ` [PATCH 11/11] ALSA: digi00x: apply double-oh-three algorism to multiplex PCM samples Takashi Sakamoto
2015-03-16 11:39 ` Damien Zammit
2015-03-16 13:24 ` Takashi Sakamoto
2015-03-16 14:25 ` Robin Gareus
2015-03-16 16:25 ` Takashi Sakamoto
2015-03-16 17:13 ` Robin Gareus
2015-03-16 22:47 ` Takashi Sakamoto
2015-03-17 13:37 ` Robin Gareus
2015-03-17 13:49 ` Damien Zammit
2015-03-18 1:06 ` Takashi Sakamoto
2015-03-19 5:18 ` Damien Zammit
2015-03-19 13:59 ` Robin Gareus
2015-03-19 22:46 ` Takashi Sakamoto
2015-03-19 22:51 ` Takashi Sakamoto
2015-03-20 12:05 ` firewire mixer interface -- was " Robin Gareus
2015-03-20 13:00 ` Clemens Ladisch
2015-03-20 13:25 ` Takashi Sakamoto [this message]
2015-03-20 13:35 ` Takashi Iwai
2015-03-20 13:51 ` Takashi Sakamoto
2015-03-20 14:13 ` Takashi Iwai
2015-03-20 14:45 ` Takashi Sakamoto
2015-03-20 15:01 ` Takashi Iwai
2015-03-21 5:59 ` Damien Zammit
2015-03-22 2:55 ` Takashi Sakamoto
2015-03-22 5:56 ` [FFADO-devel] " Jonathan Woithe
2015-03-24 3:15 ` Robin Gareus
2015-03-20 13:55 ` Damien Zammit
2015-03-20 14:07 ` Clemens Ladisch
2015-03-22 6:11 ` [FFADO-devel] " Jonathan Woithe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=550C1FC6.4050700@sakamocchi.jp \
--to=o-takashi@sakamocchi.jp \
--cc=alsa-devel@alsa-project.org \
--cc=clemens@ladisch.de \
--cc=damien.zammit@gmail.com \
--cc=ffado-devel@lists.sf.net \
--cc=robin@gareus.org \
--cc=tiwai@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.