Re: [alsa-devel] Griffin FireWave stream format information
On Feb 27 Takashi Sakamoto wrote:
Stefan or Jay,
Could I request you to get outputs against command in this message with FireWave?
Jay already responded, but
[...]
Based on this guess and according to its manual, FireWave should have 7 entries: $ firewire-request /dev/fw8 fcp 0x01ffbfc100000000ffff01ff 0c ff bf c1 00 00 00 00 ff 00 01 90 40 02 02 01 06 06
$ firewire-request /dev/fw8 fcp 0x01ffbfc100000000ffff01ff response: 000: 0c ff bf c1 00 00 00 00 ff 00 01 90 40 02 02 01 ............@... response: 010: 06 06 ..
$ firewire-request /dev/fw8 fcp 0x01ffbfc100000000ffff02ff 0c ff bf c1 00 00 00 00 ff 00 02 90 40 03 02 01 06 06
$ firewire-request /dev/fw8 fcp 0x01ffbfc100000000ffff02ff response: 000: 0c ff bf c1 00 00 00 00 ff 00 02 90 40 03 02 01 ............@... response: 010: 06 06 ..
$ firewire-request /dev/fw8 fcp 0x01ffbfc100000000ffff03ff 0c ff bf c1 00 00 00 00 ff 00 03 90 40 04 02 01 06 06
$ firewire-request /dev/fw8 fcp 0x01ffbfc100000000ffff03ff response: 000: 0c ff bf c1 00 00 00 00 ff 00 03 90 40 05 02 01 ............@... response: 010: 06 06 ..
$ firewire-request /dev/fw8 fcp 0x01ffbfc100000000ffff04ff 0c ff bf c1 00 00 00 00 ff 00 04 90 40 05 02 01 06 06
$ firewire-request /dev/fw8 fcp 0x01ffbfc100000000ffff04ff response: 000: 0c ff bf c1 00 00 00 00 ff 00 04 90 40 02 02 01 ............@... response: 010: 02 00 ..
(These four is for 6ch sound for usual 5.1ch surround) $ firewire-request /dev/fw8 fcp 0x01ffbfc100000000ffff05ff 0c ff bf c1 00 00 00 00 ff 00 05 90 40 02 02 01 02 06
$ firewire-request /dev/fw8 fcp 0x01ffbfc100000000ffff05ff response: 000: 0c ff bf c1 00 00 00 00 ff 00 05 90 40 03 02 01 ............@... response: 010: 02 00 ..
$ firewire-request /dev/fw8 fcp 0x01ffbfc100000000ffff06ff 0c ff bf c1 00 00 00 00 ff 00 06 90 40 03 02 01 02 06
$ firewire-request /dev/fw8 fcp 0x01ffbfc100000000ffff06ff response: 000: 0c ff bf c1 00 00 00 00 ff 00 06 90 40 04 02 01 ............@... response: 010: 02 00 ..
$ firewire-request /dev/fw8 fcp 0x01ffbfc100000000ffff07ff 0c ff bf c1 00 00 00 00 ff 00 07 90 40 04 02 01 02 06
$ firewire-request /dev/fw8 fcp 0x01ffbfc100000000ffff07ff response: 000: 0a ff bf c1 00 00 00 00 ff ff 07 ff ............
(These three is for 2ch stereo sound for Dolby Pro Logic II)
Would you please confirm these output?
So this seems to be the same as from Jay's FireWave specimen. Here are results of the other requests from your subsequent mail:
$ firewire-request /dev/fw8 fcp 0x01ffbfc000000000ffffffff response: 000: 0c ff bf c0 00 00 00 00 ff 00 90 40 04 02 01 06 ...........@.... response: 010: 06 .
$ firewire-request /dev/fw8 fcp 0x00ffbfc100000000ff0090400202010200 response: 000: 08 ff bf c1 00 00 00 00 ff 00 90 40 02 02 01 02 ...........@.... response: 010: 00 .
$ firewire-request /dev/fw8 fcp 0x00ffbfc100000000ff0090400302010200 response: 000: 08 ff bf c1 00 00 00 00 ff 00 90 40 03 02 01 02 ...........@.... response: 010: 00 .
$ firewire-request /dev/fw8 fcp 0x00ffbfc100000000ff0090400402010200 response: 000: 08 ff bf c1 00 00 00 00 ff 00 90 40 04 02 01 02 ...........@.... response: 010: 00 .
Hi Stefan,
Thanks for your report.
(Feb 28 2014 18:56), Stefan Richter wrote:
$ firewire-request /dev/fw8 fcp 0x00ffbfc100000000ff0090400202010200 response: 000: 08 ff bf c1 00 00 00 00 ff 00 90 40 02 02 01 02 ...........@.... response: 010: 00 .
$ firewire-request /dev/fw8 fcp 0x00ffbfc100000000ff0090400302010200 response: 000: 08 ff bf c1 00 00 00 00 ff 00 90 40 03 02 01 02 ...........@.... response: 010: 00 .
$ firewire-request /dev/fw8 fcp 0x00ffbfc100000000ff0090400402010200 response: 000: 08 ff bf c1 00 00 00 00 ff 00 90 40 04 02 01 02 ...........@.... response: 010: 00 .
Oh, I made a mistake again...
The subfunction should be 0xc0 (Single) instead of 0xc1 (List). 'Extend Stream Format Information' command don't allow ctype=control for List subfunction.
These are correct commands: (for 32.0kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400202010200 (for 44.1kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400302010200 (for 48.0kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400402010200
If one of them are accepted, the stream format is changed for 2ch IEC 60958-3 at indicated rate. To confirm it, please execute this command again: $ firewire-request /dev/fw8 fcp 0x01ffbfc000000000ffffffff Response should be: 0c ff bf c0 00 00 00 00 ff 00 90 40 0[234] 02 01 02 00
To recover to 5.1ch surround, please execute this command: (for 32.0kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400202010200 (for 44.1kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400302010200 (for 48.0kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400402010200 (for 96.0kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400502010200
To confirm it, please execute this command again: $ firewire-request /dev/fw8 fcp 0x01ffbfc000000000ffffffff
Response should be: 0c ff bf c0 00 00 00 00 ff 00 90 40 0[2345] 02 01 06 06
Thanks
Takashi Sakamoto o-takashi@sakamocchi.jp
On Feb 28 Takashi Sakamoto wrote:
These are correct commands: (for 32.0kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400202010200
stefan@stein ~ $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400202010200 response: 000: 09 ff bf c0 00 00 00 00 ff 00 90 40 02 02 01 02 ...........@.... response: 010: 00 . stefan@stein ~ $ firewire-request /dev/fw8 fcp 0x01ffbfc000000000ffffffff response: 000: 0c ff bf c0 00 00 00 00 ff 00 90 40 02 02 01 02 ...........@.... response: 010: 00 .
(for 44.1kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400302010200
stefan@stein ~ $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400302010200 response: 000: 09 ff bf c0 00 00 00 00 ff 00 90 40 03 02 01 02 ...........@.... response: 010: 00 . stefan@stein ~ $ firewire-request /dev/fw8 fcp 0x01ffbfc000000000ffffffff response: 000: 0c ff bf c0 00 00 00 00 ff 00 90 40 03 02 01 02 ...........@.... response: 010: 00 .
(for 48.0kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400402010200
stefan@stein ~ $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400402010200 response: 000: 09 ff bf c0 00 00 00 00 ff 00 90 40 04 02 01 02 ...........@.... response: 010: 00 . stefan@stein ~ $ firewire-request /dev/fw8 fcp 0x01ffbfc000000000ffffffff response: 000: 0c ff bf c0 00 00 00 00 ff 00 90 40 04 02 01 02 ...........@.... response: 010: 00 .
If one of them are accepted, the stream format is changed for 2ch IEC 60958-3 at indicated rate. To confirm it, please execute this command again: $ firewire-request /dev/fw8 fcp 0x01ffbfc000000000ffffffff Response should be: 0c ff bf c0 00 00 00 00 ff 00 90 40 0[234] 02 01 02 00
Yep, it is 0c ff bf c0 00 00 00 00 ff 00 90 40 0[234] 02 01 02 00.
To recover to 5.1ch surround, please execute this command: (for 32.0kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400202010200
stefan@stein ~ $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400202010200 response: 000: 09 ff bf c0 00 00 00 00 ff 00 90 40 02 02 01 02 ...........@.... response: 010: 00 . stefan@stein ~ $ firewire-request /dev/fw8 fcp 0x01ffbfc000000000ffffffff response: 000: 0c ff bf c0 00 00 00 00 ff 00 90 40 02 02 01 02 ...........@.... response: 010: 00 .
(for 44.1kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400302010200
stefan@stein ~ $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400302010200 response: 000: 09 ff bf c0 00 00 00 00 ff 00 90 40 03 02 01 02 ...........@.... response: 010: 00 . stefan@stein ~ $ firewire-request /dev/fw8 fcp 0x01ffbfc000000000ffffffff response: 000: 0c ff bf c0 00 00 00 00 ff 00 90 40 03 02 01 02 ...........@.... response: 010: 00 .
(for 48.0kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400402010200
stefan@stein ~ $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400402010200 response: 000: 09 ff bf c0 00 00 00 00 ff 00 90 40 04 02 01 02 ...........@.... response: 010: 00 . stefan@stein ~ $ firewire-request /dev/fw8 fcp 0x01ffbfc000000000ffffffff response: 000: 0c ff bf c0 00 00 00 00 ff 00 90 40 04 02 01 02 ...........@.... response: 010: 00 .
(for 96.0kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400502010200
stefan@stein ~ $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400502010200 response: 000: 09 ff bf c0 00 00 00 00 ff 00 90 40 05 02 01 02 ...........@.... response: 010: 00 . stefan@stein ~ $ firewire-request /dev/fw8 fcp 0x01ffbfc000000000ffffffff response: 000: 0c ff bf c0 00 00 00 00 ff 00 90 40 05 02 01 02 ...........@.... response: 010: 00 .
To confirm it, please execute this command again: $ firewire-request /dev/fw8 fcp 0x01ffbfc000000000ffffffff
Response should be: 0c ff bf c0 00 00 00 00 ff 00 90 40 0[2345] 02 01 06 06
Nope, it is only 0c ff bf c0 00 00 00 00 ff 00 90 40 0[2345] 02 01 02 00.
Stefan,
(Feb 28 2014 22:34), Stefan Richter wrote:
stefan@stein ~ $ firewire-request /dev/fw8 fcp
0x00ffbfc000000000ff0090400202010200
response: 000: 09 ff bf c0 00 00 00 00 ff 00 90 40 02 02 01 02
...........@....
response: 010: 00 . stefan@stein ~ $ firewire-request /dev/fw8 fcp 0x01ffbfc000000000ffffffff response: 000: 0c ff bf c0 00 00 00 00 ff 00 90 40 02 02 01 02
...........@....
response: 010: 00 ...
OK. Now we get to know how to change modes from 5.1ch surround sound to 'Dolby Pro Logic II' mode.
(Feb 28 2014 22:34), Stefan Richter wrote:
Nope, it is only 0c ff bf c0 00 00 00 00 ff 00 90 40 0[2345] 02 01 02 00.
Yes. I made mistakes again. (I'm ashamed...)
To recover to 5.1ch surround, please execute this command: (for 32.0kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400202010200 (for 44.1kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400302010200 (for 48.0kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400402010200 (for 96.0kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400502010200
The last two bytes should be 0x0606.
Within this two bytes, the first byte means the number of data channels and the second byte means type of the data channel. So in FireWave, 6ch PCM data channel is expressed by 0x0606, 2ch IEC 60958-3 data channel is expressed by 0x0200.
I'm sorry to trouble you but I request you to try the sequence of commands with these fixes...
Thanks
Takashi Sakamoto o-takashi@sakamocchi.jp
On Feb 28 Takashi Sakamoto wrote:
To recover to 5.1ch surround, please execute this command: (for 32.0kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400202010200 (for 44.1kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400302010200 (for 48.0kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400402010200 (for 96.0kHz) $ firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400502010200
The last two bytes should be 0x0606.
Within this two bytes, the first byte means the number of data channels and the second byte means type of the data channel. So in FireWave, 6ch PCM data channel is expressed by 0x0606, 2ch IEC 60958-3 data channel is expressed by 0x0200.
$ for n in 2 3 4 5; do echo $n; firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400${n}02010606; sleep 1; firewire-request /dev/fw8 fcp 0x01ffbfc000000000ffffffff; sleep 1; done 2 response: 000: 09 ff bf c0 00 00 00 00 ff 00 90 40 02 02 01 06 ...........@.... response: 010: 06 . response: 000: 0c ff bf c0 00 00 00 00 ff 00 90 40 02 02 01 06 ...........@.... response: 010: 06 . 3 response: 000: 09 ff bf c0 00 00 00 00 ff 00 90 40 03 02 01 06 ...........@.... response: 010: 06 . response: 000: 0c ff bf c0 00 00 00 00 ff 00 90 40 03 02 01 06 ...........@.... response: 010: 06 . 4 response: 000: 09 ff bf c0 00 00 00 00 ff 00 90 40 04 02 01 06 ...........@.... response: 010: 06 . response: 000: 0c ff bf c0 00 00 00 00 ff 00 90 40 04 02 01 06 ...........@.... response: 010: 06 . 5 response: 000: 09 ff bf c0 00 00 00 00 ff 00 90 40 05 02 01 06 ...........@.... response: 010: 06 . response: 000: 0c ff bf c0 00 00 00 00 ff 00 90 40 05 02 01 06 ...........@.... response: 010: 06 .
Stefan,
$ for n in 2 3 4 5; do echo $n; firewire-request /dev/fw8 fcp 0x00ffbfc000000000ff0090400${n}02010606; sleep 1; firewire-request /dev/fw8 fcp 0x01ffbfc000000000ffffffff; sleep 1; done 2 response: 000: 09 ff bf c0 00 00 00 00 ff 00 90 40 02 02 01 06 ...........@.... response: 010: 06 . response: 000: 0c ff bf c0 00 00 00 00 ff 00 90 40 02 02 01 06 ...........@.... response: 010: 06 . 3 response: 000: 09 ff bf c0 00 00 00 00 ff 00 90 40 03 02 01 06 ...........@.... response: 010: 06 . response: 000: 0c ff bf c0 00 00 00 00 ff 00 90 40 03 02 01 06 ...........@.... response: 010: 06 . 4 response: 000: 09 ff bf c0 00 00 00 00 ff 00 90 40 04 02 01 06 ...........@.... response: 010: 06 . response: 000: 0c ff bf c0 00 00 00 00 ff 00 90 40 04 02 01 06 ...........@.... response: 010: 06 . 5 response: 000: 09 ff bf c0 00 00 00 00 ff 00 90 40 05 02 01 06 ...........@.... response: 010: 06 . response: 000: 0c ff bf c0 00 00 00 00 ff 00 90 40 05 02 01 06 ...........@.... response: 010: 06 .
Thanks. Now we get to know the way to recover from '2ch IEC 60958-3 data' mode to '6ch PCM data' mode.
I note that this 'SINGLE' sunfunction of 'AV/C Stream Format Information' command can also be used to switch sampling rate instead of 'AV/C PLUG SIGNAL FORMAT' command (i.e. 0x00ff18009002ffff).
Thanks
Takashi Sakamoto o-takashi@sakamocchi.jp
participants (2)
-
Stefan Richter
-
Takashi Sakamoto