PortAudio portable cross-platform audio I/O library (fork)
- C 51.1%
- Shell 33.2%
- C++ 11.6%
- Makefile 2.3%
- Java 0.8%
- Other 1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
- Implement workaround for system timer coarse granularity causing underruns by using timeBeginPeriod/timeEndPeriod APIs inside the Event and Poll thread handlers. - Update next sleep time of the Poll rendering loop dynamically depending on time taken for processing/rendering of audio data into the available host buffer to avoid underruns and fit processing time into periodic polling time slots. - Add support for time slots logging in Poll mode if PA_WASAPI_LOG_TIME_SLOTS is defined. Fixed audible glitches by preloading the whole host buffer before stream is started. - Fix audible glitches on stream start by preloading the whole host buffer before stream is started. |
||
| bindings | ||
| build | ||
| cmake_support | ||
| doc | ||
| examples | ||
| include | ||
| pablio | ||
| qa | ||
| src | ||
| test | ||
| .gitattributes | ||
| .gitignore | ||
| aclocal.m4 | ||
| clear_gitrevision.sh | ||
| CMakeLists.txt | ||
| config.guess | ||
| config.sub | ||
| configure | ||
| configure.in | ||
| depcomp | ||
| Doxyfile | ||
| Doxyfile.developer | ||
| fixdir.bat | ||
| fixfile.bat | ||
| index.html | ||
| install-sh | ||
| LICENSE.txt | ||
| ltmain.sh | ||
| Makefile.in | ||
| missing | ||
| portaudio-2.0.pc.in | ||
| README.configure.txt | ||
| README.md | ||
| SConstruct | ||
| update_gitrevision.sh | ||
PortAudio - portable audio I/O library
PortAudio is a portable audio I/O library designed for cross-platform support of audio. It uses either a callback mechanism to request audio processing, or blocking read/write calls to buffer data between the native audio subsystem and the client. Audio can be processed in various formats, including 32 bit floating point, and will be converted to the native format internally.
Documentation:
- Documentation is available at http://www.portaudio.com/docs/
- Or at
/doc/html/index.htmlafter running Doxygen. - Also see
src/common/portaudio.hfor the API spec. - And see the
examples/andtest/directories for many examples of usage. (We suggestexamples/paex_saw.cfor an example.)
For information on compiling programs with PortAudio, please see the tutorial at:
http://portaudio.com/trac/wiki/TutorialDir/TutorialStart
We have an active mailing list for user and developer discussions. Please feel free to join. See http://www.portaudio.com for details.
Important Files and Folders:
include/portaudio.h = header file for PortAudio API. Specifies API.
src/common/ = platform independant code, host independant
code for all implementations.
src/os = os specific (but host api neutral) code
src/hostapi = implementations for different host apis
Host API Implementations:
src/hostapi/alsa = Advanced Linux Sound Architecture (ALSA)
src/hostapi/asihpi = AudioScience HPI
src/hostapi/asio = ASIO for Windows and Macintosh
src/hostapi/coreaudio = Macintosh Core Audio for OS X
src/hostapi/dsound = Windows Direct Sound
src/hostapi/jack = JACK Audio Connection Kit
src/hostapi/oss = Unix Open Sound System (OSS)
src/hostapi/wasapi = Windows Vista WASAPI
src/hostapi/wdmks = Windows WDM Kernel Streaming
src/hostapi/wmme = Windows MultiMedia Extensions (MME)
Test Programs:
test/pa_fuzz.c = guitar fuzz box
test/pa_devs.c = print a list of available devices
test/pa_minlat.c = determine minimum latency for your machine
test/paqa_devs.c = self test that opens all devices
test/paqa_errs.c = test error detection and reporting
test/patest_clip.c = hear a sine wave clipped and unclipped
test/patest_dither.c = hear effects of dithering (extremely subtle)
test/patest_pink.c = fun with pink noise
test/patest_record.c = record and playback some audio
test/patest_maxsines.c = how many sine waves can we play? Tests Pa_GetCPULoad().
test/patest_sine.c = output a sine wave in a simple PA app
test/patest_sync.c = test syncronization of audio and video
test/patest_wire.c = pass input to output, wire simulator