public static void main(String[] args) throws Exception { for (int i = 0; i < args.length; i++) { AudioInputStream ais = AudioSystem.getAudioInputStream(new File(args[i])); SignalSpectrum signalSpectrum = new SignalSpectrum(ais); signalSpectrum.showInJFrame(args[i], true, false); } }
public SignalSpectrum(final double[] signal, int samplingRate, int width, int height) { initialise(signal, samplingRate, width, height); }
protected void initialise(final double[] signal, int samplingRate, int width, int height) { int N = signal.length; if (!MathUtils.isPowerOfTwo(N)) { N = MathUtils.closestPowerOfTwoAbove(N); } double[] ar = new double[N]; System.arraycopy(signal, 0, ar, 0, signal.length); // Transform: FFT.realTransform(ar, false); double[] freqs = FFT.computeAmplitudeSpectrum_FD(ar); process(freqs); double deltaF = (double) samplingRate / N; super.initialise(width, height, 0, deltaF, freqs); }
protected void initialise(final double[] signal, int samplingRate, int width, int height) { int N = signal.length; if (!MathUtils.isPowerOfTwo(N)) { N = MathUtils.closestPowerOfTwoAbove(N); } double[] ar = new double[N]; System.arraycopy(signal, 0, ar, 0, signal.length); // Transform: FFT.realTransform(ar, false); double[] freqs = FFT.computeAmplitudeSpectrum_FD(ar); process(freqs); double deltaF = (double) samplingRate / N; super.initialise(width, height, 0, deltaF, freqs); }
public static void main(String[] args) throws Exception { for (int i = 0; i < args.length; i++) { AudioInputStream ais = AudioSystem.getAudioInputStream(new File(args[i])); SignalSpectrum signalSpectrum = new SignalSpectrum(ais); signalSpectrum.showInJFrame(args[i], true, false); } }
public SignalSpectrum(final double[] signal, int samplingRate, int width, int height) { initialise(signal, samplingRate, width, height); }
FunctionGraph signalGraph = new SignalGraph(signalData, samplingRate); signalGraph.showInJFrame("signal", true, true); SignalSpectrum signalSpectrum = new SignalSpectrum(signalData, samplingRate); signalSpectrum.showInJFrame("signal", true, true); signal = new BufferedDoubleDataSource(signalData); PhaseVocoder pv = new PhaseVocoder(signal, samplingRate, Double.parseDouble(args[0])); Spectrogram resultSpectrogram = new Spectrogram(result, samplingRate); resultSpectrogram.showInJFrame("result", true, true); SignalSpectrum resultSpectrum = new SignalSpectrum(result, samplingRate); resultSpectrum.showInJFrame("result", true, true); System.err.println("Signal has length " + signalData.length + ", result " + result.length); if (signalData.length == result.length) {
public SignalSpectrum(AudioInputStream ais, int width, int height) { super(); if (!ais.getFormat().getEncoding().equals(AudioFormat.Encoding.PCM_SIGNED)) { ais = AudioSystem.getAudioInputStream(AudioFormat.Encoding.PCM_SIGNED, ais); } if (ais.getFormat().getChannels() > 1) { throw new IllegalArgumentException("Can only deal with mono audio signals"); } int samplingRate = (int) ais.getFormat().getSampleRate(); double[] signal = MaryAudioUtils.getSamplesAsDoubleArray(ais); initialise(signal, samplingRate, width, height); }
FunctionGraph signalGraph = new SignalGraph(signalData, samplingRate); signalGraph.showInJFrame("signal", true, true); SignalSpectrum signalSpectrum = new SignalSpectrum(signalData, samplingRate); signalSpectrum.showInJFrame("signal", true, true); signal = new BufferedDoubleDataSource(signalData); PhaseVocoder pv = new PhaseVocoder(signal, samplingRate, Double.parseDouble(args[0])); Spectrogram resultSpectrogram = new Spectrogram(result, samplingRate); resultSpectrogram.showInJFrame("result", true, true); SignalSpectrum resultSpectrum = new SignalSpectrum(result, samplingRate); resultSpectrum.showInJFrame("result", true, true); System.err.println("Signal has length " + signalData.length + ", result " + result.length); if (signalData.length == result.length) {
public SignalSpectrum(AudioInputStream ais, int width, int height) { super(); if (!ais.getFormat().getEncoding().equals(AudioFormat.Encoding.PCM_SIGNED)) { ais = AudioSystem.getAudioInputStream(AudioFormat.Encoding.PCM_SIGNED, ais); } if (ais.getFormat().getChannels() > 1) { throw new IllegalArgumentException("Can only deal with mono audio signals"); } int samplingRate = (int) ais.getFormat().getSampleRate(); double[] signal = MaryAudioUtils.getSamplesAsDoubleArray(ais); initialise(signal, samplingRate, width, height); }