/* Title: foaSphericalWindow Date: Mon May 12 11:32:01 2025
Authors: Joseph Anderson Affiliation: DXARTS, University of Washington (https://dxarts.washington.edu/) License: GPLv3 (https://www.gnu.org/licenses/gpl-3.0.en.html) */
/*
/* Title: foaSphericalWindow Date: Mon May 12 11:32:01 2025
Authors: Joseph Anderson Affiliation: DXARTS, University of Washington (https://dxarts.washington.edu/) License: GPLv3 (https://www.gnu.org/licenses/gpl-3.0.en.html) */
/*
/* functions to weight soundfield given beam weights
/ / for beam weights beyond \basic, \energy, \controlled, use in conjunction with Zotter_G_SC3_Code_examples.scd
https://gist.github.com/joslloand/23034b9dcf62d845b3ec739096444280
/* Ultraspherical/Gegenbauer polynomials to unify 2D/3D Ambisonic directivity designs Franz Zotter
https://arxiv.org/abs/2401.00813 */
/* sc3 (style) implementations of functions found in: Zotter_G_MATLAB_Code_examples.scd
/* | |
Ultraspherical/Gegenbauer polynomials to unify 2D/3D Ambisonic directivity designs | |
Franz Zotter | |
https://arxiv.org/abs/2401.00813 | |
*/ | |
// --------------------------------------------- | |
// SOURCES - p 46 |
/* TEST:
wavetable size / precision
CtkBuffer:*collection appears to drop the last item, as a result of setting numFrames to size - 1 rather than size
With the Ctk test below, the returned \b_setn message is:
[ 'b_setn', 0, 0, 15.0, -0.70710676908493, 0.70710676908493, 0.41421353816986, 0.29289323091507, 1.2928931713104, -0.29289323091507, 1.4142135381699, -0.70710676908493, 0.70710676908493, -0.70710676908493, -0.41421353816986, -0.29289323091507, -1.2928931713104, 0.29289323091507, -1.4142135381699, 0.70710676908493 ]
/* Phase Distortion and Phase Equalization in Audio Signal Processing-A Tutorial Review Author: Preis, Douglas Affiliation: Tuffs University, Department of Electrical Engineering, Medford, MA JAES Volume 30 Issue 11 pp. 774-794; November 1982 Publication Date: November 1, 1982 https://secure.aes.org/forum/pubs/journal/?elib=3810
Linear Distortion Author: Preis, Douglas
/* | |
custom five channel "line array" decoder | |
*/ | |
~pantoNumChannels = 8; | |
~pantoOrientation = \point; // need a center speaker | |
/* | |
for discussion on decoder k, see this: | |
https://depts.washington.edu/dxscdoc/Help/Classes/FoaDecoderMatrix.html#Decoder%20k | |
*/ |
// -------------------------------------- | |
/* | |
1) match energy across front stage ( 0 & pi/2) | |
custom five channel "line array" decoder | |
*/ | |
~pantoNumChannels = 8; | |
~pantoOrientation = \point; // need a center speaker | |
/* | |
for discussion on decoder k, see this: |
/* | |
example of weighting window across the sphere | |
*/ | |
/* | |
note: after truncation rV < 1 for HOA1 | |
*/ | |
// same order for decoding / re-encoding |
/* performance tests for SPARTA upmixers
http://research.spa.aalto.fi/projects/sparta_vsts/
Version 1.5.0, Released: 2021-04-22