Skip to content

Latest commit

Β 

History

History
42 lines (33 loc) Β· 1.66 KB

File metadata and controls

42 lines (33 loc) Β· 1.66 KB

TODO: SharedRingBuffer Integration and TapOutUgen Merge

βœ… Merge shared-ringbuffer into TapOutUgen

  • Move shared buffer headers and source into TapOutUgen repo (or use as submodule)
  • Replace test audio buffers with SharedRingBufferReader in TapOutUGen.cpp
  • Ensure build system (CMake) includes the buffer code

πŸŒ€ Continuous Reading Mode

  • Convert circular_reader_test to support continuous streaming
  • Track last read index and support wraparound reads
  • Prevent duplicate or missed reads in continuous mode

πŸ§ͺ Data Fidelity Test

  • Write unit test that:
    • Writes a known sine wave to buffer
    • Reads from buffer
    • Verifies amplitude and frequency match original (within epsilon)

🧼 Shared Memory Cleanup

  • Improve cleanup tool (cleanup_shared_memory)
  • Add signal handler to writer to release segment on crash
  • Optional: watchdog tool to monitor stale shared segments

πŸ“¦ CMake Build Integration

  • Move ringbuffer logic to ringbuffer module/namespace
  • Add CMake options to include/exclude test apps
  • Link ringbuffer to TapOutUgen and unit test targets

πŸ“ˆ Performance Monitoring (Optional)

  • Add logging/timing for:
    • Time between writes
    • Buffer underruns or overruns
    • Missed reads or lag

πŸ”€ Thread-Safe TapOutUgen Integration

  • Ensure getLatestSamples avoids heap allocation inside audio callback
  • Avoid mutex locks in real-time audio path
  • Preallocate read buffer in TapOutUgen and reuse

This checklist helps finalize the integration of shared ring buffers into TapOutUgen and ensure robust, real-time performance with testability and maintainability.