org.jfugue
Class Note

java.lang.Object
  extended by org.jfugue.Note
All Implemented Interfaces:
JFugueElement

public class Note
extends java.lang.Object
implements JFugueElement

Contains all information necessary for a musical note, including pitch, duration, attack velocity, and decay velocity.

Most of these settings have defaults. The default octave is 5. The default duration is a quarter note. The default attack and decay velocities are 64.

Version:
2.0.1
Author:
David Koelle

Field Summary
static byte DEFAULT_VELOCITY
          Default value for attack and decay velocity.
static byte FIRST
          Indicates that this note is the first note in the token.
static java.lang.String[] NOTES
           
static byte PARALLEL
          Indicates that this note is played at the same time as a previous note in the same token.
static byte SEQUENTIAL
          Indicates that this note immediately follows a previous note in the same token.
 
Constructor Summary
Note()
          Instantiates a new Note object.
Note(byte value, long duration)
          Instantiates a new Note object with the given note value and duration.
 
Method Summary
 byte getAttackVelocity()
          Returns the attack velocity for this note.
 byte getDecayVelocity()
          Returns the decay velocity for this note.
 double getDecimalDuration()
          Returns the decimal fraction value for the duration.
 long getDuration()
          Returns the duration of this note.
 java.lang.String getMusicString()
          Returns the Music String representing this element and all of its settings.
static java.lang.String getStringForDuration(double decimalDuration)
          Returns a MusicString representation of a decimal duration.
static java.lang.String getStringForNote(int noteValue)
           
static java.lang.String getStringForNote(int noteValue, double decimalDuration)
           
 byte getType()
          Returns the note type - either First, Sequential, or Parallel.
 byte getValue()
          Returns the numeric value of this note.
 boolean hasAccompanyingNotes()
          Returns whether this Note will have other Notes (sequential or parallel) associated with it.
 boolean isEndOfTie()
          Returns whether this note is tied to some past note.
 boolean isRest()
          Returns whether this Note object actually represents a rest.
 boolean isStartOfTie()
          Returns whether this note has a tie to some future note.
 void setAttackVelocty(byte velocity)
          Sets the attack velocity for this note.
 void setDecayVelocty(byte velocity)
          Sets the decay velocity for this note.
 void setDecimalDuration(double duration)
          Sets the decimal fraction value for the duration.
 void setDuration(long duration)
          Sets the duration of this note.
 void setEndOfTie(boolean endOfTie)
          Indicates whether this note is tied to some past note.
 void setHasAccompanyingNotes(boolean accompanying)
          Sets whether this Note will have other Notes (sequential or parallel) associated with it.
 void setRest(boolean rest)
          Indicates whether this Note object actually represents a rest.
 void setStartOfTie(boolean startOfTie)
          Indicates whether this note has a tie to some future note.
 void setType(byte type)
          Sets the note type - either First, Sequential, or Parallel.
 void setValue(byte value)
          Sets the numeric value of this note.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FIRST

public static final byte FIRST
Indicates that this note is the first note in the token.

See Also:
Constant Field Values

SEQUENTIAL

public static final byte SEQUENTIAL
Indicates that this note immediately follows a previous note in the same token.

See Also:
Constant Field Values

PARALLEL

public static final byte PARALLEL
Indicates that this note is played at the same time as a previous note in the same token.

See Also:
Constant Field Values

DEFAULT_VELOCITY

public static final byte DEFAULT_VELOCITY
Default value for attack and decay velocity.

See Also:
Constant Field Values

NOTES

public static final java.lang.String[] NOTES
Constructor Detail

Note

public Note()
Instantiates a new Note object.


Note

public Note(byte value,
            long duration)
Instantiates a new Note object with the given note value and duration.

Parameters:
value - the numeric value of the note. C5 is 60.
duration - the duration of the note.
Method Detail

setRest

public void setRest(boolean rest)
Indicates whether this Note object actually represents a rest.

Parameters:
rest - indicates whether this note is rest

