Next  |  Prev  |  Up  |  Contents |  Top  |  JOS Index  |  JOS Pubs  |  JOS Home  |  Search

PBAP in FAUST, Integer Delays

Below is the initial interactive test program in the FAUST language for integer-delay PBAP on the eight-channel array described in §2.15 on page [*]. Integer delays are extremely efficient computationally, but assume fixed source positions. The lowpass filter is provided to facilitate experiments with the perception of spatial aliasing at various cutoffs.

N = 8;  // number of channels (speakers)
MAXDELAY = 1024; // maximum delay-line length for each channel
lpf = lowpass(3); // Butterworth lowpass filter to use (filter.lib)

declare name "Far Field Wave Field Synthesis (FFWFS) Simple Tests";
declare author "Julius O. Smith (jos at ccrma.stanford.edu)";

import("oscillator.lib"); // saw2, pink_noise
import("filter.lib"); // lowpass, smooth, ...

// GUI:
level = hslider("v:FFWFS/[0]Level (dB)", -10, -70, 10, 0.1);
del = hslider("v:FFWFS/[1]Interspeaker Delay (samples)",0,-misd,misd,1)
      with { misd = int(0.5*MAXDELAY/N);}; // max inter-speaker delay
freq = hslider("v:FFWFS/[2]Frequency (Hz)",440,20,10000,1);
cutoff = hslider("v:FFWFS/[3]Lowpass Cutoff (Hz)",1000,20,20000,1);
nsw = checkbox("v:FFWFS/[4]Sawtooth (instead of Pink Noise)");

// Signal Processing:
amp = level : db2linear : smooth(0.999);
signal = _ + select2(nsw,pink_noise,saw2(freq)) : lpf(cutoff);
ffwfs(i) = delay(MAXDELAY,int(MAXDELAY/2)-i*del);
process = signal * amp <: par(i,N,ffwfs(i));


Next  |  Prev  |  Up  |  Contents |  Top  |  JOS Index  |  JOS Pubs  |  JOS Home  |  Search

Download huygens.pdf
[Comment on this page via email]

``A Spatial Sampling Approach to Wave Field Synthesis: PBAP and Huygens Arrays'', by Julius O. Smith III, Published 2019-11-18: http://arxiv.org/abs/1911.07575.
Copyright © 2020-05-15 by Julius O. Smith III
Center for Computer Research in Music and Acoustics (CCRMA),   Stanford University
CCRMA