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 SignalGraph(final double[] signal, int samplingRate, int width, int height) { initialise(signal, samplingRate, width, height); }
public void actionPerformed(ActionEvent evt) { changeZoomX(2); signalGraph.requestFocus(); } });
@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); }
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)); } } }
System.err.println("LPC prediction gain: " + predictionGain + " dB"); if (lpcResidueAtCursor == null) { lpcResidueAtCursor = new SignalGraph(usableResidue, samplingRate, 300, 200); } else { lpcResidueAtCursor.update(usableResidue, samplingRate);
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); signalGraph.requestFocus();
System.err.println("Created clip"); getInputMap().put(KeyStroke.getKeyStroke("SPACE"), "startOrStopAudio"); getInputMap(WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("SPACE"), "startOrStopAudio"); getActionMap().put("startOrStopAudio", new AbstractAction() { public void actionPerformed(ActionEvent e) { synchronized (clip) {
protected void update(double[] signal, int samplingRate) { super.updateData(0, 1. / samplingRate, signal); updateSound(signal, samplingRate); }
public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.DESELECTED) { show = false; if (graph != null) graph.getTopLevelAncestor().setVisible(false); if (lpcResidueAtCursor != null) lpcResidueAtCursor.getTopLevelAncestor().setVisible(false); } else if (e.getStateChange() == ItemEvent.SELECTED) { show = true; update(positionCursor.x); if (graph != null) graph.getTopLevelAncestor().setVisible(true); if (lpcResidueAtCursor != null) lpcResidueAtCursor.getTopLevelAncestor().setVisible(true); } } });
public void actionPerformed(ActionEvent e) { synchronized (clip) { if (clip.isActive()) { System.err.println("Stopping clip."); clip.stop(); } else { System.err.println("Rewinding clip."); if (Double.isNaN(positionCursor.x)) { // no cursor, play from start clip.setFramePosition(0); } else { // play from cursor position clip.setFramePosition(X2indexX(positionCursor.x)); } if (!Double.isNaN(rangeCursor.x)) { // range set? System.err.println("Setting timer task"); int endFrame = X2indexX(rangeCursor.x); timer.schedule(new ClipObserver(clip, endFrame), 50, 50); } System.err.println("Starting clip."); clip.start(); } } } });
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)); } } }
System.err.println("LPC prediction gain: " + predictionGain + " dB"); if (lpcResidueAtCursor == null) { lpcResidueAtCursor = new SignalGraph(usableResidue, samplingRate, 300, 200); } else { lpcResidueAtCursor.update(usableResidue, samplingRate);
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); signalGraph.requestFocus();
System.err.println("Created clip"); getInputMap().put(KeyStroke.getKeyStroke("SPACE"), "startOrStopAudio"); getInputMap(WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("SPACE"), "startOrStopAudio"); getActionMap().put("startOrStopAudio", new AbstractAction() { public void actionPerformed(ActionEvent e) { synchronized (clip) {
protected void initialise(final double[] signal, int samplingRate, int width, int height) { super.initialise(width, height, 0, 1. / samplingRate, signal); updateSound(signal, samplingRate); }
public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.DESELECTED) { show = false; if (graph != null) graph.getTopLevelAncestor().setVisible(false); if (lpcResidueAtCursor != null) lpcResidueAtCursor.getTopLevelAncestor().setVisible(false); } else if (e.getStateChange() == ItemEvent.SELECTED) { show = true; update(positionCursor.x); if (graph != null) graph.getTopLevelAncestor().setVisible(true); if (lpcResidueAtCursor != null) lpcResidueAtCursor.getTopLevelAncestor().setVisible(true); } } });
public void actionPerformed(ActionEvent e) { synchronized (clip) { if (clip.isActive()) { System.err.println("Stopping clip."); clip.stop(); } else { System.err.println("Rewinding clip."); if (Double.isNaN(positionCursor.x)) { // no cursor, play from start clip.setFramePosition(0); } else { // play from cursor position clip.setFramePosition(X2indexX(positionCursor.x)); } if (!Double.isNaN(rangeCursor.x)) { // range set? System.err.println("Setting timer task"); int endFrame = X2indexX(rangeCursor.x); timer.schedule(new ClipObserver(clip, endFrame), 50, 50); } System.err.println("Starting clip."); clip.start(); } } } });
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);
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); } } }