private static MidiChannel activeChannel;
private static MidiEvent[] timeSignatures, tempoChanges;
private static ArrayList emptyTracks;
+ private static Map trackMute;
+ private static Map trackSolo;
+
private static String filename;
private static long editPosition;
gui.update(0);
try {
sequencer.setSequence(seq);
+ Track[] tracks = seq.getTracks();
+
+ for (int i = 0; i < tracks.length; i++) {
+
+ Object ob = trackSolo.get(tracks[i]);
+ if(ob instanceof Boolean){
+ System.out.println("Track solo " + i + "= "+ ob);
+ sequencer.setTrackSolo(i,((Boolean)ob).booleanValue());
+ }
+
+ ob = trackMute.get(tracks[i]);
+ if(ob instanceof Boolean){
+ System.out.println("Track mute " + i + "= "+ ob);
+ sequencer.setTrackMute(i,((Boolean)ob).booleanValue());
+ }
+ }
} catch (InvalidMidiDataException e) {}
sequencer.start();
Track[] tracks = seq.getTracks();
emptyTracks = new ArrayList();
+ trackMute = new HashMap();
+ trackSolo = new HashMap();
// Searches track 0 for changes in tempo and time signature.
MidiEvent event;
if (synthesizer.isOpen()) synthesizer.close();
System.exit(0);
}
-}
\ No newline at end of file
+
+ public static void setTrackSolo(Track track, boolean on){
+ trackSolo.put(track, new Boolean(on));
+ }
+
+ public static void setTrackMute(Track track, boolean on){
+ trackMute.put(track, new Boolean(on));
+ }
+}