public void setLineList(LineList lines) {
      this.lines = lines;

      if (lines.size() > 0 && !lines.contains(currentLine)) {
        currentLine = (Line) lines.get(0);
        updateLabel();
      }
    }
  public void setLineList(LineList lines) {
    lineObj.setLines(lines);
    lineCanvas.setLineList(lines);
    lineSelector.setLineList(lines);

    if (lines.size() > 0) {
      lineCanvas.setSelectedLine(lines.getLine(0));
    }
  }
  @Override
  public NoteList generateForCSD(CompileData compileData, float startTime, float endTime) {

    Integer[] instrLineArray = new Integer[lines.size() * 2];
    HashMap ftableNumMap = new HashMap();

    generateFTables(compileData, ftableNumMap);
    generateInstruments(compileData, instrLineArray, ftableNumMap);

    try {
      return generateNotes(instrLineArray, startTime, endTime);
    } catch (SoundObjectException ex) {
      throw new RuntimeException(ex);
    }
  }
    private void previousLine() {
      if (lines == null || currentLine == null) {
        return;
      }

      int index = lines.indexOf(currentLine);

      if (index == -1) {
        return;
      }

      index--;

      if (index < 0) {
        index = lines.size() - 1;
      }

      currentLine = (Line) lines.get(index);
      updateLabel();
      fireLineSelection();
    }
    private void nextLine() {
      if (lines == null || currentLine == null) {
        return;
      }

      int index = lines.indexOf(currentLine);

      if (index == -1) {
        return;
      }

      index++;

      if (index >= lines.size()) {
        index = 0;
      }

      currentLine = (Line) lines.get(index);
      updateLabel();
      fireLineSelection();
    }