private static boolean doChoreograph() throws IOException {
   System.out.println("\t--CHOREOGRAPHY--");
   if ((audioFile == null)
       || (timecodeFile == null)
       || (valveStateFile == null)
       || (timeOffsetChosen == false)) {
     System.out.println("Something is missing...");
     printStatus();
     return false;
   } else {
     System.out.println("Enter a name for the CueSheet:");
     System.out.print("> ");
     String sheetName = Utilities.STDIN.nextLine();
     System.out.println("Enter a comment for the CueSheet:");
     System.out.print("> ");
     String sheetComment = Utilities.STDIN.nextLine();
     System.out.println(
         "Enter a name for the CueSheet's record in the list, or leave blank to use the sheet's name:");
     System.out.print("> ");
     String recordName = Utilities.STDIN.nextLine();
     if ((recordName).equals("")) {
       recordName = sheetName;
     }
     CueSheet sheetMusic =
         Choreographer.makeCueSheet(
             sheetName, sheetComment, audioFile, timeOffset, timecodeFile, valveStateFile);
     Main.sheetList.put(recordName, sheetMusic);
     return true;
   }
 }
 public void show(boolean show, boolean animate) {
   if (animate) {
     if (mShowing != show) {
       mShowing = show;
       if (show) {
         setVisibility(View.VISIBLE);
         // Don't start the animation until we've created the layer, which is done
         // right before we are drawn
         mContentParent.setLayerType(View.LAYER_TYPE_HARDWARE, null);
         getViewTreeObserver().addOnPreDrawListener(mPreDrawListener);
       } else {
         mChoreo.startAnimation(show);
       }
     }
   } else {
     mShowing = show;
     setVisibility(show ? View.VISIBLE : View.GONE);
   }
 }
 @Override
 public boolean onPreDraw() {
   getViewTreeObserver().removeOnPreDrawListener(this);
   mChoreo.startAnimation(true);
   return false;
 }