back to list

Re: ideal single note retuning widget

🔗Robert Walker <robertwalker@...>

4/5/2002 8:13:07 AM

HI Jeff,

Yes, hard at work on the single note retuning in FTS
:-). Should be ready soon.

I plan to do example files for all five types
- the same one in all formats, and then do some
exploring of things one can only do
with the real time retuning.

Thanks for your help and discussion off-list
about how to do it.

One thing that particularly appeals for my own work
is that it can be used to explore the custom voices,
with a midi voice playing all the partials
found in an fft of a timbre. When you stack
those to make chords, and with many partials
for each note of the chord,you soon run out
of channels for teh pitch bends. I had got over
that to some extent by using multiple midi out
ports, but this will be much more flexible.

I'll do some example files with those custom voices,
as they will be pretty demanding and maybe be
useful benchmarks for the real time retuning.

Then the next upload of FTS will be able to do
single note retuning. It will be
a preliminary version, there is sure to be more to
do for that, but it will give an idea.

Robert

🔗justintonation <JUSTINTONATION@...>

4/6/2002 7:22:20 PM

--- In MakeMicroMusic@y..., "X. J .Scott" <xjscott@e...> wrote:
>
> > This is *fantastic* !!: ) Does this mean that real-time will
> > be supported? I.e single note change without retriggering the
> > key? I have been waiting for this for *ages*. Carl Lumma is
> > someone who would be interested in the details and would
be
> > able to point Michael in the right direction.
>
> > Kudos to NI!
>
> Justin,
>
> Yes! It looks like real-time retuning will finally be
> implemented in an instrument, the FM7 softsynth
> (stand-alone version). Huge thanks to Mike also for his
> lobbying efforts to have this added.
>
> Use of real-time single-note retune messages will
> require a decent software widget that generates them. I
> know Robert is adding some support for these messages
> to his PC FTS and I would like to start planning to
> have this sort of support added to my Mac LMSO tuning
> package in some way. (I understand that there are
> versions of the FM7 for both the Mac and the PC.)
>
> From the standpoint of an active composer, what sort of
> functionality is useful here? How would the widget work
> in performance and in composition?

Would it be possible to have a program that split a keyboard
down the middle.On the right hand side the synth would only be
able to be monophonic for playing melodies and on the left hand
side it would be polyphonic and you could play chords that would
retune to the most consonant [or dissonant if you wanted]
relationships with the melody ? An additional idea is to allow the
right side to change scales via a two way foot pedal. Pressing
foward on the pedal would change the melody scale up the list
and pressing the pedal backwards would make the scale go
down the list. The sounding note on the right hand should slide
up to the new pitch and any sounding notes on the left hand
polyphonic side of the keyboard should retune to whatever the
most desirable relationships are [as programmed].

> Anyone have any music examples that they labored over
> meticulously that could have been simplified if it
> could have been done interactively in real time?

Absolutely. My latest piece [I'll upload it once I get my MP3
conversion tool sorted out] uses heaps of enharmonic pitches
for what is basically a single pentatonic scale. It would have
been nice to be able to bend into a specific pitch while the note
was sounding and also have the chords bend in relation to a
new melody note [barbershop style].

There are alot of songs that I have on standby for want of
dynamic scale changing in real time. I simply cannot compose
things well when my fingers are reaching across for instance 24
pitches, the rhythm gets out.

Justin

🔗Robert Walker <robertwalker@...>

4/8/2002 8:01:11 PM

Hi Justin,

> Would it be possible to have a program that split a keyboard
> down the middle.On the right hand side the synth would only be
> able to be monophonic for playing melodies and on the left hand
> side it would be polyphonic and you could play chords that would
> retune to the most consonant [or dissonant if you wanted]
> relationships with the melody ? An additional idea is to allow the
> right side to change scales via a two way foot pedal. Pressing
> foward on the pedal would change the melody scale up the list
> and pressing the pedal backwards would make the scale go
> down the list. The sounding note on the right hand should slide
> up to the new pitch and any sounding notes on the left hand
> polyphonic side of the keyboard should retune to whatever the
> most desirable relationships are [as programmed].

