Spring2006.CSCI221Homework5 History

Show minor edits - Show changes to markup

Changed lines 105-106 from:
to:
  1. In the same email, attach .mid files demoing your effects. For example, attach x.mid, x_echo.mid, x_reverb.mid, where x is a descriptive name of the music stored in the MIDI file (e.g., StairwayToHeaven.mid, StairwayToHeaven_echo.mid, StairwayToHeaven_reverb.mid).
Changed lines 58-59 from:

Bonus:

to:

Bonus

Added lines 67-76:

Super Bonus

Create additional Song effects (methods).

Demonstate your effects through MusicMaker. For each effect, it should create (at least) one meaningfully named .mid file. These files should be stored in the current directory (i.e., no "hardwired" path names).

Running MusicMaker should generate all demos at once (i.e., no editing required by instructor/grader).

Within Readme.txt document your extra work. No bonus if you omit this part!

Changed lines 4-5 from:

(:note '''Note:''' |Due date has changed.:)

to:

(:note '''Note:''' |Check [[http://www.cs.cofc.edu/~manaris/index.php/Spring2006/CSCI221Homework5?action=diff&source=n&minor=n | updates]].:)

Changed lines 87-88 from:
  • Song.java, MusicMaker.java.
to:
  • Song.java, MusicMaker.java, ExtendedNote.java.
Changed line 2 from:

Due Date: Wednesday, Apr. 12, 2006 \\

to:

Due Date: Friday, Apr. 14, 2006 \\

Changed lines 4-5 from:
to:

(:note '''Note:''' |Due date has changed.:)

Changed lines 32-33 from:

(Hint: You might find Part.addNote() useful.)

to:

(Hint: You might find Part.addNote() useful.)

Changed lines 31-32 from:
  • public Score getScore() -- converts song to a jMusic Score
to:
  • public Score getScore() -- converts song to a jMusic Score
    (Hint: You might find Part.addNote() useful.)
April 04, 2006, at 10:49 AM by Bill Manaris -
Changed lines 61-62 from:
  • public void removeNote(ExtendedNote note) -- removes the first occurrance from song
to:
  • public void removeNote(ExtendedNote note) -- removes the first occurrance of note from song
April 04, 2006, at 10:49 AM by Bill Manaris -
Changed lines 61-62 from:
  • public Score removeNote(ExtendedNote note) -- removes the first occurrance from song
to:
  • public void removeNote(ExtendedNote note) -- removes the first occurrance from song
Changed lines 54-55 from:

To find the Note objects, you need to get the Part objectss of the Score, then get the Phrase objects within each Part, then get the Note objects within each Phrase, and finally wrap each Note within an ExtendedNote Δ. Start time is found within each Phrase.

to:

To find the Note objects, you need to get the Part objectss of the Score, then get the Phrase objects within each Part, then get the Note objects within each Phrase, and finally wrap each Note within an ExtendedNote. Start time is found within each Phrase.

Changed lines 54-55 from:

To find the Note's, you need to get the Part's of the Score, then get the Phrases within each Part, then get the Note's within each Phrase, and finally wrap each Note within an ExtendedNote. Start time is found within each Phrase.

to:

To find the Note objects, you need to get the Part objectss of the Score, then get the Phrase objects within each Part, then get the Note objects within each Phrase, and finally wrap each Note within an ExtendedNote Δ. Start time is found within each Phrase.

March 30, 2006, at 10:42 AM by Bill Manaris -
Added line 29:
Added lines 32-34:
  • public void addNote(ExtendedNote note) -- adds a note to the song
Added line 37:
Added lines 60-62:
  • public Score removeNote(ExtendedNote note) -- removes the first occurrance from song
March 30, 2006, at 10:35 AM by Bill Manaris -
Changed lines 49-50 from:

To find the Notes, you need to get the Part's of the Score, then get the Phrases within each Part, then get the Note's within each Phrase, and finally wrap each Note within an ExtendedNote. Start time is found within each Part.

to:

To find the Note's, you need to get the Part's of the Score, then get the Phrases within each Part, then get the Note's within each Phrase, and finally wrap each Note within an ExtendedNote. Start time is found within each Phrase.

March 30, 2006, at 10:32 AM by Bill Manaris -
Changed lines 33-34 from:
  • public String toString() -- returns String representation of song (Hint: use jMusic Score's toString())
to:
  • public String toString() -- returns String representation of song
March 30, 2006, at 10:27 AM by Bill Manaris -
Changed line 30 from:
  • public Score getSong() -- converts song to a jMusic Score
to:
  • public Score getScore() -- converts song to a jMusic Score
Changed lines 41-42 from:

You should use a linked list of notes to store the song. This linked list should utilize class Node (given in class). The info field of class Node should be of class ExtendedNote (to be provided).

to:

You should use a linked list of notes to store the song.

This linked list should utilize class Node (given in class).

The info field of class Node should be of class ExtendedNote (to be provided).

Hint: To build your list, extract jMusic Note's from the input MIDI file, and store them in increasing order of start time within ExtendedNote's.

To find the Notes, you need to get the Part's of the Score, then get the Phrases within each Part, then get the Note's within each Phrase, and finally wrap each Note within an ExtendedNote. Start time is found within each Part.

Changed lines 17-18 from:

To do so you will use classes from jMusic. jMusic is a n API for sound and music applications in Java.

to:

To do so you will use classes from jMusic. jMusic is an API for sound and music applications in Java.

Deleted line 25:
Changed lines 33-41 from:
  • public String toString() -- returns String representation of song (Hint: use Score's toString())

Bonus:

  • public void play() -- plays song (Hint: use jMusic's Play class)
  • public void view() -- displays song (Hint: use jMusic's View class)
  • public Score randomScore(int numNotes) -- returns a Score of numNotes notes with random pitch, rhythm value, and start time.
to:
  • public String toString() -- returns String representation of song (Hint: use jMusic Score's toString())
Changed lines 37-38 from:
  • public static void main(String[] args) - declares instances of necessary classes and uses their methods to make some music.
to:
  • public static void main(String[] args) - declares necessary instances of classes and uses their methods to make some demo music.

Internal Data Structure

You should use a linked list of notes to store the song. This linked list should utilize class Node (given in class). The info field of class Node should be of class ExtendedNote (to be provided).

Bonus:

  • public void play() -- plays song (Hint: use jMusic's Play class)
  • public void view() -- displays song (Hint: use jMusic's View class)
  • public Score randomScore(int numNotes) -- returns a Score of numNotes notes with random pitch, rhythm value, and start time.
Changed lines 23-24 from:

Your program should be implemented using BlueJ. Create a project called, Music. In that project create the following classes and methods:

to:

Your program should be implemented using BlueJ. Create a project called, Music. In that project create the following classes and methods:

Changed lines 38-40 from:
  • public void play() -- plays song (Hint: use jMusic's Play class)
  • public void view() -- displays song (Hint: use jMusic's View class)
to:
  • public void play() -- plays song (Hint: use jMusic's Play class)
  • public void view() -- displays song (Hint: use jMusic's View class)