Dawn@4: function [ pitch ] = detect_pitch( sampleWavFileName, OVERWRITE ) dawn@0: dawn@0: % open original pitch calculation dawn@0: sampleFileName = sampleWavFileName( 1 : length( sampleWavFileName ) - 4 ); dawn@0: fileName = [ sampleFileName '_YIN_pitch.txt']; dawn@0: % read pitch metrics from file dawn@0: fileID = fopen( fileName ); dawn@0: dawn@0: if( (fileID <= 0) || (OVERWRITE) ) %does the file exist? dawn@0: % no dawn@0: disp('WARNING: MISSING PITCH FILE'); dawn@0: %calculate it dawn@0: [x, fs, frameLength, noOfFrames] = openFile( [ sampleFileName '.wav' ] ); dawn@0: % perform pitch detection dawn@0: framePrd = calculate_pitchYIN( sampleFileName, x, fs, frameLength ); dawn@0: dawn@0: fileID = fopen( fileName, 'w'); dawn@0: for( i=1:length( framePrd )) dawn@0: fprintf(fileID, '%d %f \n', framePrd(i,1), framePrd(i,2) ); dawn@0: end dawn@0: fclose( fileID ); dawn@0: fileID = fopen( fileName ); dawn@0: end dawn@0: dawn@0: pitch = fscanf( fileID, '%f', inf ); dawn@0: pitch = pitch(2:2:end); dawn@0: fclose( fileID ); dawn@0: dawn@0: dawn@0: dawn@0: end dawn@0: