AmbisonicEncode::AmbisonicEncode(int anOrder, std::string aMode, int aVectorSize) { m_order = anOrder; m_number_of_harmonics = m_order * 2 + 1; m_mode = aMode; m_number_of_outputs = m_number_of_harmonics; m_ambiCoeffs = new double[m_number_of_harmonics]; if(aMode == "split") m_number_of_inputs = m_order + 2; else m_number_of_inputs = 2; computeIndex(); m_cosLookUp = new double[NUMBEROFCIRCLEPOINTS]; m_sinLookUp = new double[NUMBEROFCIRCLEPOINTS]; for (int i = 0; i < NUMBEROFCIRCLEPOINTS; i++) { m_cosLookUp[i] = cos((double)i * M_2PI / (double)NUMBEROFCIRCLEPOINTS); m_sinLookUp[i] = sin((double)i * M_2PI / (double)NUMBEROFCIRCLEPOINTS); } computeCoefs(0.); setVectorSize(aVectorSize); }
AmbisonicLine::AmbisonicLine(long aVectorSize) { m_value_old = 0.; m_value_new = 0.; m_value_step = 0.; m_counter = 0; setVectorSize(aVectorSize); }
void Line::init(const long vector_size, const long sampling_rate) { m_value_old = 0.; m_value_new = 0.; m_value_step = 0.; m_counter = 0; setVectorSize(vector_size); setSamplingRate(sampling_rate); }
AmbisonicsMeter::AmbisonicsMeter(long aVectorSize, double aSamplingRate, long aNumberofChannels) : Planewaves(<#args#>) { m_number_of_inputs = Tools::clip_min(aNumberofChannels, (long)1); m_number_of_outputs = 0; setVectorSize(aVectorSize); setSamplingRate(aSamplingRate); } void AmbisonicsMeter::setNumberOfChannels(long aNumberofChannels) { m_number_of_inputs = Tools::clip_min(aNumberofChannels, (long)1); }
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; }
AmbisonicEase::AmbisonicEase(long anOrder, long aVectorSize) { m_order = Tools::clip_min(anOrder, (long)0); m_number_of_harmonics = m_order * 2 + 1; m_number_of_inputs = 1; m_number_of_outputs = m_number_of_harmonics; m_lineAbscissa = new AmbisonicLine(aVectorSize); m_lineOrdinate = new AmbisonicLine(aVectorSize); computeVectors(); setPolarCoordinates(1., 0.); setVectorSize(aVectorSize); m_lineAbscissa->setCoefficientDirect(0.); m_lineOrdinate->setCoefficientDirect(1.); }
AmbisonicSpace::AmbisonicSpace(long aNumberOfMicrophones, long aVectorSize) { m_number_of_microphones = Tools::clip_min(aNumberOfMicrophones, (long)3); m_number_of_inputs = m_number_of_microphones; m_number_of_outputs = m_number_of_microphones; m_microphones_coefficients_old = new double[m_number_of_microphones]; m_microphones_coefficients_new = new double[m_number_of_microphones]; m_microphones_coefficients_step = new double[m_number_of_microphones]; for(int i = 0; i < m_number_of_microphones; i++) { m_microphones_coefficients_old[i] = 1.; m_microphones_coefficients_new[i] = 1.; m_microphones_coefficients_step[i] = 0.; } m_counter = 0; setVectorSize(aVectorSize); }
AmbisonicRotate::AmbisonicRotate(long anOrder, long aVectorSize) { m_order = Tools::clip_min(anOrder, (long)1); m_number_of_harmonics = 2 * m_order + 1; m_number_of_inputs = m_number_of_harmonics + 1; m_number_of_outputs = m_number_of_harmonics; m_harmonicCos = new double[m_order]; m_harmonicSin = new double[m_order]; computeIndex(); m_cosLookUp = new double[NUMBEROFCIRCLEPOINTS]; m_sinLookUp = new double[NUMBEROFCIRCLEPOINTS]; for (int i = 0; i < NUMBEROFCIRCLEPOINTS; i++) { m_cosLookUp[i] = cos((double)i * CICM_2PI / (double)NUMBEROFCIRCLEPOINTS); m_sinLookUp[i] = sin((double)i * CICM_2PI / (double)NUMBEROFCIRCLEPOINTS); } setAzimuth(0.); setVectorSize(aVectorSize); }
AmbisonicOnePole::AmbisonicOnePole(double aSamplingRate, long aVectorSize) { setSamplingRate(aSamplingRate); setVectorSize(aVectorSize); }