Skip to content

Buffer Management Module

Professional audio buffer management system for AudioLab.

📁 Structure

05_buffer_management/
├── 00_buffer_types/          # Core buffer types (audio, planar, interleaved)
├── 01_buffer_operations/     # Buffer operations (copy, fill, mix)
├── 02_buffer_pools/          # Memory management (pooling, RAII)
├── 03_specialized_buffers/   # Specialized buffers (delay, lookahead, crossfade)
├── examples/                 # Complete usage examples
│   ├── delay_effect.cpp      # Delay/echo effect
│   ├── lookahead_limiter.cpp # Lookahead limiter
│   └── wavetable_synth.cpp   # Wavetable synthesizer
└── tests/                    # Test suites

🚀 Quick Start

Build

mkdir build && cd build
cmake ..
cmake --build .

Run Examples

# Delay effect
./examples/delay_effect

# Lookahead limiter
./examples/lookahead_limiter

# Wavetable synth
./examples/wavetable_synth

Run Tests

ctest --output-on-failure

📚 Components

DelayBuffer

Circular delay buffer with fractional delay support:

#include "delay_buffer.hpp"

DelayBuffer delay(48000);  // 1 second max
delay.write(input);
float output = delay.readLinear(12345.67f);  // Fractional delay

LookaheadBuffer

Buffer for lookahead processing (limiters, compressors):

#include "lookahead_buffer.hpp"

LookaheadBuffer lookahead(240);  // 5ms at 48kHz
lookahead.write(input);
float peak = lookahead.getPeakLookahead();
float delayed = lookahead.readCurrent();

CrossfadeBuffer

Dual buffer for smooth crossfading:

#include "crossfade_buffer.hpp"

CrossfadeBuffer xfade(2048);
xfade.setBufferA(wavetable1, 2048);
xfade.setBufferB(wavetable2, 2048);
float sample = xfade.read(index, 0.5f);  // 50% crossfade

✅ Features

  • ✅ Zero-allocation in audio thread
  • ✅ SIMD-friendly data layout
  • ✅ Fractional delay with interpolation
  • ✅ Memory pooling for temporary buffers
  • ✅ RAII resource management
  • ✅ Comprehensive test coverage

📖 Documentation

See individual header files for detailed API documentation.

🔗 Dependencies

  • C++20 compiler
  • CMake 3.20+
  • Google Test (for tests, auto-downloaded)

📄 License

Part of AudioLab - Professional Audio Processing Framework