> Ah, sorry: The patch is correct, but my explanation is wrong. Here's an update:
>
>
> In inversion.pd this is realised by walking through the list with list-map. The
> interval to use next is calculated by taking the difference between the current
> element and the previous element. This interval is substracted (not added,
> because we are "retro"-grading) from the previous note, the resulting note is
> stored for the next step and inserted into the result list. The first element
> in a list is treated specially as it has no previous element: it's just copied
> and used as the starting note.
Frank and all,
Attached is an inversion.pd which is a bit simpler -- usually when
inverting in pitch (rather than pitch-class) it's
easier/simpler/better to invert with respect to an axis of symmetry
rather than with respect to the first pitch in the series (of course
you can assign the first pitch as the axis).
Meanwhile, if you're doing this with pitch-class instead of pitch (in
other words transposing and inverting in a mod 12 universe, which is
what you would probably be doing with 12-tone rows before assigning
specific registers), instead of inverting with respect to an axis of
symmetry, you invert with respect to the sum of the two pitch-classes
in the original and inverted row -- sometimes called the "index" of
inversion. The group theory is even cleaner if you think of
transposition as an addition operator and inversion as a
multiplication operator (in this case multiplication by 11, mod 12).
If you're doing mod 12 operations, there is one more pitch operator --
multiplication by 5 or 7 -- which maps the chromatic scale to the
circle of fifths and vice-versa. Then you can think of retrogression
as "order inversion," and rotation, the other standard order-position
operator, as "order transposition."
If you think it would be useful I can put together the standard
12-tone operators in mod 12 (or for that matter, an assignable
modulus), but of course specific register information disappears. A
more interesting but more difficult project would be to write a list
abstraction to output the set-class of a given set of pitches, with an
assignable modulus.
Matt