public static void main(String[] args) throws Exception { for (int i = 0; i < args.length; i++) { AudioInputStream ais = AudioSystem.getAudioInputStream(new File(args[i])); double[] signal = new AudioDoubleDataSource(ais).getAllData(); int nFrames = 500; int startSample = 5000; int fftSize = DEFAULT_FFTSIZE; double[] excerpt = new double[nFrames + fftSize]; System.arraycopy(signal, startSample, excerpt, 0, excerpt.length); Phasogram signalSpectrum = new Phasogram(excerpt, (int) ais.getFormat().getSampleRate()); signalSpectrum.showInJFrame(args[i], false, true); } }
protected void update() { ShortTermPhaseSpectrumAnalyser spectrumAnalyser = new ShortTermPhaseSpectrumAnalyser( new BufferedDoubleDataSource(signal), fftSize, window, windowShift, samplingRate); spectra = new ArrayList(); // Frequency resolution of the FFT: deltaF = spectrumAnalyser.getFrequencyResolution(); long startTime = System.currentTimeMillis(); FrameBasedAnalyser.FrameAnalysisResult[] results = spectrumAnalyser.analyseAllFrames(); for (int i = 0; i < results.length; i++) { double[] phaseSpectrum = (double[]) results[i].get(); spectra.add(phaseSpectrum); } long endTime = System.currentTimeMillis(); System.err.println("Computed " + spectra.size() + " phase spectra in " + (endTime - startTime) + " ms."); spectra_indexmax = (int) (FREQ_MAX / deltaF); if (spectra_indexmax > fftSize / 2) spectra_indexmax = fftSize / 2; // == spectra[i].length super.updateData(0, (double) windowShift / samplingRate, new double[spectra.size()]); // correct y axis boundaries, for graph: ymin = 0.; ymax = spectra_indexmax * deltaF; repaint(); }
protected void update() { ShortTermPhaseSpectrumAnalyser spectrumAnalyser = new ShortTermPhaseSpectrumAnalyser( new BufferedDoubleDataSource(signal), fftSize, window, windowShift, samplingRate); spectra = new ArrayList(); // Frequency resolution of the FFT: deltaF = spectrumAnalyser.getFrequencyResolution(); long startTime = System.currentTimeMillis(); FrameBasedAnalyser.FrameAnalysisResult[] results = spectrumAnalyser.analyseAllFrames(); for (int i = 0; i < results.length; i++) { double[] phaseSpectrum = (double[]) results[i].get(); spectra.add(phaseSpectrum); } long endTime = System.currentTimeMillis(); System.err.println("Computed " + spectra.size() + " phase spectra in " + (endTime - startTime) + " ms."); spectra_indexmax = (int) (FREQ_MAX / deltaF); if (spectra_indexmax > fftSize / 2) spectra_indexmax = fftSize / 2; // == spectra[i].length super.updateData(0, (double) windowShift / samplingRate, new double[spectra.size()]); // correct y axis boundaries, for graph: ymin = 0.; ymax = spectra_indexmax * deltaF; repaint(); }
public static void main(String[] args) throws Exception { for (int i = 0; i < args.length; i++) { AudioInputStream ais = AudioSystem.getAudioInputStream(new File(args[i])); double[] signal = new AudioDoubleDataSource(ais).getAllData(); int nFrames = 500; int startSample = 5000; int fftSize = DEFAULT_FFTSIZE; double[] excerpt = new double[nFrames + fftSize]; System.arraycopy(signal, startSample, excerpt, 0, excerpt.length); Phasogram signalSpectrum = new Phasogram(excerpt, (int) ais.getFormat().getSampleRate()); signalSpectrum.showInJFrame(args[i], false, true); } }