+ * Creates an musical ruler depending on the timesignature
+ */
+ public MooViewCounter (MetaMessage[] timeSigs) {
+ // ...for now
+ int timeSig1 = 4, timeSig2 = 4;
+ calculateLineSpecs(timeSig1, timeSig2);
+ setBackground(Moosique.getGUI().bgColor);
+ setPreferredSize(new Dimension(35, 200 * CELL_HEIGHT));
+ }
+
+ private void calculateLineSpecs(int ts1, int ts2) {
+ switch (ts2) {
+ case 16: measure = ts1; // 1/16
+ break;
+ case 8: measure = ts1 * 2; // 1/16
+ halfBeat = measure / ts1; // 1/8
+ break;
+ case 2: measure = ts1 * 8; // 1/16
+ halfBeat = beat / 2; // 1/8
+ beat = halfNote / 2; // 1/4
+ halfNote = measure / ts1; // 1/2
+ break;
+ case 1: measure = ts1 * 16; // 1/16
+ halfBeat = beat / 2; // 1/8
+ beat = halfNote / 2; // 1/4
+ halfNote = measure / 2; // 1/2
+ break;
+ default: measure = ts1 * 4; // 1/16
+ halfBeat = beat / 2; // 1/8
+ beat = measure / ts1; // 1/4
+ break;
+ }
+ }
+
+ /**
+ * Draws the ruler-like fields.
+ * @param g The Graphics object it operates on.