private JPanel trackPanel;
private JPanel titlePanel;
+ private MooViewCounter viewCounter;
private int numberOfTracks;
/**
setViewportView(trackPanel);
titlePanel = new JPanel(new GridLayout(1,3),true);
-
JViewport columnHeader = new JViewport();
columnHeader.setView(titlePanel);
setColumnHeaderView(columnHeader);
+
+ viewCounter = new MooViewCounter(4, 4);
+ JViewport rowHeader = new JViewport();
+ rowHeader.setView(viewCounter);
+ setRowHeaderView(rowHeader);
+
setTracks(tracks);
}
public class MooViewCounter extends JPanel {
- private int measure, halfBeat, beat, halfNote;
+ private int timeSig1, timeSig2, measure, halfBeat, beat, halfNote;
/**
* Creates
*/
- private int timeSig1, timeSig2;
-
public MooViewCounter (int ts1, int ts2) {
timeSig1 = ts1;
timeSig2 = ts2;
+ setBackground(Color.black);
+ setPreferredSize(new Dimension(35,200*10));
- switch (timeSig2) {
+ switch (timeSig2) {
case 16: measure = timeSig1;
break;
case 8: measure = timeSig1 * 2;
public void paintComponent(Graphics g) {
super.paintComponent(g);
- setBackground(Color.black);
if (!(g instanceof Graphics2D)) return;
Graphics2D g2 = (Graphics2D)g;
- setPreferredSize(new Dimension(50,200*10));
g2.setColor(Color.white);
for (int c = 0; c < 200; c++) {
g2.drawLine(0,c*10,5,c*10); // 1/16
g2.drawLine(0,c*10*halfBeat,10,c*10*halfBeat); // 1/8
g2.drawLine(0,c*10*beat,15,c*10*beat); // 1/4
g2.drawLine(0,c*10*halfNote,20,c*10*halfNote); // 1/2
- g2.drawLine(0,c*10*measure,35,c*10*measure); // 1/1
+ g2.drawLine(0,c*10*measure,30,c*10*measure); // 1/1
}
}
private static Synthesizer synthesizer;
private static MidiChannel[] channels;
private static MidiChannel activeChannel;
- private static MetaMessage tempoMsg, timeSigMsg;
+ private static MetaMessage timeSigMsg;
+ private static MetaMessage[] tempoChgMsgs;
private static String filename, fileArg;
private static long editPosition;
if (msg.getStatus() == MetaMessage.META) {
metaMsg = (MetaMessage)msg;
if (metaMsg.getType() == 81) {
- tempoMsg = metaMsg;
+// FLERA!!! tempoMsg = metaMsg;
} else if (metaMsg.getType() == 88) {
timeSigMsg = (MetaMessage)msg;
}
ShortMessage shortMsg;
ArrayList noteOns, noteOffs;
for (int i = 0; i < tracks.length; i++) {
- noteOns = new ArrayList(tracks.length);
- /*
- Collections.sort(track[i].events, new Comparator() {
- public int compare(Object o1, Object o2) {
- return ((MidiEvent)o2).getTick() - ((MidiEvent)o1).getTick();
- }
- });
- */
for (int j = 0; j < tracks[i].size(); j++) {
noteOn = tracks[i].get(j);
if (noteOn.getMessage().getStatus() == ShortMessage.NOTE_ON) {
}
}
}
+
// Sends sequence to GUI and sequencer, then returns
if (gui != null) gui.setSequence(seq);
try {