Generates decoding kernels required by the Ambisonic Toolkit's first order decoder, FoaDecode.
Ambisonic UHJ stereo decoder.1
| kernelSize |
256, 512, 1024, 2048, 4096, 8192 |
| server |
Server on which to load kernel. |
For production work targeting stereo output, the authors advise using UHJ, as Ambisonic UHJ stereo is the native Ambisonic stereo format.
Synthetic spherical head model HRTF decoder.2
| subjectID |
0 to 9 |
| kernelSize |
256, 512, 1024, 2048, 4096, 8192 |
| server |
Server on which to load kernel. |
-newSpherical models a sphere only, and is equivalent to placing a pair of spaced, sphere baffled microphones in the soundfield. With no pinnae and no body, elevation cues are not present.
The subjectID argument varies to suit listener head width, with 0 the smallest and 9 the largest head. The user is advised to audition to find a suitable choice.
Measured HRTF decoder, with measurements from IRCAM's Listen HRTF database.3
| subjectID |
1002 to 1059 (51 in total) WARNING: subjectIDs are not entirely contiguous. |
| server |
Server on which to load kernel. |
The user is advised to audition subjectIDs to find a suitable choice. If an invalid subjectID is chosen, valid choices are returned.
// Boot desired server first... // ... choose an invalid subject ~encoder = FoaDecoderKernel.newListen(0) // make sure you scroll up to see the resulting valid subjects!
Measured HRTF decoder, with measurements from the University of California Davis' CIPIC HRTF database.4
| subjectID |
3 to 165 (45 in total) WARNING: subjectIDs are not entirely contiguous. |
| server |
Server on which to load kernel. |
The CIPIC HRTF database provides two KEMAR dummy measurements. subjectID = 21 is the large pinnae dummy and subjectID = 165 is the small pinnae dummy.
The user is advised to audition subjectIDs to find a suitable choice. If an invalid subjectID is chosen, valid choices are returned.
// Boot desired server first... // ... choose an invalid subject ~encoder = FoaDecoderKernel.newCIPIC(0) // make sure you scroll up to see the resulting valid subjects!
Answers the kind of decoder
// decoder - make sure you boot the server first!! ~decoder = FoaDecoderKernel.newUHJ // inspect ~decoder.kind // don't forget to free!! ~decoder.free
// decoder - make sure you boot the server first!! ~decoder = FoaDecoderKernel.newCIPIC // inspect ~decoder.kind // don't forget to free!! ~decoder.free
Answers the subjectID of the decoder
// decoder - make sure you boot the server first!! ~decoder = FoaDecoderKernel.newUHJ // inspect ~decoder.subjectID // don't forget to free!! ~decoder.free
// decoder - make sure you boot the server first!! ~decoder = FoaDecoderKernel.newCIPIC // inspect ~decoder.subjectID // don't forget to free!! ~decoder.free
Answers the number of decoder dimensions: 2D or 3D.
// decoder - make sure you boot the server first!! ~decoder = FoaDecoderKernel.newSpherical // inspect ~decoder.dim // don't forget to free!! ~decoder.free
// decoder - make sure you boot the server first!! ~decoder = FoaDecoderKernel.newCIPIC // inspect ~decoder.dim // don't forget to free!! ~decoder.free
Answers the number of loudspeaker (or headphone) feeds (output channels).
// decoder - make sure you boot the server first!! ~decoder = FoaDecoderKernel.newUHJ // inspect ~decoder.numChannels // don't forget to free!! ~decoder.free
Answers the direction of loudspeaker (or headphone) feeds, with angles in radians.
// decoder - make sure you boot the server first!! ~decoder = FoaDecoderKernel.newUHJ // inspect ~decoder.dirChannels * 180/pi // don't forget to free!! ~decoder.free
// decoder - make sure you boot the server first!! ~decoder = FoaDecoderKernel.newCIPIC // inspect ~decoder.dirChannels * 180/pi // don't forget to free!! ~decoder.free
Answers the decoder kernel.
// decoder - make sure you boot the server first!! ~decoder = FoaDecoderKernel.newUHJ // inspect ~decoder.kernel // don't forget to free!! ~decoder.free
// decoder - make sure you boot the server first!! ~decoder = FoaDecoderKernel.newCIPIC // inspect ~decoder.kernel // don't forget to free!! ~decoder.free
Answers the kernelSize.
// decoder - make sure you boot the server first!! ~decoder = FoaDecoderKernel.newUHJ // inspect ~decoder.kernelSize // don't forget to free!! ~decoder.free
// decoder - make sure you boot the server first!! ~decoder = FoaDecoderKernel.newCIPIC // inspect ~decoder.kernelSize // don't forget to free!! ~decoder.free
Free the kernel.
Release the kernel buffer's memory on the server and return the bufferID back to the server's buffer number allocator for future reuse.
A synonym for -numChannels
A synonym for -dirChannels
Answers the number of inputs for the decoder. 3 for 2D and 4 for 3D.
A convenience method providing polymorphism with FoaEncoderKernel: -dirInputs.
[ inf, inf, inf ] [ inf, inf, inf , inf ] Please see FoaDecode: Examples.