Difference between revisions of "Audacity PortAudio v19"

From Audacity Wiki
Jump to: navigation, search
(change playing whilst recording link again)
(clean out old failures. Summarise status)
Line 1: Line 1:
* "./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.
+
This page reflects the status of [http://www.portaudio.com/trac/wiki/V19ReleasePlan PortAudio v19] support in audacity 1.3.4. The status of PortAudio v19 in 1.2.x is very simple - completely unmaintained and unsupported.
  
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.
+
In Audacity 1.3.4, the default PortAudio version for all platforms is v19. Audacity 1.3.4 uses a snapshot of the PortAudio development code from 1st July 2007.
  
* compile failure: kernel 2.6.3, audacity 1.2.0, alsa 1.0.2, Slackware 9.1(and other distros: debian, mdk, ...)
+
== Windows ==
: <tt> configure --with-portaudio=v19 --without-portmixer</tt>
+
PortAudio appears to be stable and relatively well behaved on Windows. Support is primarily for MME (Multi Media Extensions) drivers, although DirectSound devices are also supported. ASIO is not supported as discussed on the [[ASIO_Audio_Interface]] page.
:does not compile:
 
:<tt> pa_linux_alsa/pa_linux_alsa.c: In function `<nowiki>BuildDeviceList</nowiki>':
 
: 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</tt>
 
  
**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.
+
== Mac OS X ==
 +
CoreAudio support only, no ASIO as discussed on [[ASIO_Audio_Interface]]. Recent changes to PortAudio v19 appear to be causing regressions here, and it works much less well that v18 does with many USB audio devices. On the other hand, it's reported to work better with Firewire audio devices (which are quite popular on Mac it seems). Nothing is well tested or developed due to a shortage of Mac developers on Audacity.
  
*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.
+
== Linux ==
 
+
ALSA is supported and works fine on development systems, although some distros repeatedly report problems that don't show up anywhere else. OSS probably works but is rarely tested as it is largely obsolete for most desktop users. Jack is not tested and known to have multiple issues - help, especially [[SubmittingPatches|patches]] to fix these would be much appreciated.
*Results of using snapshot portaudio v19:
 
** Now I have two i/o devices in audacity: Aside from /dev/dsp there is <nowiki>'TerraTec DMX6Fire'</nowiki>, 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: <tt>"Illegal combination of i/o devices".</tt>
 
** 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:
 
::<tt>snd_pcm_hw_params_set_channels returns -22(invalid argument)</tt>
 
::which results in:
 
::<tt>Pa_OpenStream: hostApi->OpenStream returns -9993 (Illegal combination of I/O devices)</tt>
 
::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, see <span class="plainlinks"> [http://audacityteam.org/wiki/index.php?title=Linux_Issues#Playing_whilst_recording Playing whilst recording] in [[Linux Issues]]</span>
 

Revision as of 21:56, 27 November 2007

This page reflects the status of PortAudio v19 support in audacity 1.3.4. The status of PortAudio v19 in 1.2.x is very simple - completely unmaintained and unsupported.

In Audacity 1.3.4, the default PortAudio version for all platforms is v19. Audacity 1.3.4 uses a snapshot of the PortAudio development code from 1st July 2007.

Windows

PortAudio appears to be stable and relatively well behaved on Windows. Support is primarily for MME (Multi Media Extensions) drivers, although DirectSound devices are also supported. ASIO is not supported as discussed on the ASIO_Audio_Interface page.

Mac OS X

CoreAudio support only, no ASIO as discussed on ASIO_Audio_Interface. Recent changes to PortAudio v19 appear to be causing regressions here, and it works much less well that v18 does with many USB audio devices. On the other hand, it's reported to work better with Firewire audio devices (which are quite popular on Mac it seems). Nothing is well tested or developed due to a shortage of Mac developers on Audacity.

Linux

ALSA is supported and works fine on development systems, although some distros repeatedly report problems that don't show up anywhere else. OSS probably works but is rarely tested as it is largely obsolete for most desktop users. Jack is not tested and known to have multiple issues - help, especially patches to fix these would be much appreciated.