SmartString
Basic Idea:
Based on the plukmain project in C++, or the Example
Karplus.ck and/or Mandolin.ck programs, modify the
code to do more intelligent things based on the
scorefile input, and to do more intelligent things
based on the nature of the optional soundfile input.
Examples below. You might have better ideas (of
course), but make sure you do some real work to
improve the instrument, and don't just break it in
funny ways (break it in profound and meaningful ways).
- Implement smooth interpolation of the string lengths
and amplitudes, using a variety of functions, with a time
constant too. An example line of the new score file might look like
time | pitch | amp | func | ptime |
3.0 | 440.0 | 1.0 | 3rd | 0.10 |
specifying use of a cubic spline to get to
the right pitch and amplitude in 0.1 seconds
-
Use the current average amplitude of the source (excitation)
file to control modulation of the string length.
- Try to deduce the pitch of the source and change string
length based on that. It might be most musically interesting
to have the length be drawn from a table of allowable pitches.
Whatever you decide to do, you must write it up like a mini
independent work project.
- What you did
- Why you did it
- How you did it
- Results
- References
Make a web page with the report, the modified code,
some example score files, some example sound files (for input
and output), and
A 66.6 second "musical statement" made using only your new tool.
Put your materials in the usual place by class time on
March 11th.