The split into two regions, one monophonic and one polyphonic is
fine, FTS can do that now.

Changing the scale via a pedal is in it now too, however
you only have a single region for the entire keyboard if you
do it that way at present - it's a case of either the controller method
or the regions method. Also that option isn't that much tested
yet and needs more work and debugging.

So, I'll add a new option to combine both approaches.

The idea of sliding to j.i. relationships barber-shop style
could also be done, but the programming for that seems
complex, especially in real time - getting into JdL's
area!

However, with melody leading the way, and the rest all
accompaniment, I wonder if there is some simple thing
one can do that would be of value, while not being
a completely general type of solution.

One thought is that you choose, say, 7-limit or whatever.

Then go through all the accompanying notes
that are already in play, finding closest 7-limit ratio
for each one with the melody, looking for consonant diads
with the melody.

One could start with a low value of product of denom. and
denum, and then gradually increase that and for each step,
loop round looking for new ratios to find with the melody
or any of the accompanying notes. Also, if a ratio is
just a bit more complex than the optimal one found,
but is consonant with more notes of the chord, use that one
instead. (Customisable by setting weights for each thing).

Keep going up to some value of the product given in advance, and
some desired tolerance.

I.e. idea is that you start with the most easily
perceived consonances and mark those in first, then
add in the others one at a time in order of increasing
complexity.

Not sure what it would sound like but we could try it and see.
It is the sort of thing that might be easy to do if
the ideas fell into place... If it falls out easily
I might just do it now before the release - otherwise,
maybe a bit later on, which I imagine is what is
most likely to happen.

I imagine though that one might well get audible glitches
if you play the chord notes a fraction of a second before
the melody line, as the program wouldn't be able to
anticipate what was going to happen and would have
to retune the notes of the chord even if they had
only been playing for a tiny fraction of a second.
Maybe one could learn to work with that as performer
by playing early in the melody line or something
- always lead the chords with the melody.

I plan a chords section somewhat later on (after release of
FTS and release of my VRML trees program) and will
perhaps get into the various models of consonance and things
then. I plan to do experiments in finding diads and triads,
and to look for chords from the Scala archive of chords
(not yet used in FTS). So that would be an appropriate time
to go into this kind of thing more.

Robert

🔗justintonation <JUSTINTONATION@...>

4/13/2002 4:57:10 AM

--- In MakeMicroMusic@y..., "Robert Walker" <robertwalker@n...>
wrote:
> Hi Justin,
>
> > Would it be possible to have a program that split a keyboard
> > down the middle.On the right hand side the synth would only
be
> > able to be monophonic for playing melodies and on the left
hand
> > side it would be polyphonic and you could play chords that
would
> > retune to the most consonant [or dissonant if you wanted]
> > relationships with the melody ? An additional idea is to allow
the
> > right side to change scales via a two way foot pedal.
Pressing
> > foward on the pedal would change the melody scale up the
list
> > and pressing the pedal backwards would make the scale go
> > down the list. The sounding note on the right hand should
slide
> > up to the new pitch and any sounding notes on the left hand
> > polyphonic side of the keyboard should retune to whatever
the
> > most desirable relationships are [as programmed].

> The split into two regions, one monophonic and one
polyphonic is
> fine, FTS can do that now.

Cool ! Was the purpose of this feature to use the melody as a
sort of immovable fixed tuning anchor for chords to retune to ? Or
was this implemented for some other reason ?

> Changing the scale via a pedal is in it now too, however
> you only have a single region for the entire keyboard if you
> do it that way at present - it's a case of either the controller
method
> or the regions method. Also that option isn't that much tested
> yet and needs more work and debugging.
>
> So, I'll add a new option to combine both approaches.

Wonderful !

> The idea of sliding to j.i. relationships barber-shop style
> could also be done, but the programming for that seems
> complex, especially in real time - getting into JdL's
> area!

Really ? I thought my idea of using the melody zone that does not
bend [except when changing to another melody scale] would
simplify the whole thing immensely. JdL's methond is cool but I
am more interested in a system that treats melody and harmony
seperately. JdL's system does not do this but as I understand it
seems to take an average of all the sounding notes melody and
harmony.

