Music 171 homework 7
prototypical vocal synth
This assignment is designed to give you practice with qlists and
delay lines. There's no relationship between the two, it's just
what's happening in the course right now. The assignment is to use
a recirculating comb filter and a qlist-based sequencer to make our
tedious radio announcer sing his phrase "soft and relaxing". The
melody I chose was the playground chant sometimes known as "I'm the
king of the castle" but you're free to choose your own if you can
think of something more interesting.
To impose your own pitch on the sound of the recorded voice,
send it through a recirculating comb filter (a delay loop with a
short delay time tuned to the desired period). Here's how to do it
(as usual, 2 points for each step below):
- Make a sampler, which could be simply based on "tabplay", that
plays from a wavetable with the familiar "voice.wav" sample. The
sample should be read with a "loadbang" message using the
soundfiler object, and should be long enough to hold the whole
sample (hint: the soundfiler object can be directed to resize the
wavetable to fit the sample you're loading). There should be a way
to control the start location in the wavetable, and the duration of
the output (playback time), controlling the output amplitude with a
line~ and using the usual de-clicking strategy.
- Make a recirculating delay line with delwrite~ and vd~ (use the
interpolating vd~ object, not the non-interpolating delread~, to
get the most accurate control over delay length that you can - this
will affect pitch accuracy later). The recirculation gain can be
set to 0.9. The delay length should be set to 1000 divided by the
desired resonant pitch in Hz.
- Set up a control structure as follows. Make a receive name
("note" would be fine) unpacked into three parameters: wavetable
onset, playback time, and resonant pitch (as a MIDI number) for the
comb filter. So that you can test it, also make a setup that packs
the output of three number boxes into a message to the same
receive, so that changing any of the three number boxes causes a
new "note" to come out.
- Make a qlist object with a "bang" (button) to start it. A
message in the qlist lke "note 1000 200 60" should then go to the
receive you built in the previous step and make an audible note
when you start it via "bang".
- Make the sequence. Mine consisted of the pitches 60, 57, 62,
60, 57. The first one cam out immediately and the succeeding ones
with delays of 1, 2/3, 1/3, and 1 "beat" respectively (I used 600,
400, 200, 600, but then ended up setting the tempo (a message to
the qlist object) to 1.1 or 1.2 to speed things up slightly).
IMPORTANT: contrarry to something I said in class last week, the
qlist object does NOT save its contents in the containint patch -
instead, it's best to use "write" and "read" messages to the qlist
object to save its sequence between sessions, and make it "read"
the file with a loadbang.
Your successful patch should sound something like this (but not necessarily that exact
melody).
back to music 171 main page