Audacity PortAudio v19

From Audacity Wiki
Revision as of 07:01, 4 July 2007 by Suf (talk | contribs) (Reverted edit of YgaLxy, changed back to last version by Mathiasf)
Jump to: navigation, search
  • "./configure --with-portaudio=v19 --without-portmixer" works. --without-portmixer is critical to getting a compilable configuration, just using --with-portaudio=v19 will configure but not compile.

On kernel 2.6.12, ALSA 1.0.9, audacity 1.2.3/4, this seems to be stable and reliable if the current (Sept 05) snapshot of portaudio is used.

  • compile failure: kernel 2.6.3, audacity 1.2.0, alsa 1.0.2, Slackware 9.1(and other distros: debian, mdk, ...)
configure --with-portaudio=v19 --without-portmixer
does not compile:
pa_linux_alsa/pa_linux_alsa.c: In function `BuildDeviceList':
pa_linux_alsa/pa_linux_alsa.c:272: too few arguments to function `snd_pcm_hw_params_get_channels_max'
pa_linux_alsa/pa_linux_alsa.c:306: too few arguments to function `snd_pcm_hw_params_get_channels_max'
make[2]: *** [pa_linux_alsa/pa_linux_alsa.o] Error 1
make[2]: Leaving directory `/usr/local/src/audacity-src-1.2.0/lib-src/portaudio-v19'
make[1]: *** [portaudio-v19/lib/libportaudio.a] Error 2
make[1]: Leaving directory `/usr/local/src/audacity-src-1.2.0/lib-src'
make: *** [audacity] Error 2
    • This is an issue with a version of portaudio intended for ALSA 0.9.x being build against a different API in ALSA 1.0.x. It is fixed in the versions 1.2.1 and newer.
  • this still doesn't link for me on Linux - I need to add -ljack -lasound to the end of the link command if I have PortAudio configured with jack and ALSA.
  • Results of using snapshot portaudio v19:
    • Now I have two i/o devices in audacity: Aside from /dev/dsp there is 'TerraTec DMX6Fire', but this seems to be unusable.
    • Tried it, now shows both oss and alsa device: /dev/dsp/, sis7012. Neither produce audio, the alsa one gives gui error: :"Error while opening sound device. Please check the input device settings and the project sample rate." The console spawns: "Illegal combination of i/o devices".
    • I (Ah) have exactly the same error with Audacity-1.2.3 (compiled w/wo --with-portmixer=no, makes no difference) and ALSA-0.9.6 (vanilla Suse-9.0) and ALSA-1.0.6. I debugged this down to a failed ALSA-call in OpenStream () in pa_linux_alsa/pa_linux_alsa.c:
snd_pcm_hw_params_set_channels returns -22(invalid argument)
which results in:
Pa_OpenStream: hostApi->OpenStream returns -9993 (Illegal combination of I/O devices)
This happens with a M-Audio Delta Audiophile 2496 trying to play 44.1/16 stereo wav file.
  • I too tried this - /dev/dsp does produce output! "Sound Blaster Live!" doesn't...
    • This usually means that OSS emulation (which includes resample on the fly etc) works but native ALSA doesn't. Newer audacity versions show the API used in the prferences as well. It may well be the hardware / ALSA only supports one or a few sample rates, but the OSS emulation software resamples to support others. Trying other sample rates in audacity with the ALSA device should reveal at least one that works.

__and there is still an open bug on portaudio 19 compilations for ac97 cards (common) under linux.... so you might be stuffed!__

  • Not completely - it works but the cursor speed is wrong so the playback cursor isn't over the audio being played. Anyway, the bug only affects portaudio v19 using OSS emulation over ALSA, which is pointless if native ALSA support is available.
  • Given that the 2.6 Linux kernel is released and ALSA has hit 1.0, with support for many more sound cards, isn't it time to make native ALSA the default configuration? -Henrik
    • This will happen when portaudio v19 goes stable - it is still offically beta code, although seems to be quite good.

unix version, PlaYingTrackWhileRecording