Skip to content

LydByDissing/camilladsp_cursor

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,411 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CamillaDSP

CamillaDSP is a flexible audio processing library and command line tool for Linux, macOS and Windows. It is intended to be used as a building block for audio applications, but can also be used standalone for simple tasks.

Features

  • Real-time audio processing
  • Cross-platform (Linux, macOS, Windows)
  • Multiple audio backends (ALSA, PulseAudio, CoreAudio, WASAPI, JACK, file)
  • Flexible filter pipeline
  • Volume control and mixing
  • Resampling
  • Multichannel support
  • WebSocket control interface
  • ARMv6 SIMD Optimizations - Enhanced performance for ARMv6 devices (Raspberry Pi Zero W)

ARMv6 SIMD Optimizations

This version includes significant optimizations for ARMv6 devices, particularly the Raspberry Pi Zero W:

Key Features

  • Fixed-point arithmetic (Q16.16): Replaces floating-point operations for better performance on ARMv6 without FPU
  • ARMv6 SIMD instructions: Optimized biquad filter processing using ARMv6-specific instructions
  • Soft float compatibility: Properly configured for ARMv6 devices without hardware FPU
  • Performance monitoring: Built-in statistics tracking for processing performance
  • Conditional compilation: ARMv6 optimizations are automatically enabled for compatible targets

Performance Improvements

  • Biquad filters: Optimized using ARMv6 SIMD instructions
  • Volume control: Fixed-point arithmetic for volume processing
  • Memory access: Optimized memory patterns for ARMv6 architecture
  • Compiler optimizations: Target-specific optimizations for ARM1176JZF-S

Supported Targets

  • ARMv6: Raspberry Pi Zero W (soft float)
  • ARMv7: Raspberry Pi 3 (hard float)
  • ARMv8: Raspberry Pi 4 (hard float)

Installation

Prerequisites

  • Rust (1.70 or later)
  • Cargo
  • Platform-specific audio libraries

Building

# Clone the repository
git clone https://github.com/HEnquist/camilladsp.git
cd camilladsp

# Build for your platform
cargo build --release

# For ARMv6 (Raspberry Pi Zero W)
cargo build --target arm-unknown-linux-gnueabi --release

# For ARMv7 (Raspberry Pi 3)
cargo build --target armv7-unknown-linux-gnueabihf --release

# For ARMv8 (Raspberry Pi 4)
cargo build --target aarch64-unknown-linux-gnu --release

Cross-compilation

For ARM targets, use the provided build scripts:

# Build all ARM binaries
./scripts/build_arm_binaries.sh

# Create test package
./scripts/create_test_package.sh

Usage

Basic Usage

# Process audio file
camilladsp config.yml

# With ARMv6 optimizations (automatic on ARMv6 targets)
camilladsp config.yml

Configuration

CamillaDSP uses YAML configuration files. See the example configurations in exampleconfigs/ for details.

ARMv6 Specific Configuration

The ARMv6 optimizations are automatically enabled when building for ARMv6 targets. No special configuration is required.

Testing

Hardware Testing

For testing on ARM hardware:

# Transfer and test on Raspberry Pi
./transfer_and_test.sh

# Manual testing
./scripts/test_hardware.sh

Performance Testing

Compare performance with the latest release:

# Run performance comparison
./scripts/performance_comparison.sh

Documentation

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE.txt file for details.

Acknowledgments

  • Original CamillaDSP by HEnquist
  • ARMv6 SIMD optimizations for enhanced performance on low-power ARM devices

About

A flexible cross-platform IIR and FIR engine for crossovers, room correction etc.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Rust 89.9%
  • Shell 8.0%
  • Python 1.5%
  • HTML 0.6%