back to list

Project Retune: my adaptive JI methods

🔗John A. deLaubenfels <jadl@xxxxxx.xxxx>

9/21/1999 10:22:49 AM

There has been some interest expressed in how I retuned the Beethoven
Pathetique Sonata on my web site, so here's a brief description. To
set forth "exactly" how it's done, as one list member requested, would
take thousands of lines of jabbering and would leave everyone asleep.
Also, while I very much encourage others to do what I do, and to do me
one better if possible, it seems fair for each of us to do some of the
"grunt work" ourselves.

First, the limitations of my methods that I am aware of:

. I consider all pairs of notes simultaneously sounding, but do not
consider interactions of three or more notes. One implication: if
sub-minor tuning is encouraged, so will "super-major" triads.

. I do not consider inversions any differently from non-inversions.
Every set of notes is resolved to a set of "pitch12's", with no
consideration of the octave(s) that a given pitch12 comes from.

. I do not attempt to divine the home key of a piece. Modulations
get equal consideration to the first and final chords.

. Because I effect tuning using pitch bends, multi-voice sequences
can't be retuned using my program (fancy sound cards that listen
on many ports could support multiple voices, but the program
doesn't, yet...).

. I do not consider any implications of the timbre of a voice.

. I use General Midi, and don't support the unique characteristics
of specific synthesizers.

A general description of what the program does:

. The sequence is read into program memory. I use a long linked list
so that events can be added and removed easily.

. A user-selected set of tuning file(s) is read into memory. Each
file is nothing more than a bend set and a numerical rating of the
desirability of each of the intervals formed, which I've pulled out
of the air over time. Each tuning is assumed applicable in any of
12 keys.

. Each note-on / note-off pair is resolved into a volume for a
particular pitch12 for a particular range of time.

. Each range of time having a constant set of pitch12 volumes is
evaluated against all possible tunings present in the program, and
the best tuning is picked based upon the summation of the
"goodness" of each pair of notes as tuned.

The first Pathetique posting, almost 300K long, did no more than apply
bends to match the above. The result is interesting, but incomplete:
the tuning is "constantly" changing, and therefore sounds glitchy in
many places. To add refinement,

. Adjacent tunings form a "seam", the characteristics of which depend
upon the tuning on each side as well as the pitch12's sounding
before, during and after the seam. Many seams can be evaluated to
be unworkable because of the "pain" of retuning notes continuously
sounding. Thus, a process of condensation begins, drastically
reducing the number of seams and therefore the byte length of the
sequence. The Pathetique is at about 109K now, down from 297K!

Sometimes the set of notes present on each side of a seam "forces" the
retuning of notes continuously sounding, and it's worth the pain of
transition to get the pleasure of nice tuning on both sides. The
program has adjustable coefficients, so that one can tend to achieve
either:

. fewer transitions and therefore less retuning pain, in exchange for
some passages not being tuned ideally.

. more transitions, more retuning pain, but better tuning in each
small moment of time.

I pick a set of coefficients that seems to my ears to strike about the
right balance, but, once the program is polished enough to share, others
can pick their own values to achieve a different balance.

I haven't yet mentioned "drift", the tendency of the absolute tuning of
a piece to move in time in response to "comma pump" sequences, the
simplest of which may be C-A-D-G-C (long minor third down plus three
short fourths up, ending a syntonic comma flat; to put it another way,
5/6 * 4/3 * 4/3 * 4/3 = 320/162 = 80/81 (after octave correction)).
Right now, the program "takes" drift and then exponentially decays it
away, a not very sophisticated approach, but serviceable.

Well, that's enough to either bore or whet the appetite of fellow
listers. Any questions? Any alternate theories, methods that might be
superior?

JdL

🔗manuel.op.de.coul@xxx.xxx

9/22/1999 2:40:05 AM

> Any alternate theories, methods that might be superior?

The best approach I have heard so far is from Bill Sethares, described
in his book "Tuning, Timbre, Spectrum, Scale", see the chapter about
adaptive tunings. A link to the web page about it is in the tuning
bibliography. He takes the sound spectrum into consideration, but even
if you don't want to do that, listening to the sound examples on the
CD supplied with the book is instructive. There are a few bars of a
Scarlatti sonata retuned by different methods.
The big difference comes from retuning sounding notes slowly instead
of suddenly. Try it!

Manuel Op de Coul coul@ezh.nl

🔗Paul H. Erlich <PErlich@xxxxxxxxxxxxx.xxxx>

9/22/1999 11:18:31 AM

Manuel wrote,

>The big difference comes from retuning sounding notes slowly instead
>of suddenly. Try it!

John d.L. has already made the point that this would be preferable, in case
you missed that. Anyway, I'm curious, John: Since everything is
mirror-symmetrical in your program, what happens to dominant ninth chords?
It would seem that your program would have no way to decide between
4:5:6:7:9 and 1/9:1/7:1/6:1/5:1/4, since they are equally close to 12-tET
and have the same intervals.

🔗Carl Lumma <clumma@xxx.xxxx>

9/22/1999 10:03:12 PM