In the method that i favour the biggest chord you could play
would be 6 notes. Five fingers in the left hand region [you could
even limit polyphony on that side] and 1 note [finger] in the
melody zone.

We already know the pitch of the melody so we just have to work
out the most consonant relationships for pitches for the
remaining five notes.

> However, with melody leading the way, and the rest all
> accompaniment, I wonder if there is some simple thing
> one can do that would be of value, while not being
> a completely general type of solution.
>
> One thought is that you choose, say, 7-limit or whatever.
>
> Then go through all the accompanying notes
> that are already in play, finding closest 7-limit ratio
> for each one with the melody, looking for consonant diads
> with the melody.
>
> One could start with a low value of product of denom. and
> denum, and then gradually increase that and for each step,
> loop round looking for new ratios to find with the melody
> or any of the accompanying notes. Also, if a ratio is
> just a bit more complex than the optimal one found,
> but is consonant with more notes of the chord, use that one
> instead. (Customisable by setting weights for each thing).
>
> Keep going up to some value of the product given in advance,
and
> some desired tolerance.
>
> I.e. idea is that you start with the most easily
> perceived consonances and mark those in first, then
> add in the others one at a time in order of increasing
> complexity.

Yep this would be cool. As I am not a programmer I do not know
what is easy or hard.

An idea that I had was basically to do it based on the position of
the notes on the various keys. You would have the notes on the
chordal [left hand] side set with various most consonant
relationships. E.g In the key of C [I do not envisage any key
changing per se in this model]

Left hand

0 1/1 C
1 17/16 or 16/15 ...
2 9/8 or 10/9 or 8/7...
3. 6/5 or 7/6 or 19/16 ...
4. 5/4...
5. 4/3...
6. 7/5...
7. 3/2...
8. 8/5...
9. 5/3
10.7/4 or 9/5...
11. 15/8...
12.2/1

Then on the right hand monophonic section
a scale or a series of scales can be chosen. The following
series of scales is designed to play the [melodic] enharmonic
shifts in the Boomsliter and Creel [melodic theorists] blue
reference [listen to 'Chase in Thailand for it's use.]

Right hand scale 1. [any scale could be used in reality, ideas are
indian scales etc.]
0. 1/1 matches to left hand position 0.
1. 9/8 matches to left hand position 2. [i.e is a second]
2. 7/6 matches to left hand position 3 [i.e it is a minor third]
3. 6/5 matches to left hand position 3 [i.e it is a minor third]
4. 5/4 matches to left hand position 4.
5. 4/3 matches to left hand position 5.
6. 7/5 matches to left hand position 6.
7. 3/2 matches to left hand position 7
8. 8/5 matches to left hand position 8.
9. 5/3 matches to left hand position 9
10.7/4 matches to left hand position 10 [i.e it is a minor 7th]
11.9/5 matches to left hand position 10.[i.e it is a minor 7th]
12. 2/1

Right hand scale 2.
0.1/1 matches to left hand postion 0.
1.25/24 matches to right hand position 1.
2.35/32 matches to right hand position 2.[i.e is wholetone [2nd]]
3.9/8 matches to right hand position 2. [i.e is a wholetone]
4. 5/4 matches to right hand position 4.
5. 45/32 matches to left hand postion 6.[i.e it is a tritone]
6. 35/24 matches to left hand position 7. [i.e it would be classed
as a fifth]
7. 3/2 matches to left hand position 7.
8. 25/16 matches to left hand position 7 [i.e it is an augmented
fifth]
9. 5/3 matches to left hand position 9.
10. 7/4 matches to left hand position 10.
11. 15/8 matches to left hand position 11.
12. 2/1

There are other scales to provide a full complement of
enharmonic melodic shades. I will not list them all here though.
One of them has no tonic and others have compressed octaves
[63/32] but it all behaves the same way as I have shown above.

The only sliding of pitches on the right hand will be when a new
melodic scale is selected via two way foot pedal or some other
method.

