@Override public ArrayList<Note> modify(Note note) { if (note.getStatus() == Note.NOTE_ON) { strategy.update(note); } else if (note.getStatus() == Note.NOTE_OFF) { Note note2 = new Note(Note.NOTE_ON, note.getPitch()); if (strategy.contains(note)) { strategy.update(note); } else if (history.contains(note2)) { offNotes.add(note); } } return new ArrayList<Note>(); }