X-Git-Url: https://ruin.nu/git/?p=moosique.git;a=blobdiff_plain;f=Moosique.java;h=e03cca0749a08b9396c7e760c722bb62f698c36a;hp=9b4349c9acbb9db040a1f8bd0d1b1c6d75225853;hb=aae2d0b4428236b4147f466b3858a34bb7ed174f;hpb=c87df9f217c5730ae465252b415bb7e52a4f3fed diff --git a/Moosique.java b/Moosique.java index 9b4349c..e03cca0 100644 --- a/Moosique.java +++ b/Moosique.java @@ -22,7 +22,7 @@ public class Moosique { private static MidiEvent[] timeSignatures, tempoChanges; private static ArrayList emptyTracks; - private static String filename, fileArg; + private static String filename; private static long editPosition; private static boolean makeGUI = true, isEdited = false, drawEmptyTracks = false; private static Thread player; @@ -35,6 +35,7 @@ public class Moosique { System.out.println("\nMoosique version 1.0\n"); // Parses command-line arguments. + String fileArg = null; for (int i = 0; i < args.length; i++) { if (args[i].equals("-n")) {makeGUI = false;} else if (fileArg == null) {fileArg = args[i];} @@ -54,7 +55,6 @@ public class Moosique { setActiveChannel(0); } catch (MidiUnavailableException e) { System.out.println("Failed, quitting."); -// System.exit(1); } System.out.println("Done"); @@ -62,7 +62,7 @@ public class Moosique { if (fileArg != null) { System.out.print("Loading MIDI sequence from " + fileArg + "..."); if (!load(fileArg)) { - System.out.println("Failed"); + System.out.println("Failed, creating new sequence"); clearSequence(); } else { System.out.println("Done"); @@ -153,6 +153,7 @@ public class Moosique { try { seq = new Sequence(Sequence.PPQ, DEFAULT_RESOLUTION, DEFAULT_TRACKS); sequencer.setSequence(seq); + filename = null; emptyTracks = new ArrayList(); } catch (InvalidMidiDataException e) {} // Sends sequence to GUI. @@ -193,15 +194,7 @@ public class Moosique { // Creates the visualisation thread and starts it. player = new Thread () { public void run() { - long ticksPerSixteenth = seq.getResolution()/4; - System.out.println("Ticks/16: " + ticksPerSixteenth); - long position = sequencer.getTickPosition(); while(sequencer.isRunning()) { - long pos = sequencer.getTickPosition(); - long tickDiff = pos - position; - System.out.print(" ... " + tickDiff); - position = pos; - // Updates the GUI with the current tick position. gui.update(sequencer.getTickPosition()); @@ -435,19 +428,27 @@ public class Moosique { * Saves the current sequence to the given filename * @param file the filename to use */ - public static void saveAs(String file) { + public static boolean saveAs(String file) { try { - MidiSystem.write(seq, 1, new File(filename)); - } catch (IOException e) {} - filename = file; - gui.setStatus("Saved " + file); + MidiSystem.write(seq, 1, new File(file)); + filename = file; + gui.setStatus("Saved " + file); + return true; + } catch (IOException e) { + gui.setStatus("Failed in saving " + file); + return false; + } } /** * Saves the current sequence to the previously given filename. */ - public static void save() { - saveAs(filename); + public static boolean save() { + if (filename == null) return false; + else { + saveAs(filename); + return true; + } } /**