https://github.com/cxw42/audio-utsl
An audio player library you can build from source! Integrates libsndfile with portaudio.
https://github.com/cxw42/audio-utsl
apache-license-2 audio-engine audio-library bass-library c cygwin libsndfile portaudio pthreads realtime-audio sound-player win32
Last synced: 8 months ago
JSON representation
An audio player library you can build from source! Integrates libsndfile with portaudio.
- Host: GitHub
- URL: https://github.com/cxw42/audio-utsl
- Owner: cxw42
- License: other
- Created: 2018-06-10T16:16:04.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-06-19T16:12:34.000Z (over 7 years ago)
- Last Synced: 2025-01-16T19:02:16.004Z (9 months ago)
- Topics: apache-license-2, audio-engine, audio-library, bass-library, c, cygwin, libsndfile, portaudio, pthreads, realtime-audio, sound-player, win32
- Language: C
- Size: 80.1 KB
- Stars: 2
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# audio-utsl
A C audio player library you can build from source!
Integrates libsndfile with portaudio.
This project is intended to fill the same niche that
[BASS](https://www.un4seen.com/bass.html) does. BASS is
awesome, but I couldn't get it to run recently, possibly because of
a false positive on the AV scan. This project doesn't require any binary
blobs.
## Installation
- Install libsndfile, portaudio, and pthreads. E.g., on cygwin, those are
packages you can install from setup.exe.
- `make`. This will build the three examples.
## Usage
To use audio-utsl in your own projects, just copy everything in `src` to
some directory in your project and make sure that directory is listed as `-I`.
See the example `CFLAGS` and `LDFLAGS` in [Makefile](Makefile).
## Internals
- A producer thread to read from the source using libsndfile
- A portaudio callback consumer (which probably runs in portaudio's own thread)
to pass the data to portaudio
- [PortAudio's ring buffer](https://app.assembla.com/spaces/portaudio/git/source/master/src/common/pa_ringbuffer.h)
to pass ownership of blocks of data between the producer and the consumer
## Links
-
-
## License
Copyright 2018 Christopher White.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License
[here](https://www.apache.org/licenses/LICENSE-2.0). See the accompanying
[NOTICE](./NOTICE) for required attribution statements.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an **"AS IS" basis,
without warranties or conditions of any kind,** either express or implied.
See the License for the specific language governing permissions and
limitations under the License.