isRest

public boolean isRest()
Returns whether this Note object actually represents a rest.

Returns:
whether this note is a rest

setValue

public void setValue(byte value)
Sets the numeric value of this note. C5 is 60.

Parameters:
value - the value of the note

getValue

public byte getValue()
Returns the numeric value of this note. C5 is 60.

Returns:
the value of this note

setDuration

public void setDuration(long duration)
Sets the duration of this note.

Parameters:
duration - the duration of this note

getDuration

public long getDuration()
Returns the duration of this note.

Returns:
the duration of this note

setDecimalDuration

public void setDecimalDuration(double duration)
Sets the decimal fraction value for the duration.

Parameters:
number - the decimal fraction for the duration

getDecimalDuration

public double getDecimalDuration()
Returns the decimal fraction value for the duration.

Returns:
the decimal fraction value for the duration

setStartOfTie

public void setStartOfTie(boolean startOfTie)
Indicates whether this note has a tie to some future note.

Parameters:
tied - true if the note is tied, false if not

isStartOfTie

public boolean isStartOfTie()
Returns whether this note has a tie to some future note.

Returns:
true is the note is tied, false if not

setEndOfTie

public void setEndOfTie(boolean endOfTie)
Indicates whether this note is tied to some past note.

Parameters:
tied - true if the note is tied, false if not

isEndOfTie

public boolean isEndOfTie()
Returns whether this note is tied to some past note.

Returns:
true is the note is tied, false if not

setAttackVelocty

public void setAttackVelocty(byte velocity)
Sets the attack velocity for this note.

Parameters:
velocity - the attack velocity

getAttackVelocity

public byte getAttackVelocity()
Returns the attack velocity for this note.

Returns:
the attack velocity

setDecayVelocty

public void setDecayVelocty(byte velocity)
Sets the decay velocity for this note.

Parameters:
velocity - the decay velocity

getDecayVelocity

public byte getDecayVelocity()
Returns the decay velocity for this note.

Returns:
the decay velocity

setHasAccompanyingNotes

public void setHasAccompanyingNotes(boolean accompanying)
Sets whether this Note will have other Notes (sequential or parallel) associated with it.

Parameters:
accompanying -

hasAccompanyingNotes

public boolean hasAccompanyingNotes()
Returns whether this Note will have other Notes (sequential or parallel) associated with it.


setType

public void setType(byte type)
Sets the note type - either First, Sequential, or Parallel.

Parameters:
type - the note type

getType

public byte getType()
Returns the note type - either First, Sequential, or Parallel.

Returns:
the note type

getMusicString

public java.lang.String getMusicString()
Returns the Music String representing this element and all of its settings. For a Note object, the Music String is a note, expressed as either a letter, note, or a bracketed number, [note-value], and a duration, expressed as either a letter, duration, or a slash followed by a numeric duration, /decimal-duration
If either the attack or decay velocity is set to a value besides the default, avelocity and/or dvelocity will be added to the string. If this note is to be played in sequence or in parallel to another note, a + or _ character will be added as appropriate.

Specified by:
getMusicString in interface JFugueElement
Returns:
the Music String for this element

getStringForNote

public static java.lang.String getStringForNote(int noteValue,
                                                double decimalDuration)

getStringForNote

public static java.lang.String getStringForNote(int noteValue)

getStringForDuration

public static java.lang.String getStringForDuration(double decimalDuration)
Returns a MusicString representation of a decimal duration. This code currently only converts single duration values representing whole, half, quarter, eighth, etc. durations; and dotted durations associated with those durations (such as "h.", equal to 0.75). This method does not convert combined durations (for example, "hi" for 0.625) or anything greater than a duration of 1.0 (for example, "wwww" for 4.0). For these values, the original decimal duration is returned in a string, prepended with a "/" to make the returned value a valid MusicString duration indicator.

Parameters:
decimalDuration - The decimal value of the duration to convert
Returns:
a MusicString fragment representing the duration