]> ruin.nu Git - moosique.git/blobdiff - MooNote.java
inte helt klar
[moosique.git] / MooNote.java
index 77ecd53b3db9dbca92db36cae0f5f48853122658..d401aa7de424e51250c95d5ae90b881c33370df8 100644 (file)
@@ -61,9 +61,8 @@ public class MooNote extends MidiEvent {
        public void setChannel(int channel) {
                try {
                        noteOnMsg.setMessage(noteOnMsg.getCommand(), (byte)channel, noteOnMsg.getData1(), noteOnMsg.getData2());
-                       noteOffMsg.setMessage(noteOffMsg.getCommand(), (byte)channel, noteOffMsg.getData1(), noteOffMsg.getData2());
-               } catch (Exception e) {}
-               //} catch (InvalidMidiDataException e) {}
+                       if(hasNoteOffEvent()) noteOffMsg.setMessage(noteOffMsg.getCommand(), (byte)channel, noteOffMsg.getData1(), noteOffMsg.getData2());
+               } catch (InvalidMidiDataException e) {}
        }
 
        /** 
@@ -73,9 +72,8 @@ public class MooNote extends MidiEvent {
        public void setPitch(int pitch) {
                try {
                        noteOnMsg.setMessage(noteOnMsg.getCommand(), noteOnMsg.getChannel(), (byte)pitch, noteOnMsg.getData2());
-                       noteOffMsg.setMessage(noteOffMsg.getCommand(), noteOffMsg.getChannel(), (byte)pitch, noteOffMsg.getData2());
-               } catch (Exception e) {}
-               //} catch (InvalidMidiDataException e) {}
+                       if(hasNoteOffEvent()) noteOffMsg.setMessage(noteOffMsg.getCommand(), noteOffMsg.getChannel(), (byte)pitch, noteOffMsg.getData2());
+               } catch (InvalidMidiDataException e) {}
        }
 
        /** 
@@ -85,9 +83,8 @@ public class MooNote extends MidiEvent {
        public void setVelocity(int vel) {
                try {
                        noteOnMsg.setMessage(noteOnMsg.getCommand(), noteOnMsg.getChannel(), noteOnMsg.getData1(), (byte)vel);
-                       noteOffMsg.setMessage(noteOffMsg.getCommand(), noteOffMsg.getChannel(), noteOffMsg.getData1(), noteOffMsg.getData2());
-               } catch (Exception e) {}
-               //} catch (InvalidMidiDataException e) {}
+                       if(hasNoteOffEvent()) noteOffMsg.setMessage(noteOffMsg.getCommand(), noteOffMsg.getChannel(), noteOffMsg.getData1(), noteOffMsg.getData2());
+               } catch (InvalidMidiDataException e) {}
        }
 
        /** 
@@ -147,4 +144,14 @@ public class MooNote extends MidiEvent {
        public boolean hasNoteOffEvent() {
                return noteOffEvent != null;
        }
+
+       public void addTo(Track track){
+               track.add(this);
+               if (hasNoteOffEvent()) track.add(noteOffEvent);
+       }
+       
+       public void removeFrom(Track track){
+               track.remove(this);
+               if (hasNoteOffEvent()) track.remove(noteOffEvent);
+       }
 }