Closed muranyia closed 9 years ago
Fix released. Thanks for your report. If possible, would you give me some feedback about this fix?
bebob: Fix failure to detect source of clock for Terratec Phase 88 https://github.com/takaswie/snd-firewire-improve/commit/a16d728fe70199b4913bfb7d336fb0e291387151
Thank You Takashi, I have just tested the new version, and it was playing (although no sound, but my Phase 88 is new and I never managed to get sound yet). When stopping aplay with CTRL-C, then starting again, however, it does not play any more. I wonder if this is normal.
$ aplay -vv -Dplughw:0,0 test.wav
Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Plug PCM: Route conversion PCM (sformat=S16_LE)
Transformation table:
0 <- 0
1 <- 1
2 <- none
3 <- none
4 <- none
5 <- none
6 <- none
7 <- none
8 <- none
9 <- none
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 44100
exact rate : 44100 (44100/1)
msbits : 16
buffer_size : 8192
period_size : 2048
period_time : 46439
tstamp_mode : NONE
period_step : 1
avail_min : 2048
period_event : 0
start_threshold : 8192
stop_threshold : 8192
silence_threshold: 0
silence_size : 0
boundary : 4611686018427387904
Slave: Hardware PCM card 0 'PHASE 88 Rack FW' device 0 subdevice 0
Its setup is:
stream : PLAYBACK
access : MMAP_INTERLEAVED
format : S16_LE
subformat : STD
channels : 10
rate : 44100
exact rate : 44100 (44100/1)
msbits : 16
buffer_size : 8192
period_size : 2048
period_time : 46439
tstamp_mode : NONE
period_step : 1
avail_min : 2048
period_event : 0
start_threshold : 8192
stop_threshold : 8192
silence_threshold: 0
silence_size : 0
boundary : 4611686018427387904
appl_ptr : 0
hw_ptr : 0
################ +| 98%^C
Aborted by signal Interrupt...
aplay: pcm_write:1939: write error: Interrupted system call
$ aplay -vv -Dplughw:0,0 test.wav
Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Plug PCM: Route conversion PCM (sformat=S16_LE)
Transformation table:
0 <- 0
1 <- 1
2 <- none
3 <- none
4 <- none
5 <- none
6 <- none
7 <- none
8 <- none
9 <- none
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 44100
exact rate : 44100 (44100/1)
msbits : 16
buffer_size : 8192
period_size : 2048
period_time : 46439
tstamp_mode : NONE
period_step : 1
avail_min : 2048
period_event : 0
start_threshold : 8192
stop_threshold : 8192
silence_threshold: 0
silence_size : 0
boundary : 4611686018427387904
Slave: Hardware PCM card 0 'PHASE 88 Rack FW' device 0 subdevice 0
Its setup is:
stream : PLAYBACK
access : MMAP_INTERLEAVED
format : S16_LE
subformat : STD
channels : 10
rate : 44100
exact rate : 44100 (44100/1)
msbits : 16
buffer_size : 8192
period_size : 2048
period_time : 46439
tstamp_mode : NONE
period_step : 1
avail_min : 2048
period_event : 0
start_threshold : 8192
stop_threshold : 8192
silence_threshold: 0
silence_size : 0
boundary : 4611686018427387904
appl_ptr : 0
hw_ptr : 0
#+ | 00%
I have found the problem:
$ cat /proc/asound/card0/firewire/clock
Sampling rate: 44100
Clock Source: Digital In
Setting the clock source to Internal
makes to problem go away.
Setting the clock source to Internal makes to problem go away.
When the source of clock is not internal (in your case 'Digital In' or 'Word Clock'), an available sampling rate is fixed to the sampling rate at which the device is set.
In this case, I think you try to playback 44.1kHz samples. But your device has 'Digital In' as source of clock and 44.1kHz as sampling rate. Then ALSA BeBoB driver won't change sampling rate and ALSA applications fails to playback.
Now I have a plan to post a patch to ALSA upstream to fix this issue (failure of detection for clock source).
As a custom, we, Linux kernel developers use
If you don't mind, I'd like to add your name and e-mail address to the patch. Would you please send your name and e-mail address to my e-mail address? You can see my e-mail address in README.
Regards