Spring2006.CSCI221Homework5 History

Hide minor edits - Show changes to output

Changed lines 105-106 from:
to:
# 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 [[http://stono.cs.cofc.edu/~manaris/spring05/cs221/jMusic/doc/jm/music/data/Part.html#addNote(jm.music.data.Note,%20double) | Part.addNote()]] useful.)-]
to:
[-(''Hint:'' You might find [[http://stono.cs.cofc.edu/~manaris/spring05/cs221/jMusic/doc/jm/music/data/Part.html | 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 [[http://stono.cs.cofc.edu/~manaris/spring05/cs221/jMusic/doc/jm/music/data/Part.html#addNote(jm.music.data.Note,%20double) | 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 @@[[(Attach:)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 @@[[(Attach:)ExtendedNote(.java)]]@@. 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 @@Phrase@@s 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 @@[[(Attach:)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 @@Note@@s, you need to get the @@Part@@'s of the @@Score@@, then get the @@Phrase@@s 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 @@Phrase@@s 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 @@Note@@s, you need to get the @@Part@@'s of the @@Score@@, then get the @@Phrase@@s 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 [[http://jmusic.ci.qut.edu.au/ | jMusic]]. jMusic is a n API for sound and music applications in Java.
to:
To do so you will use classes from [[http://jmusic.ci.qut.edu.au/ | 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 [[http://stono.cs.cofc.edu/~manaris/spring05/cs221/jMusic/doc/jm/util/Play.html| Play]] class)-]
** @@public void view()@@ -- displays song [-(Hint: use jMusic's [[http://stono.cs.cofc.edu/~manaris/spring05/cs221/jMusic/doc/jm/util/View.html| 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 [[http://stono.cs.cofc.edu/~manaris/spring05/cs221/jMusic/doc/jm/util/Play.html| Play]] class)-]
** @@public void view()@@ -- displays song [-(Hint: use jMusic's [[http://stono.cs.cofc.edu/~manaris/spring05/cs221/jMusic/doc/jm/util/View.html| 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 [[http://jmusic.ci.qut.edu.au/jmDocumentation/jm/util/Play.html| Play]] class)-]
** @@public void view()@@ -- displays song [-(Hint: use jMusic's [[http://jmusic.ci.qut.edu.au/jmDocumentation/jm/util/View.html| View]] class)-]
to:
** @@public void play()@@ -- plays song [-(Hint: use jMusic's [[http://stono.cs.cofc.edu/~manaris/spring05/cs221/jMusic/doc/jm/util/Play.html| Play]] class)-]
** @@public void view()@@ -- displays song [-(Hint: use jMusic's [[http://stono.cs.cofc.edu/~manaris/spring05/cs221/jMusic/doc/jm/util/View.html| View]] class)-]