Package org.jamdev.jpamutils.wavFiles
Class AudioData
java.lang.Object
org.jamdev.jpamutils.wavFiles.AudioData
public class AudioData extends Object
Holds .wav file data.
- Author:
- Jamie Macaulay
-
Field Summary
Fields Modifier and Type Field Description doublebitRateThe bit rate of samplesPreEmphasisFilterpreEmphasisFilterPre-emphasis filter.floatsampleRateThe sample rate in samples per secondint[]samplesSamples in amplitude units u.WavInterpolatorwavInterpolatorInterpolator for wav files. -
Constructor Summary
-
Method Summary
Modifier and Type Method Description doublegetLengthInSeconds()Get the length in seconds.int[]getSampleAmplitudes()Get the sample amplitudes in raw bits e.g.floatgetSampleRate()Get the sample rate in samples per second.double[]getScaledSampleAmpliudes()Get the sample amplitudes as a double scaled between -1 and 1.AudioDatainterpolate(float interpSr)Interpolate the audio data (e..g up sample or down sample)AudioDatapreEmphasis(double factor)Pre-emphasise the audio data so that lower frequencies are attenuatedstatic int[]short2Int(short[] samples)Convert a short[] array to int[].AudioDatatrim(int sampleStart, int samplEnd)Trim the audio data between two sample indexes.
-
Field Details
-
wavInterpolator
Interpolator for wav files. -
preEmphasisFilter
Pre-emphasis filter. -
samples
public int[] samplesSamples in amplitude units u. -
sampleRate
public float sampleRateThe sample rate in samples per second -
bitRate
public double bitRateThe bit rate of samples
-
-
Constructor Details
-
AudioData
public AudioData(int[] samples, float sampleRate)Create an AudioData object.- Parameters:
samples- - the samples in amplitude units u.sampleRate- - the sample rate in samples per second.
-
AudioData
public AudioData(short[] samples, float sampleRate)Create an AudioData object.- Parameters:
samples- - the samples in amplitude units u.sampleRate- - the sample rate in samples per second.
-
AudioData
public AudioData(double[] wavArray, float sampleRate)Create an AudioData object.- Parameters:
samples- - the samples in linear amplitude units - 1 to 1sampleRate- - the sample rate in samples per second.
-
-
Method Details
-
getSampleRate
public float getSampleRate()Get the sample rate in samples per second.- Returns:
- the sample rate in samples per second.
-
getSampleAmplitudes
public int[] getSampleAmplitudes()Get the sample amplitudes in raw bits e.g. +/- 2^16 /2 for 16 bit files.- Returns:
- the sample amplitudes
-
getLengthInSeconds
public double getLengthInSeconds()Get the length in seconds.- Returns:
- the length of the file in seconds
-
getScaledSampleAmpliudes
public double[] getScaledSampleAmpliudes()Get the sample amplitudes as a double scaled between -1 and 1.- Returns:
- the scaled amplitude samples.
-
trim
Trim the audio data between two sample indexes.- Parameters:
sampleStart- - the sample start.samplEnd- - the sample end.- Returns:
- AudioData object with trimmed data.
-
interpolate
Interpolate the audio data (e..g up sample or down sample)- Parameters:
interpSr- - the new sample rate.- Returns:
- AudioData object containing interpolated data and sample rate.
-
preEmphasis
Pre-emphasise the audio data so that lower frequencies are attenuated- Parameters:
factor- - the pre-emphasis factor- Returns:
- AudioData object with pre emphasised data.
-
short2Int
public static int[] short2Int(short[] samples)Convert a short[] array to int[].- Parameters:
samples- - the short samples- Returns:
- the integer array containing the same data.
-