>4:5:6:7 is a common tuning for the dominant seventh chord in barbershop
>music, but is more controversial for classical music.
>
>I haven't been able to get his retuned sequences to work on my computer,

The controversy should disappear when you do; certainly both of these
tunings are viable for the sonata.

>I wouldn't use it except for the augmented sixth chord, where it is
>historically appropriate.

Bach chorales harmonize nicely with 4:5:6:7 dominants in many spots,
speaking by way of classical theory.

And please acknowledge that this way of speaking is generally at a loss to
explain what is possible when notes can be retuned while they are sounding,
and when modulations can by made by intervals outside the scale.

>First of all, I would like to say that I don't like the idea of using just
>intonation for Mozart and Bach,

Why not? Mozart is a sucker for it. Bach probably reaches maximum
goodness with extended meantone, save the chorales (in adaptive JI).

>there is certainly no "official solution" recognized by "USA".

So? (USA = unsigned agreement?)

>But anyway, I believe Mozart did occasionally reinterpret German augmented
>sixths as dominant seventh, while Bach did not, so that's one excuse for
>using 4:5:6:7 for Mozart but not Bach.

Eh? One could just as well tune augmented sixths as 7/4's and dominant
sevenths as 9/5's when resolving the 6th chord to the V.

-C.

🔗John A. deLaubenfels <jadl@xxxxxx.xxxx>

9/23/1999 9:20:32 AM

[me, TD 326.7:]
>> Any alternate theories, methods that might be superior?

[Manuel Op de Coul, TD 327.1:]
> The best approach I have heard so far is from Bill Sethares, described
> in his book "Tuning, Timbre, Spectrum, Scale", see the chapter about
> adaptive tunings. A link to the web page about it is in the tuning
> bibliography. He takes the sound spectrum into consideration, but even
> if you don't want to do that, listening to the sound examples on the
> CD supplied with the book is instructive. There are a few bars of a
> Scarlatti sonata retuned by different methods.

Thanks for the reference; I just ordered the book from Amazon.com! Is
Bill still on the list? (I'm pretty sure I remember seeing his name when
I first joined early this year).

[Manuel Op de Coul, TD 327.1:]
> The big difference comes from retuning sounding notes slowly instead
> of suddenly. Try it!

[Paul Erlich, TD 327.11:]
> John d.L. has already made the point that this would be preferable, in
> case you missed that.

Yes, I have made that point, and I have used gradual bends, including
in the existing version of JI Relay (April 1999), but Manuel has caught
me: I haven't yet added gradual retuning to the Project Retune program
used on the Pathetique. It's just about next on my list of things to
do! To my ear, gradual retuning is most important for horns and winds,
in which there is a non-percussive start to new notes that doesn't
"cover" bends to already-sounding other notes. But I'm gonna get it in
there!

[Paul Erlich, TD 327.11:]
> Anyway, I'm curious, John: Since everything is mirror-symmetrical in
> your program, what happens to dominant ninth chords? It would seem
> that your program would have no way to decide between 4:5:6:7:9 and
> 1/9:1/7:1/6:1/5:1/4, since they are equally close to 12-tET and have
> the same intervals.

Good question! The answer is that I don't QUITE go entirely on the
basis of pairs of notes alone. The program is told to load one or more
tuning files into memory. This gives a finite set of possible tunings
for each moment in time (for me, it's typically 13: 12 permutations of
JI seven-limit and one 12-tet for things that won't JI tune well (see
previous discussions for examples)). In order to achieve a utonal
1/9:1/7:1/6:1/5:1/4, I'd need a tuning file which in and of itself
provided tuning for such a chord, which I don't! (I want to try it,
though, and see what it sounds like!).

It would be more difficult, but perhaps not impossible, to manipulate
the tuning files to achive sub-minor chords without super-major ones;
I'd have to give that more thought.

[Paul Erlich, TD 327.17:]
> (I haven't been able to get his retuned sequences to work on my
> computer, though other microtonal MIDI files have in the past).

Dang! Are you streaming from the web, or are you downloading the file
and playing it locally? (I recommend the latter). Is it out of tune, or
does it not play at all?

JdL

🔗Paul H. Erlich <PErlich@xxxxxxxxxxxxx.xxxx>

9/23/1999 12:51:05 PM

Carl Lumma wrote,

>And please acknowledge that this way of speaking is generally at a loss to
>explain what is possible when notes can be retuned while they are sounding,
>and when modulations can by made by intervals outside the scale.

Yes, it's very important to keep these issues in mind. I was thinking in
terms of John's project, where there is no limitation on the total number of
pitches, short-term sliding will hide comma shifts, and long-term sliding
will hide comma drifts.

I wrote,

>>But anyway, I believe Mozart did occasionally reinterpret German augmented
>>sixths as dominant seventh, while Bach did not, so that's one excuse for
>>using 4:5:6:7 for Mozart but not Bach.

Carl Lumma wrote,

>Eh? One could just as well tune augmented sixths as 7/4's and dominant
>sevenths as 9/5's when resolving the 6th chord to the V.

