[alsa-devel] snd-bebob and PrismSound Orpheus fails with snd_pcm_hw_params_set_channels

Mike Ood jh1ood at gmail.com
Fri Apr 24 09:30:21 CEST 2015


I am now trying with my capture program, "myprog.cpp" instead of "aplay.c".

-------------------------------
% alsacap ; alscap -R
-------------------------------
Card 2, ID `Orpheus', name `Orpheus'
  Device 0, ID `BeBoB', name `Orpheus PCM', 1 subdevices (1 available)
    12 channels, sampling rate 44100..44100 Hz
    Sample formats: S16_LE, S32_LE
      Subdevice 0, name `subdevice #0'

Card 2, ID `Orpheus', name `Orpheus'
  Device 0, ID `BeBoB', name `Orpheus PCM', 1 subdevices (1 available)
    10 channels, sampling rate 44100..44100 Hz
    Sample formats: S32_LE
      Subdevice 0, name `subdevice #0'

-------------------------------
% myprog hw:2,0 44100 10
-------------------------------
Sound::Sound: sound_device = hw:2,0, rate = 44100, channels = 10
Sound::asound_set_hwparams: begin...
Sound::asound_set_hwparams: buffer_time = 92879, dir   = 1
Sound::asound_set_hwparams: buffer_size = 4096
Sound::asound_set_hwparams: period_time = 46439 , dir   = 1
Sound::asound_set_hwparams: period_size = 2048, dir = 0
Sound::asound_set_hwparams: Unable to set hw params: Connection timed out
Sound::Sound: setting of hwparams failed. Connection timed out

-------------------------------
Sound::asound_set_hwparams(snd_pcm_t *, snd_pcm_hw_params_t *)
-------------------------------
err = snd_pcm_hw_params_any(handle, params);
err = snd_pcm_hw_params_set_rate_resample(handle, params, resample);
err = snd_pcm_hw_params_set_access(handle, params,

err = snd_pcm_hw_params_set_format(handle, params, SND_PCM_FORMAT_S32_LE);
//if Orphesu
err = snd_pcm_hw_params_set_format(handle, params, SND_PCM_FORMAT_S16);
 //else

err = snd_pcm_hw_params_set_channels(handle, params, channels);
err = snd_pcm_hw_params_set_rate_near(handle, params, &rrate, 0);
err = snd_pcm_hw_params_set_buffer_time_near(handle, params, &buffer_time,
err = snd_pcm_hw_params_get_buffer_size(params, &size);
err = snd_pcm_hw_params_set_period_time_near(handle, params, &period_time,
err = snd_pcm_hw_params_get_period_size(params, &size, &dir);

err = snd_pcm_hw_params(handle, params);
if (err < 0) {
cout << "Sound::asound_set_hwparams: Unable to set hw params: "
     << snd_strerror(err) << endl;
return err;
}

-------------------------------
No messages were found in % demsg and % cat /var/log/syslog
concerning the above run of % myprog.

So is it (partly) due to "Connection timed out"?

Mike Ood


More information about the Alsa-devel mailing list