X-Git-Url: https://ruin.nu/git/?p=moosique.git;a=blobdiff_plain;f=Moosique.java;h=531e4f511886dcc96c10c7ed9d614f9da83d6bf0;hp=b4c4259e0b02a6be66ef48f63c821f7229f65c4d;hb=fe67e0acf0d44c09dcfbbfd1a02a91f43d2cf60e;hpb=f024dae5fba8aec9c8b03aba6093dd252269169c diff --git a/Moosique.java b/Moosique.java index b4c4259..531e4f5 100644 --- a/Moosique.java +++ b/Moosique.java @@ -24,6 +24,7 @@ public class Moosique { private static long position; private static boolean makeGUI = true, isEdited; private static Thread player; + public static final int RESOLUTION = 96, DEFAULT_TRACKS = 4; /** * Starts the application. @@ -140,7 +141,7 @@ public class Moosique { public static void clearSequence() { // Creates a new sequence and sends it to the sequencer. try { - seq = new Sequence(Sequence.PPQ, 96, 3); + seq = new Sequence(Sequence.PPQ, RESOLUTION, DEFAULT_TRACKS); sequencer.setSequence(seq); } catch (InvalidMidiDataException e) {} // Sends sequence to GUI. @@ -153,7 +154,6 @@ public class Moosique { public static void play() { sequencer.setTickPosition(position); resume(); - } /** @@ -176,7 +176,8 @@ public class Moosique { // Creates the visualization thread and starts it. player = new Thread () { public void run() { - gui.update(sequencer.getTickPosition()); + while(sequencer.isRunning()) gui.update(sequencer.getTickPosition()); + Moosique.stop(); } }; player.start(); @@ -188,7 +189,7 @@ public class Moosique { public static void stop() { sequencer.stop(); sequencer.setTickPosition(position); - player.destroy(); + player.interrupt(); gui.update((long)0); }