Skip to content

JuliaAudio/RingBuffers.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RingBuffers

Build Status Build status codecov.io

This package provides the RingBuffer type, which is a circular, fixed-size multi-channel buffer.

This package implements read, read!, and write methods on the RingBuffer type, and supports reading and writing NxM AbstractArray subtypes, where N is the channel count and M is the length in frames. It also supports reading and writing from AbstractVectors, in which case the memory is treated as a raw buffer with interleaved data.

Under the hood this package uses the pa_ringbuffer C implementation from PortAudio, which is a lock-free single-reader single-writer ringbuffer. The benefit of building on this is that you can write C modules for other libraries that can communicate with Julia over this lock-free ringbuffer using the portaudio.h header file. See the PortAudio library for an example of using this to pass data between Julia's main thread and an audio callback in a different thread.

About

A thread-safe non-allocating circular RingBuffer type

Resources

License

Stars

Watchers

Forks

Packages

No packages published