X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=MooViewCounter.java;h=dcbd00cc16ff3dc4ca5ede73cf2c8b455823c912;hb=2875ce498e9bf83ed635156599dd29a3c3b379de;hp=de745d2e94c6b163d53351170b5d1a5c1f10c672;hpb=ae0197ccdf09df4717b40380eba22b9cafbad206;p=moosique.git diff --git a/MooViewCounter.java b/MooViewCounter.java index de745d2..dcbd00c 100644 --- a/MooViewCounter.java +++ b/MooViewCounter.java @@ -10,23 +10,54 @@ import java.awt.*; public class MooViewCounter extends JPanel { + private int timeSig1, timeSig2, measure, halfBeat, beat, halfNote; + private static final int CELL_HEIGHT = 10; + /** - * Creates + * Creates an musical ruler depending on the timesignature */ - public MooViewCounter (int beatsPerMeasure1,int beatsPerMeasure2) { - - } + public MooViewCounter (int ts1, int ts2) { + timeSig1 = ts1; + timeSig2 = ts2; + setBackground(Color.black); + setPreferredSize(new Dimension(35, 200 * CELL_HEIGHT)); + switch (timeSig2) { + case 16: measure = timeSig1; // 1/16 + break; + case 8: measure = timeSig1 * 2; // 1/16 + halfBeat = measure / timeSig1; // 1/8 + break; + case 4: measure = timeSig1 * 4; // 1/16 + halfBeat = beat / 2; // 1/8 + beat = measure / timeSig1; // 1/4 + break; + case 2: measure = timeSig1 * 8; // 1/16 + halfBeat = beat / 2; // 1/8 + beat = halfNote / 2; // 1/4 + halfNote = measure / timeSig1; // 1/2 + break; + case 1: measure = timeSig1 * 16; // 1/16 + halfBeat = beat / 2; // 1/8 + beat = halfNote / 2; // 1/4 + halfNote = measure / 2; // 1/2 + break; + } + + } public void paintComponent(Graphics g) { super.paintComponent(g); + setBackground(Color.black); if (!(g instanceof Graphics2D)) return; Graphics2D g2 = (Graphics2D)g; - - for (int i = 0; i < 10; i++) { - for (int j = 0; j < 10; j++) { - // g2.drawLine(0,i*20, - } + g2.setColor(Color.white); + for (int c = 0; c < 200; c++) { + g2.drawLine(0, c * CELL_HEIGHT, 5, c * CELL_HEIGHT); // 1/16 + g2.drawLine(0, c * CELL_HEIGHT * halfBeat, 10, c * CELL_HEIGHT * halfBeat); // 1/8 + g2.drawLine(0, c * CELL_HEIGHT * beat, 15, c * CELL_HEIGHT * beat); // 1/4 + g2.drawLine(0, c * CELL_HEIGHT * halfNote, 20, c * CELL_HEIGHT * halfNote); // 1/2 + g2.drawLine(0, c * CELL_HEIGHT * measure, 30, c * CELL_HEIGHT * measure); // 1/1 } } -} +} \ No newline at end of file