X-Git-Url: https://ruin.nu/git/?p=moosique.git;a=blobdiff_plain;f=MooTrackView.java;h=2f96085e25f6a362ea22b4d34e28045ac7177736;hp=cb22b42def09d6aa15a1223891a317fc5df0e729;hb=f7097bc07b6688d1629e6894c1c42dc06485dc12;hpb=f13c7fbb2a8cc841367e0a4563596592b89cd33b diff --git a/MooTrackView.java b/MooTrackView.java index cb22b42..2f96085 100644 --- a/MooTrackView.java +++ b/MooTrackView.java @@ -28,7 +28,8 @@ public class MooTrackView extends JPanel { private Insets insets; private Rectangle box; private int ticksPerSixteenth, popupY = 0; - private boolean leftMouseButtonPressed = false, quantizeRecording = false; + private boolean leftMouseButtonPressed = false; + private static boolean snapToSixteenths = true; protected static int viewLength = 0; protected static int extraHeight = 0; public static final int NOTE_HEIGHT = 10, NOTE_WIDTH = 40, VIEW_WIDTH = 200; @@ -52,7 +53,7 @@ public class MooTrackView extends JPanel { setLayout(null); setPreferredSize(new Dimension(VIEW_WIDTH, 140 * NOTE_HEIGHT)); - placeNoteElements(false); + placeNoteElements(); // Creates panel pop-up menu. popup = new JPopupMenu(); @@ -78,10 +79,7 @@ public class MooTrackView extends JPanel { /** * Creates note elements for all MooNotes in the track, and places them in the appropriate place. */ - public void placeNoteElements(boolean quantize) { - // Converts the track. - Moosique.convertTrack(track); - + public void placeNoteElements() { // Empties the container removeAll(); coords = new ArrayList(track.size() / 2); @@ -132,15 +130,10 @@ public class MooTrackView extends JPanel { // Calculates coordinates. x = insets.left; - if (quantizeRecording) { - // Snap to nearest sixteenth - y = insets.top + Math.round(mn.getTick() / ticksPerSixteenth) * NOTE_HEIGHT; - height = (mn.getDuration() / ticksPerSixteenth) * NOTE_HEIGHT; - } else { - y = insets.top + (int)((mn.getTick() * NOTE_HEIGHT) / ticksPerSixteenth); - height = (mn.getDuration() * NOTE_HEIGHT) / ticksPerSixteenth; - } + y = insets.top + (int)((mn.getTick() * NOTE_HEIGHT) / ticksPerSixteenth); + height = (mn.getDuration() * NOTE_HEIGHT) / ticksPerSixteenth; if (height == 0) height = NOTE_HEIGHT; + if (snapToSixteenths && height < NOTE_HEIGHT) height = NOTE_HEIGHT; r = new Rectangle(x, y, NOTE_WIDTH, height); // Places the element in the appropriate place.