summaryrefslogtreecommitdiff
path: root/portaudio/qa/loopback/src/audio_analyzer.h
diff options
context:
space:
mode:
Diffstat (limited to 'portaudio/qa/loopback/src/audio_analyzer.h')
-rw-r--r--portaudio/qa/loopback/src/audio_analyzer.h187
1 files changed, 0 insertions, 187 deletions
diff --git a/portaudio/qa/loopback/src/audio_analyzer.h b/portaudio/qa/loopback/src/audio_analyzer.h
deleted file mode 100644
index 8d9f1ee..0000000
--- a/portaudio/qa/loopback/src/audio_analyzer.h
+++ /dev/null
@@ -1,187 +0,0 @@
-
-/*
- * PortAudio Portable Real-Time Audio Library
- * Latest Version at: http://www.portaudio.com
- *
- * Copyright (c) 1999-2010 Phil Burk and Ross Bencina
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files
- * (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge,
- * publish, distribute, sublicense, and/or sell copies of the Software,
- * and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
- * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
- * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/*
- * The text above constitutes the entire PortAudio license; however,
- * the PortAudio community also makes the following non-binding requests:
- *
- * Any person wishing to distribute modifications to the Software is
- * requested to send the modifications to the original developer so that
- * they can be incorporated into the canonical version. It is also
- * requested that these non-binding requests be included along with the
- * license above.
- */
-
-#ifndef _AUDIO_ANALYZER_H
-#define _AUDIO_ANALYZER_H
-
-#include "biquad_filter.h"
-
-#define MATH_PI (3.141592653589793238462643)
-#define MATH_TWO_PI (2.0 * MATH_PI)
-
-typedef struct PaQaSineGenerator_s
-{
- double phase;
- double phaseIncrement;
- double frequency;
- double amplitude;
-} PaQaSineGenerator;
-
-/** Container for a monophonic audio sample in memory. */
-typedef struct PaQaRecording_s
-{
- /** Maximum number of frames that can fit in the allocated buffer. */
- int maxFrames;
- float *buffer;
- /** Actual number of valid frames in the buffer. */
- int numFrames;
- int sampleRate;
-} PaQaRecording;
-
-typedef struct PaQaTestTone_s
-{
- int samplesPerFrame;
- int startDelay;
- double sampleRate;
- double frequency;
- double amplitude;
-} PaQaTestTone;
-
-typedef struct PaQaAnalysisResult_s
-{
- int valid;
- /** Latency in samples from output to input. */
- double latency;
- double amplitudeRatio;
- double popAmplitude;
- double popPosition;
- double numDroppedFrames;
- double droppedFramesPosition;
- double numAddedFrames;
- double addedFramesPosition;
-} PaQaAnalysisResult;
-
-
-/*================================================================*/
-/*================= General DSP Tools ============================*/
-/*================================================================*/
-/**
- * Calculate Nth frequency of a series for use in testing multiple channels.
- * Series should avoid harmonic overlap between channels.
- */
-double PaQa_GetNthFrequency( double baseFrequency, int index );
-
-void PaQa_EraseBuffer( float *buffer, int numFrames, int samplesPerFrame );
-
-void PaQa_MixSine( PaQaSineGenerator *generator, float *buffer, int numSamples, int stride );
-
-void PaQa_WriteSine( float *buffer, int numSamples, int stride,
- double frequency, double amplitude );
-
-/**
- * Generate a signal with a sharp edge in the middle that can be recognized despite some phase shift.
- */
-void PaQa_GenerateCrack( float *buffer, int numSamples, int stride );
-
-double PaQa_ComputePhaseDifference( double phase1, double phase2 );
-
-/**
- * Measure the area under the curve by summing absolute value of each value.
- */
-double PaQa_MeasureArea( float *buffer, int numFrames, int stride );
-
-/**
- * Measure slope of the positive zero crossings.
- */
-double PaQa_MeasureCrossingSlope( float *buffer, int numFrames );
-
-
-/**
- * Prepare an oscillator that can generate a sine tone for testing.
- */
-void PaQa_SetupSineGenerator( PaQaSineGenerator *generator, double frequency, double amplitude, double frameRate );
-
-/*================================================================*/
-/*================= Recordings ===================================*/
-/*================================================================*/
-/**
- * Allocate memory for containing a mono audio signal. Set up recording for writing.
- */
- int PaQa_InitializeRecording( PaQaRecording *recording, int maxSamples, int sampleRate );
-
-/**
-* Free memory allocated by PaQa_InitializeRecording.
- */
- void PaQa_TerminateRecording( PaQaRecording *recording );
-
-/**
- * Apply a biquad filter to the audio from the input recording and write it to the output recording.
- */
-void PaQa_FilterRecording( PaQaRecording *input, PaQaRecording *output, BiquadFilter *filter );
-
-
-int PaQa_SaveRecordingToWaveFile( PaQaRecording *recording, const char *filename );
-
-/**
- * @param stride is the spacing of samples to skip in the input buffer. To use every samples pass 1. To use every other sample pass 2.
- */
-int PaQa_WriteRecording( PaQaRecording *recording, float *buffer, int numSamples, int stride );
-
-/** Write zeros into a recording. */
-int PaQa_WriteSilence( PaQaRecording *recording, int numSamples );
-
-int PaQa_RecordFreeze( PaQaRecording *recording, int numSamples );
-
-double PaQa_CorrelateSine( PaQaRecording *recording, double frequency, double frameRate,
- int startFrame, int numSamples, double *phasePtr );
-
-double PaQa_FindFirstMatch( PaQaRecording *recording, float *buffer, int numSamples, double tolerance );
-
-/**
- * Estimate the original amplitude of a clipped sine wave by measuring
- * its average slope at the zero crossings.
- */
-double PaQa_MeasureSineAmplitudeBySlope( PaQaRecording *recording,
- double frequency, double frameRate,
- int startFrame, int numFrames );
-
-double PaQa_MeasureRootMeanSquare( float *buffer, int numFrames );
-
-/**
- * Compare the amplitudes of these two signals.
- * Return ratio of recorded signal over buffer signal.
- */
-double PaQa_CompareAmplitudes( PaQaRecording *recording, int startAt, float *buffer, int numSamples );
-
-/**
- * Analyse a recording of a sine wave.
- * Measure latency and look for dropped frames, etc.
- */
-int PaQa_AnalyseRecording( PaQaRecording *recording, PaQaTestTone *testTone, PaQaAnalysisResult *analysisResult );
-
-#endif /* _AUDIO_ANALYZER_H */