Skip to content
Snippets Groups Projects
WaveformView.java 1.01 KiB
Newer Older
  • Learn to ignore specific revisions
  • package de.tobias.playpad.view;
    
    import javafx.scene.paint.Color;
    import javafx.scene.shape.LineTo;
    import javafx.scene.shape.MoveTo;
    import javafx.scene.shape.Path;
    
    public class WaveformView extends Path {
    
    	public WaveformView(float[] data) {
    		getElements().add(new MoveTo(0, 0));
    
    		double width2 = data.length / 1200.0;
    		int width = data.length / 10000;
    		System.out.println(data.length);
    		System.out.println(width);
    
    		int i = 0;
    		for (i = 0; i < data.length; i += width) {
    			if (i < data.length) {
    				LineTo lineTo = new LineTo(i / width2, data[i] * 50.0);
    				MoveTo moveTo = new MoveTo(i / width2, data[i] * 50.0);
    
    				getElements().addAll(lineTo, moveTo);
    			}
    		}
    		for (; i >= 0; i -= width) {
    			if (i >= 0 && i < data.length) {
    				LineTo lineTo = new LineTo(i / width2, -data[i] * 50.0);
    				MoveTo moveTo = new MoveTo(i / width2, -data[i] * 50.0);
    
    				getElements().addAll(lineTo, moveTo);
    			}
    		}
    		getElements().add(new LineTo(0, 0));
    		getElements().add(new MoveTo(0, 0));
    		setFill(Color.BLACK);
    	}
    }