> Not sure what it would sound like but we could try it and see.
> It is the sort of thing that might be easy to do if
> the ideas fell into place... If it falls out easily
> I might just do it now before the release - otherwise,
> maybe a bit later on, which I imagine is what is
> most likely to happen.
>
> I imagine though that one might well get audible glitches
> if you play the chord notes a fraction of a second before
> the melody line, as the program wouldn't be able to
> anticipate what was going to happen and would have
> to retune the notes of the chord even if they had
> only been playing for a tiny fraction of a second.

Would this be a problem though ? I have found that in my
experience out of tune- ness is more a melodic thing than a
harmonic thing. I have noticed that I can really warp the harmony
but as long as the melody sounds stable and intact it does not
sound unmusical. I personally really love the sound of notes
sliding into tune, whether this happens fast or slow could be
something that is set aswell. This is what you mean as glitches?
Perhaps they will be not glitches but rather devices that can be
used knowingly for expressive purposes.

> Maybe one could learn to work with that as performer
> by playing early in the melody line or something
> - always lead the chords with the melody.

Sure. Any new instrument or technology evolves new playing
styles.

> I plan a chords section somewhat later on (after release of
> FTS and release of my VRML trees program) and will
> perhaps get into the various models of consonance and things
> then. I plan to do experiments in finding diads and triads,
> and to look for chords from the Scala archive of chords
> (not yet used in FTS). So that would be an appropriate time
> to go into this kind of thing more.

I am looking foward to it ! : )

> Robert

🔗Robert Walker <robertwalker@...>

4/15/2002 6:49:41 AM

Hi Justin,
>
> > The split into two regions, one monophonic and one
> polyphonic is
> > fine, FTS can do that now.
>
> Cool ! Was the purpose of this feature to use the melody as a
> sort of immovable fixed tuning anchor for chords to retune to ? Or
> was this implemented for some other reason ?

It's result of combining things already there. I have split into
regions for the keyboard. Each region then plays a separate
"part" which is an FTS concept but corresponds to the midi in channel
when relaying from several midi in channels at once.

The way it is normally used in FTS, each part also has a voice associated
with it - you can set this in FTS, or you can set it by changing
the voice from the midi in channel.

When playing from a single midi keyboard one can divide the keyboard into
regions for each part, and then do things with those that one could
normally only do with separate midi in channels, e.g. set
modulation and other effects separately for each region of the keyboard.

Because they are used with the midi in channels, there are 16 parts,
though for other uses, there is no reason in principle why one
mightn't have more than 16 parts..

Then you can set various things for each part. E.g. you can
set the amount of polyphony, choose which midi out channels
to relay each one to (since pitch polyphony needs several
midi out channels for each midi in channel), and so on.
You can also select a scale for each part separately,
also choose to use one of the parts to do tonic shifts

> > Changing the scale via a pedal is in it now too, however
> > you only have a single region for the entire keyboard if you
> > do it that way at present - it's a case of either the controller
> method
> > or the regions method. Also that option isn't that much tested
> > yet and needs more work and debugging.
> >
> > So, I'll add a new option to combine both approaches.
>
> Wonderful !

Well, I've added the option to combine both in, but not done much
work on it other than just add the option to a drop list - need to
think about where it fits in with the rest.

>
> > The idea of sliding to j.i. relationships barber-shop style
> > could also be done, but the programming for that seems
> > complex, especially in real time - getting into JdL's
> > area!
>

> Really ? I thought my idea of using the melody zone that does not
> bend [except when changing to another melody scale] would
> simplify the whole thing immensely. JdL's methond is cool but I
> am more interested in a system that treats melody and harmony
> seperately. JdL's system does not do this but as I understand it
> seems to take an average of all the sounding notes melody and
> harmony.
>

I think it would simplify things maybe a bit.
Here is an example to explain why it is still complicated.

E.g. keeping to music in C major, suppose that you use
as a just intonation diatonic scale
1/1 9/8 5/4 4/3 3/2 5/3 15/8 2

I, IV and V pure, but II isn't:

