aboutsummaryrefslogtreecommitdiffhomepage
path: root/applause.c
AgeCommit message (Collapse)AuthorFilesLines
2015-11-03fixed semaphore for realtime<->lua thread synchronizationRobin Haberkorn1-8/+16
2015-11-03allow Stream:play() to be interrupted by CTRL+CRobin Haberkorn1-1/+35
* more precisely, Stream:play() will now throw an error whenever the process receices SIGINT. * this allows us to interrupt long playbacks
2015-11-03ring buffer size is configurable now via ./applause command-line parameter ↵Robin Haberkorn1-9/+32
in milliseconds * default buffer size: 100ms
2015-11-03synchronize buffer access via System V semaphoreRobin Haberkorn1-10/+74
* allows the Lua thread to block when the ringbuffer is full while keeping the realtime thread (jack_process()) realtime-safe. Hopefully :-) * since audio generation is usually faster than consumption (if you don't want to have buffer underruns), this fixes audio generation longer than BUFFER_SIZE (currently 1s)
2015-11-03report buffer underrunsRobin Haberkorn1-6/+23
2015-04-11stop garbage collector temporarily during play()Robin Haberkorn1-1/+16
This improves the real-time properties of sample generation since it avoids CPU spkikes. On the other hand, this may not be ideal as playing a long streams could have non-constant space requirements now. A proper solution would probably involve calling the garbage collector incrementally during the play() loop.
2015-04-11added custom interactive Lua interpreter for evaluating applause expressionsRobin Haberkorn1-0/+274
* implements Stream:play() using Jack as the audio backend