Commit fddb6aed authored by Pascal Palenda's avatar Pascal Palenda
Browse files

Remove broken tests

parent 197168fd
......@@ -163,10 +163,8 @@ if( ITA_SIMULATION_SCHEDULER_TESTS )
add_subdirectory( "tests/raven/RavenNetTestServer" )
add_subdirectory( "tests/raven/RavenSimulationServerTest" )
add_subdirectory( "tests/raven/RavenTest" )
add_subdirectory( "tests/raven/CSimulator_Test" )
add_subdirectory( "tests/raven/Tiny" )
add_subdirectory( "tests/raven/VistaNetTest" )
add_subdirectory( "tests/raven/raven_multi_instance_test" )
if( VMPI_FOUND )
add_subdirectory( "tests/raven/LinuxRavenClusterNodeTest" )
add_subdirectory( "tests/raven/RavenMPICluster" )
......
cmake_minimum_required( VERSION 2.8 )
project( CSimulator_Test )
list( APPEND CMAKE_MODULE_PATH "$ENV{VISTA_CMAKE_COMMON}" )
include( VistaCommon )
vista_use_package( ITASimulationScheduler REQUIRED FIND_DEPENDENCIES )
vista_use_package( RavenGeo REQUIRED FIND_DEPENDENCIES )
vista_use_package( ITABase REQUIRED FIND_DEPENDENCIES )
add_executable( CSimulator_Test "CSimulator_Test.cpp" )
target_link_libraries( CSimulator_Test ${VISTA_USE_PACKAGE_LIBRARIES} )
vista_configure_app( CSimulator_Test )
vista_create_default_info_file( CSimulator_Test )
set_property( TARGET CSimulator_Test PROPERTY FOLDER "ITASimulationScheduler/Tests/Raven" )
#include <iostream>
#include <string>
#include <memory>
#include <ITAAudiofileWriter.h>
#include <ITAException.h>
#include <ITASampleFrame.h>
#include <ITAStopWatch.h>
#include <ITAStringUtils.h>
#include <ITAFileSystemUtils.h>
#include <ITA/simulation_scheduler/room_acoustics/raven/simulator.h>
#include <ITASimulationScheduler/Raven/Simulator.h>
#include <ITASimulationScheduler/Utils.h>
#include <RG_Vector.h>
using namespace std;
using namespace ITA::simulation_scheduler::room_acoustics::raven;
const double dSampleRate = 44.1e3;
const double dFilterLength = 0.5; // 1 Sekunde
static const string sRavenDataBasePath = "D:/ScieBo/MasterThesis/RavenDataBase";
//static string sRavenGeometryFilePath = "$(RavenDataBasePath)/Models/Cube/model.ac";
static string sRavenGeometryFilePath = "$(RavenDataBasePath)/Models/ReverberationChamber/reverbChamber_empty.ac";
void normalize_0dB ( ITASampleFrame* );
void newTest ( );
void oldTest ( );
void dsTest ( );
int main ( int argc, char** argv )
{
if ( !doesDirectoryExist ( "results" ) )
makeDirectory ( "results" );
//newTest ( );
//oldTest ( );
dsTest ( );
return 0;
}
void normalize_0dB ( ITASampleFrame* p )
{
float fGlobalPeak = 0.0f;
for ( int i = 0; i < p->length ( ); i++ )
{
ITASampleBuffer& p1 = ( *p ) [0];
ITASampleBuffer& p2 = ( *p ) [1];
float fSample1 = p1 [i];
float fSample2 = p2 [i];
fGlobalPeak = std::max ( fGlobalPeak, fSample1 );
fGlobalPeak = std::max ( fGlobalPeak, fSample2 );
}
if ( fGlobalPeak != 0.0f )
p->mul_scalar ( 1 / fGlobalPeak );
}
void dsTest( )
{
if ( !doesDirectoryExist ( "results/DS" ) )
makeDirectory ( "results/DS" );
auto pRavenSimulator = std::make_unique<CSimulator> ( sRavenDataBasePath,
"$(RavenDataBasePath)/HRIR/ITA_Artificial_Head_5x5_44kHz_128.v17.ir.daff" );
ITAStopWatch sw;
try
{
cout << "\tLoading scene geometry ...\n";
pRavenSimulator->loadScene ( sRavenGeometryFilePath );
cout << "\tSetting up scene, config, tasks and result ...\n";
CRavenScene::CReceiverState oReceiverState;
oReceiverState.vPos.init ( -1.000, 1.500, -3.000 );
oReceiverState.vView.init ( 0, 0, -1 );
oReceiverState.vUp.init ( 0, 1, 0 );
CRavenScene::CSourceState oSourceState;
oSourceState.vPos.init ( -5.000, 1.500, -2.000 );
oSourceState.vView.init ( 0, 0, -1 );
oSourceState.vUp.init ( 0, 1, 0 );
CSimulationTask oTask1;
oTask1.oScene.addReceiver ( 0 );
oTask1.oScene.setReceiverState ( 0, oReceiverState );
oTask1.oScene.addSource ( 0 );
oTask1.oScene.setSourceState ( 0, oSourceState );
oTask1.eSimulationType = ITA::simulation_scheduler::room_acoustics::FieldOfDuty::earlyReflections;
oTask1.uiID = 0;
oTask1.oConfig.setDefaults ( );
oTask1.oConfig.oGeometry.sSceneFileName = sRavenGeometryFilePath;
oTask1.oConfig.oRoom.fReverberationTime = dFilterLength;
CRavenSimulationResult oResult;
sw.start ( );
cout << "\tCalculating task2 (IS) ...\n";
pRavenSimulator->compute ( &oTask1, &oResult );
cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "]" << endl;
writeAudiofile ( "results/DS/test.wav", oResult.vcspResult [0]->psfResult.get ( ), dSampleRate );
oResult.vcspResult.clear ( );
pRavenSimulator->writeToRPF ( "results/DS/test.rpf" );
}
catch ( ITAException& err )
{
cout << "\t[E]: " << err << endl;
}
}
void oldTest ( )
{
if ( !doesDirectoryExist ( "results/old" ) )
makeDirectory ( "results/old" );
ITASimulationScheduler::ISimulationInterface* pRavenSimulator;
pRavenSimulator = ( ITASimulationScheduler::ISimulationInterface* )
new ITASimulationScheduler::RAVEN::CRavenSimulator ( sRavenDataBasePath,
"$(RavenDataBasePath)/HRIR/ITA_Artificial_Head_5x5_44kHz_128.v17.ir.daff" );
ITAStopWatch sw;
try
{
sw.start ( );
cout << "\tLoading scene geometry ...\n";
pRavenSimulator->LoadScene ( sRavenGeometryFilePath );
cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "]" << endl;
sw.start ( );
cout << "\tSetting up scene, config, tasks and result ...\n";
ITASimulationScheduler::RAVEN::CReceiverState oReceiverState;
oReceiverState.vPos.init ( -0.5, 1.5, -0.5 );
oReceiverState.vView.init ( 0, 0, -1 );
oReceiverState.vUp.init ( 0, 1, 0 );
oReceiverState.sHRIRFilename = "$(RavenDataBasePath)/HRIR/ITA_Artificial_Head_5x5_44kHz_128.v17.ir.daff";
ITASimulationScheduler::RAVEN::CSourceState oSourceState;
oSourceState.vPos.init ( -2, 1.5, -1 );
oSourceState.vView.init ( 0, 0, -1 );
oSourceState.vUp.init ( 0, 1, 0 );
oSourceState.sDirectivityFilename = "$(RavenDataBasePath)/Directivity/ExampleUnityOmni.ms.daff";
ITASimulationScheduler::CSimulationTask oTask1;
oTask1.oScene.AddReceiver ( 0 );
oTask1.oScene.SetReceiverState ( 0, oReceiverState );
oTask1.oScene.AddSource ( 0 );
oTask1.oScene.SetSourceState ( 0, oSourceState );
oTask1.iSimulationType = ITASimulationScheduler::CSimulationTask::SIM_DS;
oTask1.uiID = 0;
oTask1.oConfig.SetDefaults ( );
oTask1.oConfig.oGeometry.sSceneFileName = sRavenGeometryFilePath;
oTask1.oConfig.oRoom.fReverberationTime = dFilterLength;
ITASimulationScheduler::CSimulationTask oTask2 ( oTask1 );
oTask2.uiID++;
oTask2.iSimulationType = ITASimulationScheduler::CSimulationTask::SIM_ER_IS;
ITASimulationScheduler::CSimulationTask oTask3 ( oTask2 );
oTask3.uiID++;
oTask3.iSimulationType = ITASimulationScheduler::CSimulationTask::SIM_DD_RT;
ITASimulationScheduler::CSimulationTask oTask4 ( oTask3 );
oTask4.uiID++;
oTask4.iSimulationType = ITASimulationScheduler::CSimulationTask::SIM_DS | ITASimulationScheduler::CSimulationTask::SIM_ER_IS;
cout << oTask1.oConfig.ToString ( ) << endl;
ITASimulationScheduler::StoreTask ( &oTask1, "task.rtask" );
ITASimulationScheduler::CSimulationResult oResult;
cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "]" << endl;
// Direct Sound 1. mal
sw.start ( );
cout << "\tCalculating task1 (DS) ...\n";
pRavenSimulator->Compute ( &oTask1, &oResult );
cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "] (" << ( oResult.vcspResult [0]->bDirectSoundAudible ? "audible" : "not audible" ) << ")" << endl;
oResult.Clear ( );
// Direct Sound 2. mal
sw.start ( );
cout << "\tCalculating task1 (DS) ...\n";
pRavenSimulator->Compute ( &oTask1, &oResult );
cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "] (" << ( oResult.vcspResult [0]->bDirectSoundAudible ? "audible" : "not audible" ) << ")" << endl;
oResult.Clear ( );
// Image Sources 1. mal
sw.start ( );
cout << "\tCalculating task2 (IS) ...\n";
pRavenSimulator->Compute ( &oTask2, &oResult );
cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "]" << endl;
if ( oResult.vcspResult [0]->bEmpty )
{
cout << "\tWarning, IS-Result-Filter is empty!\n";
static_cast< ITASimulationScheduler::RAVEN::CRavenSimulator* >( pRavenSimulator )->WriteToRPF ( "Problembaer.rpf" );
}
normalize_0dB ( oResult.vcspResult [0]->psfResult );
writeAudiofile ( "results/old/RavenTest_Task_IS_v1.wav", oResult.vcspResult [0]->psfResult, dSampleRate );
oResult.Clear ( );
// Image Sources 2. mal
sw.start ( );
cout << "\tCalculating task2 (IS) ...\n";
pRavenSimulator->Compute ( &oTask2, &oResult );
cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "]" << endl;
if ( oResult.vcspResult [0]->bEmpty )
{
cout << "\tWarning, IS-Result-Filter is empty!\n";
static_cast< ITASimulationScheduler::RAVEN::CRavenSimulator* >( pRavenSimulator )->WriteToRPF ( "Problembaer.rpf" );
}
normalize_0dB ( oResult.vcspResult [0]->psfResult );
writeAudiofile ( "results/old/RavenTest_Task_IS_v2.wav", oResult.vcspResult [0]->psfResult, dSampleRate );
oResult.Clear ( );
//// Direktschall und Image Sources 1. mal
//sw.start ( );
//cout << "\tCalculating task4 (DSIS) ...\n";
//pRavenSimulator->Compute ( &oTask4, &oResult );
//cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "]" << endl;
//if ( oResult.vcspResult [0]->bEmpty )
//{
// cout << "\tWarning, DSIS-Result-Filter is empty!\n";
// static_cast< ITASimulationScheduler::RAVEN::CRavenSimulator* >( pRavenSimulator )->WriteToRPF ( "Problembaer.rpf" );
//}
//normalize_0dB ( oResult.vcspResult [0]->psfResult );
//writeAudiofile ( "results/old/RavenTest_Task_DSIS_v1 .wav", oResult.vcspResult [0]->psfResult, dSampleRate );
//oResult.Clear ( );
////static_cast< CRavenSimulator* >( pRavenSimulator )->SetStoreResultConfig(CSimulationTask::SIM_RT);
//// Ray Tracing 1. mal
//sw.start ( );
//cout << "\tCalculating task3 (RT) ...\n";
//pRavenSimulator->Compute ( &oTask3, &oResult );
//cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "]" << endl;
//if ( oResult.vcspResult [0]->bEmpty )
//{
// cout << "\tWarning, RT-Result-Filter is empty!\n";
// static_cast< ITASimulationScheduler::RAVEN::CRavenSimulator* >( pRavenSimulator )->WriteToRPF ( "Problembaer.rpf" );
//}
//normalize_0dB ( oResult.vcspResult [0]->psfResult );
//writeAudiofile ( "results/old/RavenTest_Task_RT_v1.wav", oResult.vcspResult [0]->psfResult, dSampleRate );
//oResult.Clear ( );
//// Ray Tracing 2. mal
//sw.start ( );
//cout << "\tCalculating task3 (RT) ...\n";
//pRavenSimulator->Compute ( &oTask3, &oResult );
//cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "]" << endl;
//if ( oResult.vcspResult [0]->bEmpty )
//{
// cout << "\tWarning, RT-Result-Filter is empty!\n";
// static_cast< ITASimulationScheduler::RAVEN::CRavenSimulator* >( pRavenSimulator )->WriteToRPF ( "Problembaer.rpf" );
//}
//normalize_0dB ( oResult.vcspResult [0]->psfResult );
//writeAudiofile ( "results/old/RavenTest_Task_RT_v2.wav", oResult.vcspResult [0]->psfResult, dSampleRate );
//oResult.Clear ( );
//int n = -1;
//while ( n++ < 10 )
//{
// oTask3.uiID++;
// cout << "\tCalculating task3 (RT) with ID " << oTask3.uiID << " ...\n";
// sw.start ( );
// pRavenSimulator->Compute ( &oTask3, &oResult );
// cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "]" << endl;
// //normalize_0dB(oResult.vcspResult[0]->psfResult);
// writeAudiofile ( "results/old/RavenTest_Task_RT_" + IntToString ( n ) + ".wav", oResult.vcspResult [0]->psfResult, dSampleRate );
// oResult.Clear ( );
//}
}
catch ( ITAException& err )
{
cout << "\t[E]: " << err << endl;
}
delete pRavenSimulator;
}
void newTest ( )
{
if ( !doesDirectoryExist ( "results/new" ) )
makeDirectory ( "results/new" );
auto pRavenSimulator = std::make_unique<CSimulator> ( sRavenDataBasePath,
"$(RavenDataBasePath)/HRIR/ITA_Artificial_Head_5x5_44kHz_128.v17.ir.daff" );
ITAStopWatch sw;
try
{
sw.start ( );
cout << "\tLoading scene geometry ...\n";
pRavenSimulator->loadScene ( sRavenGeometryFilePath );
cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "]" << endl;
sw.start ( );
cout << "\tSetting up scene, config, tasks and result ...\n";
CRavenScene::CReceiverState oReceiverState;
oReceiverState.vPos.init ( 0, 1.6f, 0 );
oReceiverState.vView.init ( 0, 0, -1 );
oReceiverState.vUp.init ( 0, 1, 0 );
CRavenScene::CSourceState oSourceState;
oSourceState.vPos.init ( 0, 1.5f, 0 );
oSourceState.vView.init ( 0, 0, -1 );
oSourceState.vUp.init ( 0, 1, 0 );
CSimulationTask oTask1;
oTask1.oScene.addReceiver ( 0 );
oTask1.oScene.setReceiverState ( 0, oReceiverState );
oTask1.oScene.addSource ( 0 );
oTask1.oScene.setSourceState ( 0, oSourceState );
oTask1.eSimulationType = ITA::simulation_scheduler::room_acoustics::FieldOfDuty::directSound;
oTask1.uiID = 0;
oTask1.oConfig.setDefaults ( );
oTask1.oConfig.oGeometry.sSceneFileName = sRavenGeometryFilePath;
oTask1.oConfig.oRoom.fReverberationTime = dFilterLength;
auto oTask2 = oTask1;
oTask2.uiID++;
oTask2.eSimulationType = ITA::simulation_scheduler::room_acoustics::FieldOfDuty::earlyReflections;
auto oTask3 = oTask2;
oTask3.uiID++;
oTask3.eSimulationType = ITA::simulation_scheduler::room_acoustics::FieldOfDuty::diffuseDecay;
cout << oTask1.oConfig.toString ( ) << endl;
CRavenSimulationResult oResult;
cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "]" << endl;
// Direct Sound 1. mal
sw.start ( );
cout << "\tCalculating task1 (DS) ...\n";
pRavenSimulator->compute ( &oTask1, &oResult );
cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "] (" << ( oResult.vcspResult [0]->bDirectSoundAudible ? "audible" : "not audible" ) << ")" << endl;
oResult.vcspResult.clear ( );
// Direct Sound 2. mal
sw.start ( );
cout << "\tCalculating task1 (DS) ...\n";
pRavenSimulator->compute ( &oTask1, &oResult );
cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "] (" << ( oResult.vcspResult [0]->bDirectSoundAudible ? "audible" : "not audible" ) << ")" << endl;
oResult.vcspResult.clear ( );
// Image Sources 1. mal
sw.start ( );
cout << "\tCalculating task2 (IS) ...\n";
pRavenSimulator->compute ( &oTask2, &oResult );
cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "]" << endl;
if ( oResult.vcspResult [0]->bEmpty )
{
cout << "\tWarning, IS-Result-Filter is empty!\n";
pRavenSimulator->writeToRPF ( "Problembaer.rpf" );
}
normalize_0dB ( oResult.vcspResult [0]->psfResult.get ( ) );
writeAudiofile ( "results/new/RavenTest_Task_IS_v1.wav", oResult.vcspResult [0]->psfResult.get ( ), dSampleRate );
oResult.vcspResult.clear ( );
// Image Sources 2. mal
sw.start ( );
cout << "\tCalculating task2 (IS) ...\n";
pRavenSimulator->compute ( &oTask2, &oResult );
cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "]" << endl;
if ( oResult.vcspResult [0]->bEmpty )
{
cout << "\tWarning, IS-Result-Filter is empty!\n";
pRavenSimulator->writeToRPF ( "Problembaer.rpf" );
}
normalize_0dB ( oResult.vcspResult [0]->psfResult.get ( ) );
writeAudiofile ( "results/new/RavenTest_Task_IS_v2.wav", oResult.vcspResult [0]->psfResult.get ( ), dSampleRate );
oResult.vcspResult.clear ( );
// Ray Tracing 1. mal
sw.start ( );
cout << "\tCalculating task3 (RT) ...\n";
pRavenSimulator->compute ( &oTask3, &oResult );
cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "]" << endl;
if ( oResult.vcspResult [0]->bEmpty )
{
cout << "\tWarning, RT-Result-Filter is empty!\n";
pRavenSimulator->writeToRPF ( "Problembaer.rpf" );
}
normalize_0dB ( oResult.vcspResult [0]->psfResult.get ( ) );
writeAudiofile ( "results/new/RavenTest_Task_RT_v1.wav", oResult.vcspResult [0]->psfResult.get ( ), dSampleRate );
oResult.vcspResult.clear ( );
// Ray Tracing 2. mal
sw.start ( );
cout << "\tCalculating task3 (RT) ...\n";
pRavenSimulator->compute ( &oTask3, &oResult );
cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "]" << endl;
if ( oResult.vcspResult [0]->bEmpty )
{
cout << "\tWarning, RT-Result-Filter is empty!\n";
pRavenSimulator->writeToRPF ( "Problembaer.rpf" );
}
normalize_0dB ( oResult.vcspResult [0]->psfResult.get ( ) );
writeAudiofile ( "results/new/RavenTest_Task_RT_v2.wav", oResult.vcspResult [0]->psfResult.get ( ), dSampleRate );
oResult.vcspResult.clear ( );
int n = -1;
while ( n++ < 10 )
{
oTask3.uiID++;
cout << "\tCalculating task3 (RT) with ID " << oTask3.uiID << " ...\n";
sw.start ( );
pRavenSimulator->compute ( &oTask3, &oResult );
cout << "\t[done in " << timeToString ( sw.stop ( ) ) << "]" << endl;
//normalize_0dB(oResult.vcspResult[0]->psfResult);
writeAudiofile ( "results/new/RavenTest_Task_RT_" + IntToString ( n ) + ".wav", oResult.vcspResult [0]->psfResult.get ( ), dSampleRate );
oResult.vcspResult.clear ( );
}
}
catch ( ITAException& err )
{
cout << "\t[E]: " << err << endl;
}
}
\ No newline at end of file
%% ccx
ccx
%% load
switch('IS')
case 'IS'
old = ita_read('old\RavenTest_Task_IS_v1.wav');
new = ita_read('new\RavenTest_Task_IS_v1.wav');
case 'RT'
old = ita_read('old\RavenTest_Task_RT_v1.wav');
new = ita_read('new\RavenTest_Task_RT_v1.wav');
otherwise
end
old.channelNames = {'old_R';'old_L'};
new.channelNames= {'new_R';'new_L'};
%% RT Fuzzy test
tmp(10) = itaAudio;
odd = [1,3,5,7,9,11,13,15,17,19];
even = [2,4,6,8,10,12,14,16,18,20];
for i = 1:10
tmp(i) = ita_read(['old\RavenTest_Task_RT_' int2str(i) '.wav']);
end
tmp = merge(tmp);
tmp_R = tmp.ch(odd).mean();
tmp_L = tmp.ch(even).mean();
old = merge(tmp_R,tmp_L);
old.channelNames = {'old_R';'old_L'};
for i = 1:10
tmp(i) = ita_read(['new\RavenTest_Task_RT_' int2str(i) '.wav']);
end
tmp = merge(tmp);
tmp_R = tmp.ch(odd).mean();
tmp_L = tmp.ch(even).mean();
new = merge(tmp_R,tmp_L);
new.channelNames= {'new_R';'new_L'};
diff = old/new;
test = itaAudio;
test.freq = movmean(diff.freq,128);
%% plot
res = merge(old,new);
res.ch([1,3]).pf
cmake_minimum_required( VERSION 2.8 )
project( raven_multi_instance_test )
list( APPEND CMAKE_MODULE_PATH "$ENV{VISTA_CMAKE_COMMON}" )
include( VistaCommon )
vista_use_package( ITASimulationScheduler REQUIRED FIND_DEPENDENCIES )
vista_use_package( RavenGeo REQUIRED FIND_DEPENDENCIES )
vista_use_package( ITABase REQUIRED FIND_DEPENDENCIES )
add_executable( raven_multi_instance_test "raven_multi_instance_test.cpp" )
target_link_libraries( raven_multi_instance_test ${VISTA_USE_PACKAGE_LIBRARIES} )
vista_configure_app( raven_multi_instance_test )
vista_create_default_info_file( raven_multi_instance_test )
set_property( TARGET raven_multi_instance_test PROPERTY FOLDER "ITASimulationScheduler/Tests/Raven" )
#include <iostream>
#include <string>
#include <memory>
#include <ITAAudiofileWriter.h>
#include <ITAException.h>
#include <ITASampleFrame.h>
#include <ITAStopWatch.h>
#include <ITAStringUtils.h>
#include <ITAFileSystemUtils.h>
#include <ITA/simulation_scheduler/room_acoustics/raven/simulator.h>
#include <ITASimulationScheduler/Raven/Simulator.h>
#include <ITASimulationScheduler/Utils.h>
#include <RG_Vector.h>
using namespace std;
using namespace ITA::simulation_scheduler::room_acoustics::raven;
const double dSampleRate = 44.1e3;
const double dFilterLength = 0.5; // 1 Sekunde
static const string sRavenDataBasePath = "D:/ScieBo/MasterThesis/Raven/RavenDatabase";
static string sRavenGeometryFilePath = "D:/ScieBo/MasterThesis/Raven/RavenModels/Cube/model.ac";
//static string sRavenGeometryFilePath = "$(RavenDataBasePath)/RavenModels/ReverberationChamber/reverbChamber_empty.ac";
int main ( int argc, char** argv )
{
if ( !doesDirectoryExist ( "results" ) )
makeDirectory ( "results" );
auto firstSimulator = std::make_unique<CSimulator> ( sRavenDataBasePath,
"$(RavenDataBasePath)/HRTF/ITA_Kunstkopf_HRIR_AP11_Pressure_Equalized_3x3_256.v17.ir.daff" );
firstSimulator->loadScene ( sRavenGeometryFilePath );
auto secondSimulator = std::make_unique<CSimulator> ( sRavenDataBasePath,
"$(RavenDataBasePath)/HRTF/ITA_Kunstkopf_HRIR_AP11_Pressure_Equalized_3x3_256.v17.ir.daff" );
secondSimulator->loadScene ( sRavenGeometryFilePath );