Skip to content
Snippets Groups Projects
Select Git revision
  • b38af1150ddfa8bac8ea1ec84358d003c079f76e
  • master default protected
  • develop protected
  • fabian
  • feature/sweetspot_widening protected
  • feature/room_compensation
  • ITACTC_v2024a
  • VA_v2023b
  • VA_v2023a
  • VA_v2022a
  • before_cmake_rework
  • v2021.a
  • v2020.a
  • v2019.a
  • v2018.b
  • v2018.a
  • v2017.d
  • v2017.c
  • v2017.b
  • v2017.a
  • v2016.a
21 results

ITACTCUtils.cpp

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    ITACTCUtils.cpp 1.10 KiB
    #include <ITACTCUtils.h>
    #include <ITAHDFTSpectra.h>
    
    #include <ITAAudiofileWriter.h>
    #include <ITAFFT.h>
    #include <ITAFilesystemUtils.h>
    #include <ITAHDFTSpectrum.h>
    #include <ITASampleFrame.h>
    
    // Helper
    void Export( const ITAHDFTSpectrum* pSpectrum, const std::string& sFilePath )
    {
    
    	ITASampleBuffer sbImpulseResponse( pSpectrum->getDFTSize()-1, true );
    	ITASampleBuffer sbSpectrum( pSpectrum->getDFTSize(), true ); // local copy
    
    	ITAFFT ifft( ITAFFT::IFFT_C2R, sbImpulseResponse.length(), sbSpectrum.GetData(), sbImpulseResponse.GetData() );
    
    	// Make local copy of input (will be destroyed by in-place FFT)
    	sbSpectrum.write( pSpectrum->data(), sbSpectrum.length() );
    	float* fIn = sbSpectrum.GetData();
    	float* fOut = sbImpulseResponse.GetData();
    	ifft.execute( fIn, fOut );
    
    	// Normalize after IFFT
    	sbImpulseResponse.div_scalar( float( sbImpulseResponse.length() ) );
    
    	std::string sFilePathComplete = sFilePath;
    	if( getFilenameSuffix( sFilePath ).empty() )
    		sFilePathComplete += ".wav";
    
    	//writeAudiofile( correctPath( sFilePathComplete ), &sbImpulseResponse, pSpectrum->getSamplerate(), ITA_FLOAT );
    
    	return;
    }