vbap

Crates.iovbap
lib.rsvbap
version0.1.0
created_at2026-01-02 21:11:43.468268+00
updated_at2026-01-02 21:11:43.468268+00
descriptionVector Base Amplitude Panning for spatial audio
homepage
repositoryhttps://github.com/PoHsuanLai/vbap
max_upload_size
id2019205
size47,648
Po-Hsuan Lai (PoHsuanLai)

documentation

README

vbap

CI Crates.io docs.rs License: MIT

Vector Base Amplitude Panning (VBAP) positions virtual sound sources in a speaker array by computing gain coefficients for the 2-3 speakers nearest to the source direction. Originally described by Ville Pulkki in 1997.

Inspired by Ardour's implementation.

Usage

use vbap::VBAPanner;

let panner = VBAPanner::builder()
    .stereo()
    .build()
    .unwrap();

let gains = panner.compute_gains(15.0, 0.0); // 15° left

Presets

  • stereo() - L/R at ±30°
  • surround_5_1() - standard 5.1
  • surround_7_1() - standard 7.1
  • atmos_7_1_4() - 7.1.4 with height speakers

Custom layouts

let panner = VBAPanner::builder()
    .add_speaker(30.0, 0.0)   // azimuth, elevation
    .add_speaker(-30.0, 0.0)
    .add_speaker(110.0, 0.0)
    .add_speaker(-110.0, 0.0)
    .build()
    .unwrap();

Angles

  • Azimuth: 0° front, 90° left, -90° right, 180° rear
  • Elevation: 0° horizontal, 90° above

License

MIT

Commit count: 0

cargo fmt