public static void main(String[] args) throws Exception { for (int i = 0; i < args.length; i++) { AudioInputStream ais = AudioSystem.getAudioInputStream(new File(args[i])); SignalGraph signalGraph = new SignalGraph(ais); signalGraph.showInJFrame(args[i], true, false); } } }
public static void main(String[] args) throws Exception { for (int i = 0; i < args.length; i++) { AudioInputStream ais = AudioSystem.getAudioInputStream(new File(args[i])); SignalGraph signalGraph = new SignalGraph(ais); signalGraph.showInJFrame(args[i], true, false); } } }
scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); getContentPane().add(scroll, BorderLayout.CENTER); signalGraph = new SignalGraph(signal, samplingRate, graphWidth, height * 15 / 100); allGraphs.add(signalGraph); spectrogram = new Spectrogram(signal, samplingRate, graphWidth, height * 40 / 100);
scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); getContentPane().add(scroll, BorderLayout.CENTER); signalGraph = new SignalGraph(signal, samplingRate, graphWidth, height * 15 / 100); allGraphs.add(signalGraph); spectrogram = new Spectrogram(signal, samplingRate, graphWidth, height * 40 / 100);
public static void main(String[] args) throws Exception { for (int i = 0; i < args.length; i++) { AudioInputStream inputAudio = AudioSystem.getAudioInputStream(new File(args[i])); int samplingRate = (int) inputAudio.getFormat().getSampleRate(); double[] signal = new AudioDoubleDataSource(inputAudio).getAllData(); FunctionGraph signalGraph = new SignalGraph(signal, samplingRate); signalGraph.showInJFrame("signal", true, true); FrameOverlapAddSource ola = new FrameOverlapAddSource(new BufferedDoubleDataSource(signal), 2048, samplingRate, null); double[] result = ola.getAllData(); FunctionGraph resultGraph = new SignalGraph(result, samplingRate); resultGraph.showInJFrame("result", true, true); System.err.println("Signal has length " + signal.length + ", result " + result.length); double err = MathUtils.sumSquaredError(signal, result); System.err.println("Sum squared error: " + err); double[] difference = MathUtils.subtract(signal, result); FunctionGraph diffGraph = new SignalGraph(difference, samplingRate); diffGraph.showInJFrame("difference", true, true); DDSAudioInputStream outputAudio = new DDSAudioInputStream(new BufferedDoubleDataSource(ola), inputAudio.getFormat()); String outFileName = args[i].substring(0, args[i].length() - 4) + "_copy.wav"; AudioSystem.write(outputAudio, AudioFileFormat.Type.WAVE, new File(outFileName)); } } }
public static void main(String[] args) throws Exception { for (int i = 0; i < args.length; i++) { AudioInputStream inputAudio = AudioSystem.getAudioInputStream(new File(args[i])); int samplingRate = (int) inputAudio.getFormat().getSampleRate(); double[] signal = new AudioDoubleDataSource(inputAudio).getAllData(); FunctionGraph signalGraph = new SignalGraph(signal, samplingRate); signalGraph.showInJFrame("signal", true, true); FrameOverlapAddSource ola = new FrameOverlapAddSource(new BufferedDoubleDataSource(signal), 2048, samplingRate, null); double[] result = ola.getAllData(); FunctionGraph resultGraph = new SignalGraph(result, samplingRate); resultGraph.showInJFrame("result", true, true); System.err.println("Signal has length " + signal.length + ", result " + result.length); double err = MathUtils.sumSquaredError(signal, result); System.err.println("Sum squared error: " + err); double[] difference = MathUtils.subtract(signal, result); FunctionGraph diffGraph = new SignalGraph(difference, samplingRate); diffGraph.showInJFrame("difference", true, true); DDSAudioInputStream outputAudio = new DDSAudioInputStream(new BufferedDoubleDataSource(ola), inputAudio.getFormat()); String outFileName = args[i].substring(0, args[i].length() - 4) + "_copy.wav"; AudioSystem.write(outputAudio, AudioFileFormat.Type.WAVE, new File(outFileName)); } } }
int samplingRate = (int) inputAudio.getFormat().getSampleRate(); double[] signal = new AudioDoubleDataSource(inputAudio).getAllData(); FunctionGraph signalGraph = new SignalGraph(signal, samplingRate); signalGraph.showInJFrame("signal", true, true); NaiveVocoder pv = new NaiveVocoder(new BufferedDoubleDataSource(signal), samplingRate, rateFactor); double[] result = pv.getAllData(); FunctionGraph resultGraph = new SignalGraph(result, samplingRate); resultGraph.showInJFrame("result", true, true);
int samplingRate = (int) inputAudio.getFormat().getSampleRate(); double[] signal = new AudioDoubleDataSource(inputAudio).getAllData(); FunctionGraph signalGraph = new SignalGraph(signal, samplingRate); signalGraph.showInJFrame("signal", true, true); NaiveVocoder pv = new NaiveVocoder(new BufferedDoubleDataSource(signal), samplingRate, rateFactor); double[] result = pv.getAllData(); FunctionGraph resultGraph = new SignalGraph(result, samplingRate); resultGraph.showInJFrame("result", true, true);
DoubleDataSource signal = new AudioDoubleDataSource(inputAudio); double[] signalData = new AudioDoubleDataSource(inputAudio).getAllData(); FunctionGraph signalGraph = new SignalGraph(signalData, samplingRate); signalGraph.showInJFrame("signal", true, true); SignalSpectrum signalSpectrum = new SignalSpectrum(signalData, samplingRate); PhaseVocoder pv = new PhaseVocoder(signal, samplingRate, Double.parseDouble(args[0])); double[] result = pv.getAllData(); FunctionGraph resultGraph = new SignalGraph(result, samplingRate); resultGraph.showInJFrame("result", true, true); Spectrogram resultSpectrogram = new Spectrogram(result, samplingRate); System.err.println("Sum squared error: " + err); double[] difference = MathUtils.subtract(signalData, result); FunctionGraph diffGraph = new SignalGraph(difference, samplingRate); diffGraph.showInJFrame("difference", true, true);
DoubleDataSource signal = new AudioDoubleDataSource(inputAudio); double[] signalData = new AudioDoubleDataSource(inputAudio).getAllData(); FunctionGraph signalGraph = new SignalGraph(signalData, samplingRate); signalGraph.showInJFrame("signal", true, true); SignalSpectrum signalSpectrum = new SignalSpectrum(signalData, samplingRate); PhaseVocoder pv = new PhaseVocoder(signal, samplingRate, Double.parseDouble(args[0])); double[] result = pv.getAllData(); FunctionGraph resultGraph = new SignalGraph(result, samplingRate); resultGraph.showInJFrame("result", true, true); Spectrogram resultSpectrogram = new Spectrogram(result, samplingRate); System.err.println("Sum squared error: " + err); double[] difference = MathUtils.subtract(signalData, result); FunctionGraph diffGraph = new SignalGraph(difference, samplingRate); diffGraph.showInJFrame("difference", true, true);
public static void main(String[] args) throws Exception { for (int i = 0; i < args.length; i++) { AudioInputStream inputAudio = AudioSystem.getAudioInputStream(new File(args[i])); int samplingRate = (int) inputAudio.getFormat().getSampleRate(); double[] signal = new AudioDoubleDataSource(inputAudio).getAllData(); FrameProvider fp = new FrameProvider(new BufferedDoubleDataSource(signal), null, 2048, 512, samplingRate, false); double[] result = new double[signal.length]; int resultPos = 0; while (fp.hasMoreData()) { double[] frame = fp.getNextFrame(); if (fp.validSamplesInFrame() >= fp.getFrameShiftSamples()) { System.arraycopy(frame, 0, result, resultPos, fp.getFrameShiftSamples()); resultPos += fp.getFrameShiftSamples(); } else { System.arraycopy(frame, 0, result, resultPos, fp.validSamplesInFrame()); resultPos += fp.validSamplesInFrame(); } } System.err.println("Signal has length " + signal.length + ", result " + resultPos); double err = MathUtils.sumSquaredError(signal, result); System.err.println("Sum squared error: " + err); if (err > 0.000001) { double[] difference = MathUtils.subtract(signal, result); FunctionGraph diffGraph = new SignalGraph(difference, samplingRate); diffGraph.showInJFrame("difference", true, true); } } }
public static void main(String[] args) throws Exception { for (int i = 0; i < args.length; i++) { AudioInputStream inputAudio = AudioSystem.getAudioInputStream(new File(args[i])); int samplingRate = (int) inputAudio.getFormat().getSampleRate(); double[] signal = new AudioDoubleDataSource(inputAudio).getAllData(); FrameProvider fp = new FrameProvider(new BufferedDoubleDataSource(signal), null, 2048, 512, samplingRate, false); double[] result = new double[signal.length]; int resultPos = 0; while (fp.hasMoreData()) { double[] frame = fp.getNextFrame(); if (fp.validSamplesInFrame() >= fp.getFrameShiftSamples()) { System.arraycopy(frame, 0, result, resultPos, fp.getFrameShiftSamples()); resultPos += fp.getFrameShiftSamples(); } else { System.arraycopy(frame, 0, result, resultPos, fp.validSamplesInFrame()); resultPos += fp.validSamplesInFrame(); } } System.err.println("Signal has length " + signal.length + ", result " + resultPos); double err = MathUtils.sumSquaredError(signal, result); System.err.println("Sum squared error: " + err); if (err > 0.000001) { double[] difference = MathUtils.subtract(signal, result); FunctionGraph diffGraph = new SignalGraph(difference, samplingRate); diffGraph.showInJFrame("difference", true, true); } } }
double[] usableSignal = ArrayUtils.subarray(testSlice, p, fftSize); double[] usableResiduum = ArrayUtils.subarray(residuum, p, fftSize); FunctionGraph signalGraph = new SignalGraph(usableSignal, samplingRate); signalGraph.showInJFrame("signal", true, true); FunctionGraph residuumGraph = new SignalGraph(usableResiduum, samplingRate); residuumGraph.showInJFrame("residual", true, true); double predictionGain = MathUtils.db(MathUtils.sum(MathUtils.multiply(usableSignal, usableSignal))
double[] usableSignal = ArrayUtils.subarray(testSlice, p, fftSize); double[] usableResiduum = ArrayUtils.subarray(residuum, p, fftSize); FunctionGraph signalGraph = new SignalGraph(usableSignal, samplingRate); signalGraph.showInJFrame("signal", true, true); FunctionGraph residuumGraph = new SignalGraph(usableResiduum, samplingRate); residuumGraph.showInJFrame("residual", true, true); double predictionGain = MathUtils.db(MathUtils.sum(MathUtils.multiply(usableSignal, usableSignal))
@Test public void testIdentity() { double[] signal = FFTTest.getSampleSignal(16000); int samplingRate = 8000; PhaseVocoder pv = new PhaseVocoder(new BufferedDoubleDataSource(signal), samplingRate, 1); double[] result = pv.getAllData(); double err = MathUtils.sumSquaredError(signal, result); if (err > 1.E-20) { SignalGraph graph = new SignalGraph(signal, 16000); graph.addDataSeries(result, Color.RED, FunctionGraph.DRAW_LINE, -1); graph.showInJFrame("Test signal", true, true); try { Thread.sleep(100000); } catch (Exception e) { } } assertTrue("Error: " + err, err < 1.E-15); }
System.err.println("LPC prediction gain: " + predictionGain + " dB"); if (lpcResidueAtCursor == null) { lpcResidueAtCursor = new SignalGraph(usableResidue, samplingRate, 300, 200); } else { lpcResidueAtCursor.update(usableResidue, samplingRate);
System.err.println("LPC prediction gain: " + predictionGain + " dB"); if (lpcResidueAtCursor == null) { lpcResidueAtCursor = new SignalGraph(usableResidue, samplingRate, 300, 200); } else { lpcResidueAtCursor.update(usableResidue, samplingRate);