Popularity
7.3
Growing
Activity
0.0
Stable
21
5
5
Code Quality Rank:
L1
Monthly Downloads: 49
Programming language: C++
License: BSD 3-clause "New" or "Revised" License
Tags:
Sound
Multimedia
Latest version: v0.8.0
proteaaudio alternatives and similar packages
Based on the "Sound" category.
Alternatively, view proteaaudio alternatives based on common mentions on social networks and blogs.
-
jammittools
Export sheet music (PDF) and audio (WAV) from the Windows/Mac app Jammit -
mushu
Mushu is a minimalist MPD client with a TUI and an incremental fuzzy finder for your music library -
ALUT
A Haskell binding for the OpenAL Utility Toolkit, which makes managing of OpenAL contexts, loading sounds in various formats and creating waveforms very easy. -
OpenAL
A Haskell binding for the OpenAL cross-platform 3D audio API, appropriate for use with gaming applications and many other types of audio applications. -
flaccuraterip
Verify FLAC files ripped from CD using AccurateRip™ -
hsc3-server
SuperCollider server resource management and synchronization -
hsc3-process
A Haskell library to create and control SuperCollider scsynth processes -
zoom-cache-pcm
Library and tools for zoom-cache PCM audio codecs -
MusicBrainz-libdiscid
Binding to libdiscid by MusicBrainz -
rubberband
Haskell binding to the C++ audio stretching library Rubber Band -
mediabus-fdk-aac
Mediabus plugin for the Frauenhofer ISO-14496-3 AAC FDK
Build time-series-based applications quickly and at scale.
InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.
Promo
www.influxdata.com
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of proteaaudio or a related project?
README
Overview
ProteaAudio is a stereo audio mixer/playback library for
- Linux (PulseAudio)
- Macintosh OS X (CoreAudio)
- Windows (DirectSound)
Supported audio formats:
- Wav
- Ogg
- Raw linear PCM
Samples can be loaded from file or memory.
Build
Stack
stack setup
stack build
Nix:
stack --nix build
Example
import Control.Monad
import System.Environment
import System.FilePath
import qualified Data.ByteString as SB
import Control.Concurrent
import Sound.ProteaAudio
waitPayback = do
n <- soundActive
when (n > 0) $ do
threadDelay oneSec
waitPayback
oneSec :: Int
oneSec = 1000000 -- micro seconds
main = do
args <- getArgs
filename <- case args of
a : _ -> pure a
_ -> fail "usage: proteaaudio-play SAMPLE_FILE_NAME"
result <- initAudio 64 44100 1024 -- max channels, mixing frequency, mixing buffer size
unless result $ fail "failed to initialize the audio system"
-- (A) load sample from file
sampleA <- sampleFromFile filename 1.0 -- volume
-- start two sound tracks with shared sample data
sndTrkA <- soundPlay sampleA 1 1 0 1 -- left volume, right volume, time difference between left and right, pitch factor for playback
threadDelay oneSec -- wait 1 sec
sndTrkB <- soundPlay sampleA 1 1 0 1 -- left volume, right volume, time difference between left and right, pitch factor for playback
-- play 3 sec
threadDelay $ 3 * oneSec
soundStop sndTrkB
-- wait sndTrkA to finish
waitPayback
-- (B) load from memory buffer
buffer <- SB.readFile filename
sampleB <- case takeExtension filename of
".ogg" -> sampleFromMemoryOgg buffer 1.0
".wav" -> sampleFromMemoryWav buffer 1.0
soundPlay sampleB 1 1 0 1 -- left volume, right volume, time difference between left and right, pitch factor for playback
waitPayback
finishAudio