[alsa-devel] snd-bebob - Edirol FA66
Takashi Sakamoto
o-takashi at sakamocchi.jp
Wed Nov 8 00:03:05 CET 2017
(CCed to alsa-devel)
On Nov 8 2017 05:50, Pawel wrote:
> In start thanks for your great work.
> I have such card:
>
> 1 [FA66 ]: BeBoB - EDIROL FA-66
> EDIROL EDIROL FA-66 (id:2, rev:1), GUID
0040ab0000c38ae5 at fw1.0, S400
>
>
> .. which ffado drivers , I can start jack with low parameters like;
> jackd -P82 -p128 -t5000 -u -dfirewire -dhw:FA66 -r96000 -p128 -n2
>
> .. but with alsa I need to use period value 3 and buffer size between
512 and 2048.
> There are probably some hardcoded values in alsa driver.
Edirol FA-66 uses DM1000 ASIC as communication engine. This ASIC is
produced by BridgeCo. in its BeBoB solution. In this solution, IEC
61883-1/6 packet streaming is used to transfer audio/music data between
units on IEEE 1394 bus and host driver.
All of current implementation of drivers in ALSA firewire stack
including BeBoB driver relies on ALSA packet streaming engine for IEC
61883-1/6. This engine runs with hardware interrupts from 1394OHCI host
controllers. Interval of the interrupt is currently configured to every
16 interrupts. This mostly equals to 2 msec in actual time frame.
In a view from ALSA PCM application, the 2 msec is corresponding to a
period of PCM buffer. Thus, users can configure size of period over 2
msec in any PCM substream. Actual value of the size of period is decided
depending on used sampling frequency.
Furthermore, any interrupt-oriented driver requires 2 or more periods in
PCM buffer. Therefore, users can configure size of buffer over multiples
of 2 msec according to configured number of periods.
That's current design of ALSA IEC 61883-1/6 engine and it's restriction.
Regards
Takashi Sakamoto
More information about the Alsa-devel
mailing list