PaddleC
PaddleC is a Ruby C extension attempting to provide objects and methods to rapidly set up real-time signal processing test benches in Ruby (because Ruby is so cool).
The Ruby code would look like buffer administration,
leaving the heavy processing to C subroutines while keepking the user code concise and elegant,
without the need to recompile the whole thing each time the slightest change is made to the application.
FloatBuffer
and ComplexBuffer
wraps native arrays of single floats.
Computations are performed in C on single floats, and depending on the host architecture it may be accelerated with AVX, SSE, FMA or NEON SIMD instructions.
How to install
First, install dependencies:
sudo apt update
sudo apt install libpulse-dev
sudo apt install libfftw3-dev libfftw3-single3
Clone this repository, build the gem and install it:
git clone https://gitlab.com/theotime_bollengier/paddlec.git
cd paddlec
gem build paddlec.gemspec
gem install paddlec-XXX.gem
Generate the documentation:
gem install yard
./dodoc.sh
firefox doc/index.html
TODO
- select, reject
- FFTw, FFTscope, Oscilloscope
- libswresample
- boolean buffers and [] +=
- pulseaudio sink / source
- rtlsdr source
- oscillators, PLLs, costas loops...
- doc rdoc, yard groups
- ...