]> ruin.nu Git - moosique.git/blobdiff - MooNote.java
no message
[moosique.git] / MooNote.java
index d401aa7de424e51250c95d5ae90b881c33370df8..78e1564064161aac20851980d249eb97771efaf5 100644 (file)
@@ -36,14 +36,13 @@ public class MooNote extends MidiEvent {
 
        /** 
         * Creates a MooNote of the given pitch, velocity and duration in the current track.
-        * @param track         the track to which the MooNote was added
         * @param channel       the channel of the note (1-16)
         * @param pitch         the pitch of the note (0-127)
         * @param velocity      the velocity of the note (0-127)
         * @param timestamp     the timestamp of the note in ticks (96 per beat)
         * @param duration      the duration of the note in ticks (96 per beat)
         */
-       public MooNote (int track, int channel, int pitch, int velocity, long timestamp, int duration) {
+       public MooNote (int channel, int pitch, int velocity, long timestamp, int duration) {
                super(new ShortMessage(), timestamp);
                noteOffEvent = new MidiEvent(new ShortMessage(), timestamp + duration);
                noteOnMsg = (ShortMessage)getMessage();
@@ -51,7 +50,7 @@ public class MooNote extends MidiEvent {
                try {
                        noteOnMsg.setMessage(ShortMessage.NOTE_ON, channel, pitch, velocity);
                        noteOffMsg.setMessage(ShortMessage.NOTE_OFF, channel, pitch, 0);
-               } catch (InvalidMidiDataException e) {}
+               } catch (InvalidMidiDataException e) {System.out.println("Invalid data!");}
        }
 
        /** 
@@ -76,6 +75,14 @@ public class MooNote extends MidiEvent {
                } catch (InvalidMidiDataException e) {}
        }
 
+       /** 
+        * Transposes the current note the given number of halftones.
+        * @param halftones             the number of halftones to transpose - positive for up, negative for down
+        */
+       public void transpose(int halftones) {
+               setPitch(getPitch() + halftones);
+       }
+
        /** 
         * Sets the velocity of the current note.
         * @param vel   the velocity of the note (0-127)
@@ -100,7 +107,7 @@ public class MooNote extends MidiEvent {
         * @param tick  the timestamp of the note in ticks (96 per beat)
         */
        public void setTick(long tick) {
-               if (hasNoteOffEvent()) noteOffEvent.setTick(tick +  getDuration());
+               if (hasNoteOffEvent()) noteOffEvent.setTick(tick + getDuration());
                super.setTick(tick);
        }
 
@@ -145,11 +152,19 @@ public class MooNote extends MidiEvent {
                return noteOffEvent != null;
        }
 
+       /**
+        * Adds this note (both noteOn and noteOffEvents) to a track.
+        * @param track the track it'll be added to.
+        */
        public void addTo(Track track){
                track.add(this);
                if (hasNoteOffEvent()) track.add(noteOffEvent);
        }
        
+       /**
+        * Removes this note (both noteOn and noteOffEvents) from a track.
+        * @param track the track it'll be removed from.
+        */
        public void removeFrom(Track track){
                track.remove(this);
                if (hasNoteOffEvent()) track.remove(noteOffEvent);