FoaAnalyze: table of contents
Filter:
Classes (extension) | Libraries > Ambisonic Toolkit > FOA > Analyzing | UGens > Multichannel > Ambisonics | UGens > Analysis > Ambisonics

FoaAnalyze : FoaEval : FoaUGen : Object
ExtensionExtension

First Order Ambisonic (FOA) analyzer

Description

Analyzes a first order ambisonic signal (B-format).

NOTE: FoaAnalyze is a convenience wrapper around the various analyzer UGens.

Class Methods

FoaAnalyze.ar(in, kind ... args)

Arguments:

in

The input signal, an array: [in0, in1, ... inN]

kind

The kind of analysis to apply.  

NOTE: All analyzers take args of size = 2048, method = 'instant' as defaults.
Soundfield Levels
'SFPL'
FoaSFPL
'SFVL'
FoaSFVL
'SFWL'
FoaSFWL
'SFWhL'
FoaSFWhL
'SFIL'
FoaSFIL
Soundfield Indicators
'alpha'
FoaAlpha
'beta'
FoaBeta
'gamma'
FoaGamma
Soundfield Energies
'Wp'
FoaWp
'Wu'
FoaWu
'Ws'
FoaWs
'Wd'
FoaWd
'Wh'
FoaWh
Soundfield Intensities - magnitudes
'||I||'
FoaMagI
'||Ia||'
FoaMagIa
'||Ir||'
FoaMagIr
'||A||'
FoaMagA
'||Aa||'
FoaMagAa
'||Ar||'
FoaMagAr
'||W||'
FoaMagW
'||Wa||'
FoaMagWa
'||Wr||'
FoaMagWr
'||Na||'
FoaMagNa
'||Nr||'
FoaMagNr
Soundfield Incidences - vectors
'thetaPhiA'
FoaThetaPhiA
'thetaPhiR'
FoaThetaPhiR
Soundfield Intensities - vectors
'Ia'
FoaIa
'Ir'
FoaIr
'Aa'
FoaAa
'Ar'
FoaAr
'Wa'
FoaWa
'Wr'
FoaWr
'Na'
FoaNa
'Nr'
FoaNr
... args

Arguments (listed above with each 'kind') for the wrapped transformer UGens. Arguments can NOT be passed in through keyword through the FoaAnalyze wrapper. You can pass values in by keyword if you use the transform UGens directly.

Analysis method

Analyzers offer two methods of analysis:

These keywords describe the form of the underlying filter method employed to return the various analyses. Instantaneous time domain soundfield analysis is offered by 'instant' where time averaged time domain analysis is returned by 'average'.

The instantaneous analysis method uses Hilbert Transform Filters to generate an Analytic Signal from which the resulting time domain analysis is derived. As a result, the 'instant' analysis method is able to return a detailed view of both the active and reactive soundfield components.1 Additionally, as implied by the name, 'instant' returns the instantaneous sample-by-sample analysis of soundfield features. As you would expect, the resolution of the analysis is determined by the resolution of the underlying Hilbert Transform Filters. Increasing the size argument to larger values increases the frequency domain bandwidth of the analysis. The Hilbert Transform Filters employed are linear phase for the Real response, and therefore introduce a delay. Since the Fast Fourier Transform is used to realize the Hilbert Transform Filters, size is constrained to a power of 2.

The time averaged analysis method, 'average', is implemented through the use of an un-weighted Moving Average Filter. This filter also has a linear phase response, and therefore the time averaged method also introduces a delay. Rather than a sample-by-sample view, this analysis offers an efficient time averaged reading of the soundfield. While detailed inspection of the active features of the soundfield is available, some aspects of the reactive soundfield are invisible to the time average method.2 As with 'instant', increasing the size argument to larger values increases the bandwidth of the analysis. The size of the Moving Average Filter is not constrained to a power of 2.

These features are summarized:

keywordmethodanalysisfilterdelay (samples)cost
'instant'instantaneous timeActive & Reactive VectorsHilbert Transformsize - blockSize3 higher
'average'averaged timeActive Vectors, Reactive MagnitudesMoving Averagesize/2lower
WARNING: The following UGens require the reactive intensity vector, so will throw an error if called with the 'average' keyword:

Inherited class methods

Instance Methods

Inherited instance methods

Examples

TBD

[1] - F. Jacobsen, A note on instantaneous and time-averaged active and reactive sound intensity, Journal of Sound and Vibration, Volume 147, Issue 3, 1991, Pages 489-496, ISSN 0022-460X, http://dx.doi.org/10.1016/0022-460X(91)90496-7.(http://www.sciencedirect.com/science/article/pii/0022460X91904967)
[2] - Only the magnitude of the reactive intensity is available.
[3] - Where blockSize is the number of samples in one control period of the Server in use.