예제 #1
0
AmbisonicsDecoder::AmbisonicsDecoder(long anOrder, long aNumberOfLoudspeakers, long aVectorSize) : Ambisonic(anOrder, aVectorSize)
{
    cicm_malloc_vec_f(m_vector_float_input, m_number_of_harmonics);
    cicm_malloc_vec_d(m_vector_double_input, m_number_of_harmonics);
    
    m_decoder_matrix_float  = NULL;
    m_decoder_matrix_double = NULL;
    m_vector_float_output   = NULL;
    m_vector_double_output  = NULL;
    m_number_of_loudspeakers = 0;
    setNumberOfLoudspeakers(aNumberOfLoudspeakers);
}
예제 #2
0
AmbisonicsMeter::AmbisonicsMeter(long aNumberOfChannels, long aVectorSize, double aSamplingRate) : Planewaves(aNumberOfChannels, aVectorSize, aSamplingRate)
{
    m_vectors = new AmbisonicVector(m_number_of_loudspeakers, aVectorSize);
    for(int i = 0; i < 4; i++)
        m_vector_coordinates_double[i] = m_vector_coordinates_float[i] = 0.;
    
    m_loudspeakers_amplitudes   = NULL;
    m_loudspeakers_peaks        = NULL;
    m_loudspeakers_energies     = NULL;    
    m_loudspeakers_angles_mapped    = NULL;
    m_loudspeakers_angles_width     = NULL;
	setNumberOfLoudspeakers(aNumberOfChannels);
	setVectorSize(aVectorSize);
    m_number_of_outputs		= 0;
}