1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
/*############################################################################*/
/*# #*/
/*# Ambisonic C++ Library #*/
/*# CAmbisonicEncoder - Ambisonic Encoder #*/
/*# Copyright © 2007 Aristotel Digenis #*/
/*# #*/
/*# Filename: AmbisonicEncoder.cpp #*/
/*# Version: 0.1 #*/
/*# Date: 19/05/2007 #*/
/*# Author(s): Aristotel Digenis #*/
/*# Licence: MIT #*/
/*# #*/
/*############################################################################*/
#include "AmbisonicEncoder.h"
CAmbisonicEncoder::CAmbisonicEncoder()
{ }
CAmbisonicEncoder::~CAmbisonicEncoder()
{ }
bool CAmbisonicEncoder::Configure(unsigned nOrder, bool b3D, unsigned nMisc)
{
bool success = CAmbisonicSource::Configure(nOrder, b3D, nMisc);
if(!success)
return false;
//SetOrderWeight(0, 1.f / sqrtf(2.f)); // Removed as seems to break SN3D normalisation
return true;
}
void CAmbisonicEncoder::Refresh()
{
CAmbisonicSource::Refresh();
}
void CAmbisonicEncoder::Process(float* pfSrc, unsigned nSamples, CBFormat* pfDst)
{
unsigned niChannel = 0;
unsigned niSample = 0;
for(niChannel = 0; niChannel < m_nChannelCount; niChannel++)
{
for(niSample = 0; niSample < nSamples; niSample++)
{
pfDst->m_ppfChannels[niChannel][niSample] = pfSrc[niSample] * m_pfCoeff[niChannel];
}
}
}
|