4/3 5/3 1/1 5/4 3/2 15/8 9/8 4/3 5/3
IV I V II

Now in right hand you play a melody, and reach an A 5/3.
Accompany that with a II chord in left hand. Then since
we are keeping the right hand notes fixed, without shifts,
the left hand chord needs to be tuned
10/9 4/3 5/3

Now, keeping that chord sounding, right hand melody
descends A F D - well it will have to be tuned
as 5/3 4/3 10/9 won't it, or it will sound out of tune
with the accompaniment.

So we have a shift from 9/8 to 10/9 for the second in
right hand.

Now continue D B G in right hand accompanied by
a V chord, and you have to end up at 40/27 for the fifth
_in the melody line_

So by now we see that we definitely have a case of comma drift.

An alternative is to let the melody continue as
5/3 4/3 9/8
- and then retune the entire II chord in left hand
so the whole chord slides about in pitch as the
melody changes. So you use 10/9 4/3 5/3 as before,
and when you get to the 9/8 in the
melody line, the entire II chord shifts up in pitch
by a syntonic comma. I think that might be rather noticeable
though (can be okay if one is doing it as a composer and
choosing to use this effect, but not so desirable I think
if automated).

So, I think maybe we have to let the melody line
shift in tonic, or drift in tonic too. I wonder what you
think?

At present with the tonic drift method, you can let
the tonic drift and then if it has drifted too far,
you can press a tonic shift key twice, which retunes
that note to the original pitch. E.g. with tonic drift
method if you change tonic to A by hitting that key once,
then it does it with tonic drift, but if you hit it twice
in succession, it does a reset, shifts tonic back to A
with A at its original tuning.

The idea of listing several alternatives to use for the left hand
seems a possiblity one could investigate - a finite
list of alternatives, limiting the comma drift, ..

Anyway I think perhaps the best thing is if I make sure it
is working fine doing the tonic shifts on demand from
player, as well as possible at the moment. That is enough
of a programming challenge for the time being I must say
- and several things still to do.

It's possible to add the tonic shifts after the event
- you play the piece in a well temperament say,
then go through and figure out the tonic for each
section and add the tonic shifts in a separate tonic
shifts midi channel and play that through FTS.

Maybe after you have tried the various options out and seen how it
works, and whether you like the program for that matter,
maybe then we can think about ways of automating it,
if it seems possible.

I'll also think about it too.

I've got a few ideas in mind. Including the one I mentioned
before.

One idea following from your suggestions is to designate
one part as the melody line
and then when one has tonic drift, do it so that
the melody line doesn't shift, instead of doing it
so that the new tonic doesn't shift in pitch which
is as it is now. (if no note is playing in melody part
then keep the new tonic the same pitch as before, as it is now).
That doesn't sound too hard to do.

Another idea is to list chords that are okay in
the tuning you are using, e.g. that it is j.i twelve tone with I, V and IV
pure (or maybe FTS finds these for you and then you edit the resulting
list of chords).

Then if you play a II chord, FTS could tonic
shift (or drift) to the nearest new tonic around the circle
of fifths that has a pure major triad for that chord
- in this case I imagine it would be to the D, with the
I chord of D minor functioning as the II.

In this case the tonic shift would happen as soon as
FTS can recognise the chord - prob. immediately after
all three notes have been played - and would be done
to keep the melody line at the same tuning as it had
before the shift. Then when melody drifts too far you
press a reset button (need to decide what that is
- e.g. specific midi keyboard key, or controller, or maybe
character on keyboard) to get it back again.

Sudden pitch shifts immediately after
the start of a note are prob. inevitable
in the accompaniment (e.g. slightly broken chord and
as later notes come in the pitch of earlier notes
gets shifted to tune). I'm not sure whether this
will sound nice or not. If it isn't too hard to
program when the time comes I may just program it in
so we can try it out and see if it sounds okay.

Generally as programmer, automated retuning of chords and
choosing of tonic shifts seems like a tricky area
to program, esp. in real time. May be possible if
one can find some kind of limited kind of range of things
that one wants to be able to do that happens to fit
in with suitable programming methods.

Robert