I said _reinterpret_, not _resolve_. This would happen when modulating up a
minor second.

🔗Paul H. Erlich <PErlich@xxxxxxxxxxxxx.xxxx>

9/23/1999 1:35:30 PM

John deLaubenfels wrote, wrote,

>This gives a finite set of possible tunings
>for each moment in time (for me, it's typically 13: 12 permutations of
>JI seven-limit and one 12-tet for things that won't JI tune well (see
>previous discussions for examples)). In order to achieve a utonal
>1/9:1/7:1/6:1/5:1/4, I'd need a tuning file which in and of itself
>provided tuning for such a chord, which I don't! (I want to try it,
>though, and see what it sounds like!).

>It would be more difficult, but perhaps not impossible, to manipulate
>the tuning files to achive sub-minor chords without super-major ones;
>I'd have to give that more thought.

I'd love to see your finite set of tunings and discuss other possibilities
with you. By the way, what do you think is the right tuning for the
half-diminished seventh chord: 1/7:1/6:1/5:1/4, or 5:6:7:9? I think I would
allow context to decide, and might have to slide between the two in some
situations.

>Dang! Are you streaming from the web, or are you downloading the file
>and playing it locally? (I recommend the latter). Is it out of tune, or
>does it not play at all?

I didn't notice any streaming going on when I successfully played the 12-tET
file, so I assume it loaded first (I have a fast connection). The other
files were said to contain errors.

🔗John A. deLaubenfels <jadl@idcomm.com>

9/24/1999 10:36:17 AM

[Paul Erlich, TD 329.15 - problems playing retuned files...]

Paul, it sounds like you were streaming from the web. Please try
downloading the files to your local drive before you play them. The
sizes should be:

105613 be-ps-08z5.mid
101793 be-ps-08z7.mid

If you don't get this number of bytes, I'll be glad to e-mail you the
files. I actually have slightly more up-to-date retunings that aren't
on the web site yet - I don't want to post everyone to death! If you DO
get this number of bytes and still can't play the file, I'd say, try
another player program. Are you running Win 95/98? Media Player works
well.

[Paul:]
> I'd love to see your finite set of tunings and discuss other
> possibilities with you.

Sounds good! Clearly I haven't explored the possibilities in depth.

> By the way, what do you think is the right tuning for the
> half-diminished seventh chord: 1/7:1/6:1/5:1/4, or 5:6:7:9? I think I
> would allow context to decide, and might have to slide between the two
> in some situations.

I've got to confess - I've never tuned it 1/7:1/6:1/5:1/4; that would
of course be consistent with the "reverse dominant ninth" for which a
new tuning file would be needed.

The following are the current contents of the "just7.tun" file:

#
# just7.tun
#
# modification history:
# 08-17-99 (jdl): new from just1.tun.
#
#
#
#
# tuning:
# cols 1-8 have mbu for +/- 1 semitone voice; halve for +/- 2 (usual):
# (81.92 mbu/cent at this scale; 40.96 mbu/cent at +/- 2):
#
0 # 0; the reference, "C"
0 # 1; has no known harmonic place in the scale...
+320 # 2; 9/8 of C
+1281 # 3; 6/5 of C
-1121 # 4; 5/4 of C
-160 # 5; 4/3 of C
-801 # 6; 15/16 of 7
+160 # 7; 3/2 of C
+1121 # 8; 4/5 of 12
-1281 # 9; 5/6 of C
-2553 # A; 7/8 of C: 7-limit!!!
-961 # B; 15/16 of C

# interval goodness:
# 6 as 15/16 of 7; 8 as 4/5 of 12:
# interval starting at:
# 0 1 2 3 4 5 6 7 8 9 10 11
# interval 0:
+8 -16 0 0 0 0 -16 0 -16 0 0 0
# interval 1:
-16 -16 +8 -16 +8 -16 0 -16 -128 -16 0 +16
# interval 2:
+8 -32 0 0 -8 +8 -128 0 -128 +8 0 -32
# interval 3:
0 -32 -64 -16 +16 +8 -64 +4 -128 +8 -64 +8
# interval 4:
+32 -64 0 +16 -256 +16 -128 +24 +8 -64 0 -128
# interval 5:
0 -256 +8 -8 0 -256 -8 +16 -256 -256 -256 0
# interval 6 (must repeat identical groups of 6):
-16 -32 -32 -32 +8 -16 -16 -32 -32 -32 +8 -16

[end of file...]

This is probably confusing as heck. The first section gives the actual
tuning to use. Note 4 is tuned -1121 "Midi Bend Units" (mbu), which
works out to -1121/81.92 = -13.68 cents, a more familiar number for
adjusting E to sound well against C (-13.69 is theoretical, but anything
finer than 1 mbu is unachievable with midi anyway...).

The second section tells how "good" each resultant interval is. If we
play, say, D and F together, that's interval 3 starting at 2, which
shows -64: pythagorean tuning does not make a good minor third. On the
other hand, E and G together are interval 3 starting at 4, which shows
+16: it's tuned 5:6, which is very good.

JdL