private MetaMessage trackNameMessage;
private String trackName = "";
private ShortMessage programChangeMessage;
- private int programChange = 0, channel = 0;
+ private int channel = 0;
private JTextField title;
private MooInstrumentList instruments;
private JComboBox channelBox;
track = aTrack;
this.trackNum = aTrackNum;
- // Finds track name and program change
+ // Finds track name, program change and channel.
MidiMessage msg;
+ int status;
for (int i = 0; i < track.size(); i++) {
msg = track.get(i).getMessage();
- if (msg.getStatus() == 255) {
+ status = msg.getStatus();
+ if (status == MetaMessage.META) {
if (((MetaMessage)msg).getType() == 3) {
trackNameMessage = (MetaMessage)msg;
trackName = new String(trackNameMessage.getData());
}
- } else if (msg.getStatus() == 192) {
+ } else if (status >= 192 && status <= 207) {
programChangeMessage = (ShortMessage)msg;
- programChange = programChangeMessage.getData1();
+ channel = status - 192;
}
}
+/* // Finds channel number.
MidiEvent event;
for (int i = 0; i < track.size(); i++) {
event = track.get(i);
break;
}
}
-
+*/
// Creates and places components.
setLayout(new GridLayout(4,1));
setBorder(BorderFactory.createLineBorder(Color.black));
title.addFocusListener(new TitleFocusListener());
add(title);
+ instruments = new MooInstrumentList(channel);
+ // instruments = new MooInstrumentList(channel, programChangeMessage);
+ add(instruments);
+
channelBox = new JComboBox();
channelBox.setFont(Moosique.getGUI().FONT);
for (int i = 1; i <= 16; i++)
channelBox.setSelectedIndex(channel);
- instruments = new MooInstrumentList(channelBox.getSelectedIndex());
- add(instruments);
-
channelBox.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int chan = channelBox.getSelectedIndex();