summaryrefslogtreecommitdiff
path: root/libs/backends/portaudio
AgeCommit message (Collapse)Author
2017-09-23amend ab3889ff: portaudio backend uses a vector for connectionsRobin Gareus
2017-09-23Propagate Latency to backend/system portsRobin Gareus
Set accumulated capture-latency for physical-outputs and accumulated playback-latency for physical-inputs after Ardour is done setting all non-physical port latencies. This will be needed for latency-compensation of the complete graph.
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode and video in order to keep the legible
2017-09-16Namespace PBD::RingBufferRobin Gareus
class RingBuffer<> is a very generic name and should not pollute the global namespace.
2017-08-29Abstract definition of rt-scheduler policyRobin Gareus
pthread-w32 does not support pthread_setschedparam() with SCHED_FIFO and bails out. While pthread_create() simply ignores the policy and sets the priority regadless. This only affects ctrl-surface event-loops & AutomationWatch on Windows.
2017-08-29Consolidate _realtime_pthread_create() into libpbd.Robin Gareus
2017-08-07Fix non-buffered PA backend. Wait for backend to become activeRobin Gareus
This hopefully fixes an issue with port-registration (new session) being skipped because PortAudioBackend::available() still false until the first callback.
2017-08-07PortAudio: skip process callbacks until ports are establishedRobin Gareus
2017-08-05amend bc46a7e2e9; fix blind coding typosRobin Gareus
2017-08-05PortAudio backend RT-safe MIDI buffer allocationRobin Gareus
2017-08-05Update backend API: read-only MIDI input buffersRobin Gareus
2017-08-05Reduce DSP thread priority (main-i/o > midi i/o > computation)Robin Gareus
2017-08-03Some more assert() debuggingRobin Gareus
2017-04-08Retain order of concurrent MIDI eventsRobin Gareus
This fixes an issue with FaderPort8 (and maybe other surfaces or synths).
2016-11-27revert 335debfa for the PA backendRobin Gareus
The same device may have different names for input + output
2016-11-26Add API to enforce valid device selection.Robin Gareus
2016-11-15Fix intermittent hang when stopping PortaudioBackendTim Mayberry
This issue is not always reproducible but when it does occur it happens somewhat consistently on both 32bit and 64bit builds(Tested on Windows 7). The midiOutReset call does not return (or it takes so long that it might as well be indefinite) and as it is not strictly necessary just remove it. Resolves: http://tracker.ardour.org/view.php?id=7095
2016-11-10Use better debug output in PortaudioBackendTim Mayberry
When failing to open audio stream in callback mode
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-05-06add missing includeRobin Gareus
2016-05-06convert WinMME Device names to UTF-8Robin Gareus
2016-04-18implement metadata-set for remaining backendsRobin Gareus
2016-02-28prepare for update to waf 1.8Robin Gareus
uselib is no longer implicit (inherited by .use). This is still incomplete, some uselibs for non-linux variants may be missing. bld.is_defined("HAVE_XXX") also no longer works and will have to be changed (I think to bld.env["HAVE_XXX"]) in countless places.
2016-02-27fix hang at exit (after freewheeling) with PA-nonblocking backendRobin Gareus
2016-02-11Add debugging output for WinMME midi device namesTim Mayberry
2016-02-11Only build one version of the Portaudio backend that supports both blocking ↵Tim Mayberry
and callback API
2016-02-11Implement new AudioBackend API in PA backend to choose between callback and ↵Tim Mayberry
blocking API
2016-02-11Add a missing include from portaudio WINMME source fileTim Mayberry
Apparently this is now required by my version of gcc/mingw
2016-02-11Implement MIDI device enumeration and latency offset/calibration in ↵Tim Mayberry
portaudio backend
2015-12-21ship both blocking and callback PA backends (for debug purposes)Robin Gareus
this just works (no symbol conflicts)
2015-12-08standardize port-namesRobin Gareus
2015-12-08fix previous commit.Robin Gareus
2015-12-08portaudio connect & graph-changed callbacks (untested)Robin Gareus
2015-12-02Fix latency compensation for audio data in portaudio backendTim Mayberry
For drivers that correctly report latency values(ASIO) this should result a much closer alignment of audio in a loopback test. Measurement and adjustment may still be needed, especially for non-ASIO drivers. Testing with the RME HDSP Multiface and Yamaha AG06 using ASIO drivers results in maximum offset of a couple of samples.
2015-12-02Use portaudio callback API by default in portaudio backendTim Mayberry
2015-12-02Rename member variables in Portaudio Backend for consistencyTim Mayberry
2015-12-02Rename blocking process function in portaudio backendTim Mayberry
2015-12-02Rename blocking thread function in portaudio backendTim Mayberry
2015-11-19Fix windows build when using pthreads-win32 libraryTim Mayberry
2015-11-19Use a range of values for ASIO buffer sizes if provided by driverTim Mayberry
This has been tested on four devices: - A RME HDSP Multiface - A Yamaha AG06 - A Focusrite 2i2 - A built-in soundcard running ASIO4ALL The HDSP and the AG06 only return one buffer size when queried so the preferred size is used as before. The Focusrite returns a min corresponding to the position of the slider in the control dialog and the max is 1024. The granularity is 1 so this means that the number of values needs to be reduced for the current UI design with a combo box so the granularity is increased until there are around 8-9 buffer sizes to choose from evenly spaced between min and max(but we could easily change this if the UI changes etc). The ASIO4ALL driver returns a min of 64 and a max of 2048 and a granularity of 8. So where the minimum buffer size and granularity is a power of 2 use only buffer sizes that are power of 2. If the driver returns different values for min and max it is not currently possible to indicate which is the driver preferred value. A checkbox or other UI element could be added to the AudioSetup dialog to only use the preferred value but that is more work and perhaps not necessary.
2015-11-19Add support for callback API to portaudio backend but keep blocking API as ↵Tim Mayberry
default Don't use the callback API for now until further and wider testing.
2015-10-07Fix handling of Sysex messages with WinMME midi driverTim Mayberry
2015-10-06more debugging for MIDI input via WinMMEPaul Davis
2015-10-06add more debugging to portaudio/MME MIDI backendPaul Davis
2015-10-06Fix WinMME midi driver shutdown with sysex enabledTim Mayberry
midiInReset triggers the sysex callback to tell the application that it has finished with the buffer. Calling midiInAddBuffer results in an infinite loop so just return during shutdown.
2015-10-05try enabling windows MME MIDI sysex supportPaul Davis
2015-10-02use new error-messagesRobin Gareus
2015-10-01Return meaningful error codes when PortaudioBackend fails to startTim Mayberry
So they can be used to give a contextual error message in the GUI
2015-10-01Use portaudio error codes in the PortaudioIO class.Tim Mayberry
Having error codes defined in PortaudioIO means it is not dependent on the ErrorCodes in AudioBackend but it doesn't really make sense to have another set, so just use the PA ones until they become insufficient.
2015-09-16De/Initialize MMCSS on windows in PBD::init/cleanup instead of in PA BackendTim Mayberry