replace in opening quotations
This commit is contained in:
28
node73.html
28
node73.html
@@ -122,7 +122,7 @@ This has the advantage of being more explicit than the <TT>throw~</TT> /
|
||||
problem.
|
||||
|
||||
<P>
|
||||
The main job of the patch, though, is to distribute the ``note" messages to
|
||||
The main job of the patch, though, is to distribute the "note" messages to
|
||||
the <TT>sampvoice</TT> objects. To do this we must introduce some new Pd
|
||||
objects:
|
||||
|
||||
@@ -149,8 +149,8 @@ There is also an integer division object named <TT>div</TT> ; dividing 17 by
|
||||
<A NAME="4912"></A>Polyphonic voice allocator. Creation arguments give the number of
|
||||
voices in the bank and a flag (1 if voice stealing is needed, 0 if not).
|
||||
The inlets are a numeric tag at left and a flag at right indicating whether
|
||||
to start or stop a voice with the given tag (nonzero numbers meaning ``start"
|
||||
and zero, ``stop"). The outputs are, at left, the voice number, the tag
|
||||
to start or stop a voice with the given tag (nonzero numbers meaning "start"
|
||||
and zero, "stop"). The outputs are, at left, the voice number, the tag
|
||||
again at center, and the start/stop flag at right. In MIDI applications, the
|
||||
tag can be pitch and the start/stop flag can be the note's velocity.
|
||||
|
||||
@@ -163,13 +163,13 @@ tag can be pitch and the start/stop flag can be the note's velocity.
|
||||
SRC="img398.png"
|
||||
ALT="\fbox{ \texttt{makenote}}">:
|
||||
<A NAME="4913"></A>Supply delayed note-off messages to match note-on messages. The inlets are
|
||||
a tag and start/stop flag (``pitch" and ``velocity" in MIDI usage) and the
|
||||
a tag and start/stop flag ("pitch" and "velocity" in MIDI usage) and the
|
||||
desired duration in milliseconds. The tag/flag pair are repeated to
|
||||
the two outlets as they are received; then, after the delay, the tag is
|
||||
repeated with flag zero to stop the note after the desired duration.
|
||||
|
||||
<P>
|
||||
The ``note" messages contain fields for pitch, amplitude, duration,
|
||||
The "note" messages contain fields for pitch, amplitude, duration,
|
||||
sample number, start location in the sample, rise time, and decay time. For
|
||||
instance, the message,
|
||||
<PRE>
|
||||
@@ -177,7 +177,7 @@ instance, the message,
|
||||
</PRE>
|
||||
(if received by the <TT>r note</TT> object)
|
||||
means to play a note at pitch 60 (MIDI units), amplitude 90 dB, one second
|
||||
long, from the wavetable named ``sample2", starting at a point 500 msec
|
||||
long, from the wavetable named "sample2", starting at a point 500 msec
|
||||
into the wavetable, with rise and decay times of 10 and 20 msec.
|
||||
|
||||
<P>
|
||||
@@ -192,7 +192,7 @@ a unique number corresponding to the note.
|
||||
The next step is to use the <TT>poly</TT> object to determine which voice to play
|
||||
which note. The <TT>poly</TT> object expects separate messages to start
|
||||
and stop tasks (i.e., notes). So the tag and duration are first fed to the
|
||||
<TT>makenote</TT> object, whose outputs include a flag (``velocity") at
|
||||
<TT>makenote</TT> object, whose outputs include a flag ("velocity") at
|
||||
right and the tag again at left. For each tag <TT>makenote</TT> receives, two pairs
|
||||
of numbers are output, one to start the note, and another, after a delay
|
||||
equal to the note duration, to stop it.
|
||||
@@ -200,7 +200,7 @@ equal to the note duration, to stop it.
|
||||
<P>
|
||||
Having treated <TT>poly</TT> to this separated input, we now have to strip
|
||||
the messages corresponding to the ends of notes, since we really only need
|
||||
combined ``note" messages with
|
||||
combined "note" messages with
|
||||
duration fields. The <TT>stripnote</TT> object does this job. Finally, the
|
||||
voice number we have calculated is prepended to the seven parameters we
|
||||
started with (the <TT>pack</TT> object), so that the output of the
|
||||
@@ -208,11 +208,11 @@ started with (the <TT>pack</TT> object), so that the output of the
|
||||
<PRE>
|
||||
4 60 90 1000 2 500 10 20
|
||||
</PRE>
|
||||
where the ``4" is the voice number output by the <TT>poly</TT> object.
|
||||
where the "4" is the voice number output by the <TT>poly</TT> object.
|
||||
The voice number is used to route the message
|
||||
to the desired voice using the <TT>route</TT> object. The appropriate
|
||||
<TT>sampvoice</TT> object then gets the original list starting with
|
||||
``60".
|
||||
"60".
|
||||
|
||||
<P>
|
||||
Inside the <TT>sampvoice</TT> object (Figure <A HREF="#fig04.21">4.21</A>), the message
|
||||
@@ -239,20 +239,20 @@ list generated by the <TT>pack</TT> object at the center of the voice patch.
|
||||
|
||||
<P>
|
||||
We arbitrarily decide that the ramp will last ten thousand seconds (this is the
|
||||
``1e+07" appearing in the message box sent to the wavetable index generator),
|
||||
"1e+07" appearing in the message box sent to the wavetable index generator),
|
||||
hoping that this is at least as long as any note we will play. The ending index
|
||||
is the starting index plus the number of samples to ramp through. At a
|
||||
transposition factor of one, we should move by 441,000,000 samples during those
|
||||
10,000,000 milliseconds, or proportionally more or less depending on the
|
||||
transposition factor. This transposition factor is computed by the <TT>mtof</TT> object, dividing by 261.62 (the frequency corresponding to MIDI note 60) so
|
||||
that a specified ``pitch" of 60 results in a transposition factor of one.
|
||||
that a specified "pitch" of 60 results in a transposition factor of one.
|
||||
|
||||
<P>
|
||||
These and other parameters are combined in one message
|
||||
via the <TT>pack</TT> object so that the following message boxes can
|
||||
generate the needed control messages. The only novelty is
|
||||
the <TT>makefilename</TT> object, which converts numbers such as ``2" to
|
||||
symbols such as ``sample2" so that the <TT>tabread4~</TT> object's
|
||||
the <TT>makefilename</TT> object, which converts numbers such as "2" to
|
||||
symbols such as "sample2" so that the <TT>tabread4~</TT> object's
|
||||
wavetable may be set.
|
||||
|
||||
<P>
|
||||
|
||||
Reference in New Issue
Block a user