back to list

Fractal Tune Smithy: Is it MULTI-timbral?

🔗klergstudios <klergstudios@...>

5/28/2007 7:55:02 PM

I use Midi Yoke Junction for my loopback MIDI cable and Sonar 6 Pro as
my sequencer under XP Home SP2. Whenever i relay FTS 2.4 to Sonar i
can only get ONE patch (instrument) to sound on ANY of the 16 MIDI
channels. That is, if CH.1 is a hammond organ, then CH.2 will also be
a hammond organ, even if i choose another patch in Sonar. I read the
lengthy manual, and i was advised to goto the 'Parts' menu of FTS, and
inside there i am supposed to assign patches via the 'Voices' dialog
box. I did this, but it made NO difference.

The one exception however, is CH.10 it is assigned as the percussion
drum kit. That makes FTS, for lack of a better word, DI-Timbral. I'm
trying to retune my Audigy 2 ZS soundfont synth, by the way. Unless i
can make FTS work properly, i may resort to a 'microtonal' soundfont
player, if one even exists. It makes no sense to buy FTS unless it's
capable of being MULTI-timbral, since i'm sure there are freeware
alternatives that are least monotimbral. Some help would be most
appreciated.

Thanks in advance.

🔗Robert walker <yahoogroups@...>

5/31/2007 7:01:07 AM

Hi there,

Sorry about the delay in replying - I am hard at work on FTS 3.0 getting the
final release ready and don't read this list as often as I used to.

If you want a quick response on FTS it is best to contact me directly.

Anyway - yes FTS is multi-timbral. It automatically takes care of the channel
remapping and keeps track of which instruments have been relayed to which
of the channels - and if necessary sends patch change messages.
So if one of the parts needs a lot of pitch polyphony at a particular point
in the tune, then FTS will allocate more channels for that instrument.
When a part is only monophonic then FTS may only allocate a couple of
channels to it most of the time (usually two rather than one to allow for
note off releases).

That's true already in FTS 2.4 indeed for some time - as you can tell
from the midi clips of fractal tunes on the web site, which are often
multi-timbral and are made in FTS 2.4 and earlier.

So then the question is - why isn't it playing multi-timbrally when relayed
to Sonar.

I'm not sure, you would need to investigate, but may be to do with the
settings in:
Out | Options | More Midi Out Options
- try the GM Synth preset to start with.

If that doesn't sort it out and you are interested to follow it up further it
is best to work with FTS 3.0 as that will be released very soon,
maybe a week or so now. Let me know and I will give you a
url to download it and we can continue discussion off-list until
it is sorted out. FTS 3.0 has a Soundcard / Synth wizard in its
Out menu which one can use to set it up appropriately for the
currently selected Out device.

Thanks,

Robert
Fractal Tune Smithy: Is it MULTI-timbral?
Posted by: "klergstudios" klergstudios@... klergstudios
Mon May 28, 2007 7:55 pm (PST)
I use Midi Yoke Junction for my loopback MIDI cable and Sonar 6 Pro as
my sequencer under XP Home SP2. Whenever i relay FTS 2.4 to Sonar i
can only get ONE patch (instrument) to sound on ANY of the 16 MIDI
channels. That is, if CH.1 is a hammond organ, then CH.2 will also be
a hammond organ, even if i choose another patch in Sonar. I read the
lengthy manual, and i was advised to goto the 'Parts' menu of FTS, and
inside there i am supposed to assign patches via the 'Voices' dialog
box. I did this, but it made NO difference.

The one exception however, is CH.10 it is assigned as the percussion
drum kit. That makes FTS, for lack of a better word, DI-Timbral. I'm
trying to retune my Audigy 2 ZS soundfont synth, by the way. Unless i
can make FTS work properly, i may resort to a 'microtonal' soundfont
player, if one even exists. It makes no sense to buy FTS unless it's
capable of being MULTI-timbral, since i'm sure there are freeware
alternatives that are least monotimbral. Some help would be most
appreciated.

Thanks in advance.

[Non-text portions of this message have been removed]

🔗Robert walker <yahoogroups@...>

5/31/2007 7:15:43 AM

Hi there,

You have to contact me directly and ask for the url. I prefer to know who is trying out the
program at this stage until the release.

Yes - you can only have one pitch bend in a channel at once. The reason is because
the pitch bend in midi affects all notes in the channel simultanesously rather than
individual notes.

It is actually possible to write a synth that will respond to pitch bends
only at the note on - in that case you get pitch bend polyphony within a single channel
within the midi spec, but notes can't be bent after they start to sound.

The other possibility is to have some way in which the pitch bend only applies to a
single note - or to use tuning tables. The tuning tables approach is already
included in Midi but unfortunately the standard MTS sysexes aren't widely
supported, and custom tuning tables use a huge variety of different formats
so are synth dependent - Scala can do most of them but FTS can't as
I haven't specialised in that.

But anyway - FTS gets around that sending the notes for a single part to more than
one channel. That works if the music is lightly polyphonic or doesn't use too
many different instruments / effects. You can play on several out devices
simultaneously so can take advantage of your extra Audigy devices - they
appear as extra devices in the Out menu and you can use them using
Out | Play on several devices at once. That option is already in 2.4
though I think I did some improvements for 3.0.

Anyway if you want to try out 3.0 - or if anyone else here wants to for that
matter - just let me know and I'll send you a url to download the latest
release candidate to give it a go.

Thanks,

Robert

Re: Fractal Tune Smithy: Is it MULTI-timbral?
Posted by: "klergstudios" klergstudios@... klergstudios
Wed May 30, 2007 2:45 pm (PST)
Rick McGowan wrote:

>Well, there's actually a bunch of stuff that FTS does far beyond
>what Scala can do in relaying. E.g. the keyswitches and various
>configurations it can handle. It also can handle multiple MIDI
>cards simultaneously, with different tunings on each channel. It
>really has lots of bells and whistles.

What do mean by "keyswitches" and "various configurations."? My
Audigy 2 ZS has TWO separate MIDI devices BOTH with 16 MIDI
channels. Since they're on ONE card, could Scala retune ALL the
32 channels individually? Most of the "bell and whistles" to me seem
like a bloated, cluttered UI and Algo-comp stuff I do NOT need.

>That limitation is in MIDI pitch bend. All the sounding notes on a
>channel are bent simultaneously when you apply pitch bend. So if
>you have a polyphonic channel playing chords, for example, all the
>notes in the chord are going to be pitch-bent by the same amount.
>Nothing you can do about that: the problem is in the MIDI spec.

Well, unfortunately, Scala actually won't play sustained chords on a
MIDI channel. The sustained chords are cut off. So, that would mean
Scala also does NOT allow polyphonic music to playback on a SINGLE
MIDI channel. Unless, of course, there is some workaround for it.
So, is it just the pitch bends that won't allow polyphonic music on
a MIDI channel? Indeed, the MIDI spec is in dire need of an overhaul.

>With FTS you can, however, assigne one input channel to map to
>several output channels, and if you set those output channels to
>the same timbre, then effectively you *can* have some lightly
>polyphonic parts.

I suppose you can do this in Scala, right? I hope by 'lightly
polyphonic parts' you mean at least sustaining notes on a single
MIDI channel.

>You'll have to experiment with it... FTS 2.4, as I've said, doesn't
>cut it; you need FTS 3.

Where can i get FTS 3? I can't find it anywhere, do know of a direct
link to it?

Back to top
Reply to sender | Reply to group | Reply via web post

[Non-text portions of this message have been removed]

🔗klergstudios <klergstudios@...>

5/31/2007 8:42:43 PM

Robert Walker wrote:

>Anyway - yes FTS is multi-timbral. It automatically takes care of
>the channel remapping and keeps track of which instruments have
>been relayed to which of the channels - and if necessary sends
>patch change messages. So if one of the parts needs a lot of pitch
>polyphony at a particular point in the tune, then FTS will allocate
>more channels for that instrument. When a part is only monophonic
>then FTS may only allocate a couple of channels to it most of the
>time (usually two rather than one to allow for note off releases).

If an instrument needs polyphony and uses up MIDI channels, then the
result is what i'm getting: ONE instrument (preset, patch, etc.)
sounding on ALL (except CH.10) channels. So, that would mean it's
NOT multi-timbral, even if MIDI pitch bend is to blame, right?.

I'm still confused as to WHY pitch bend even affects polyphony in a
MIDI channel, in the first place. Is it because of excessive pitch
bend messages? i.e. too many to fit on one MIDI channel? Or is it
something else?

>It is actually possible to write a synth that will respond to pitch
>bends only at the note on - in that case you get pitch bend
>polyphony within a single channel within the midi spec, but notes
>can't be bent after they start to sound.

What does "Pitch Bend Polyphony" mean? How would the above scenario
prevent notes from being "bent after they start to sound" Must the
pitch bend message be included in the Note off?

>The other possibility is to have some way in which the pitch bend
>only applies to a ingle note - or to use tuning tables. The tuning
>tables approach is already included in Midi but unfortunately the
>standard MTS sysexes aren't widely supported, and custom tuning
>tables use a huge variety of different formats so are synth
>dependent - Scala can do most of them but FTS can't as I haven't
>specialised in that.

The only problem i see applying pitch bends to single notes/events
would be the sheer massive amount of pitch bend messages. As for
MTS, it's a shame that never became standard. Scala does excel with
MTS, but what's the point? MTS is almost never used anymore. Neither
are hardware synths, for that matter.

🔗Doctor Oakroot <doctor@...>

6/1/2007 5:29:05 AM

Pitch bend normally affects a whole channel... so if you're using pitch
bend to retune the scale, you can only have one note on each channel at a
time (because in general, the bend needed for each scale step is
different). So you have to use multiple channels for polyphony.

If the synth interprets pitch bend as applying only to a simultaneous
note-on, then you avoid some of this problem (although simultaneous chords
will still have the problem of neededing multiple channels). Obviously, if
a pitchbend applies only to a simultaneous note-on, you can't change the
pitch of an already sounding note.

MIDI is really pretty inadequate for non-12ET music.

> Robert Walker wrote:
>
>>Anyway - yes FTS is multi-timbral. It automatically takes care of
>>the channel remapping and keeps track of which instruments have
>>been relayed to which of the channels - and if necessary sends
>>patch change messages. So if one of the parts needs a lot of pitch
>>polyphony at a particular point in the tune, then FTS will allocate
>>more channels for that instrument. When a part is only monophonic
>>then FTS may only allocate a couple of channels to it most of the
>>time (usually two rather than one to allow for note off releases).
>
>
> If an instrument needs polyphony and uses up MIDI channels, then the
> result is what i'm getting: ONE instrument (preset, patch, etc.)
> sounding on ALL (except CH.10) channels. So, that would mean it's
> NOT multi-timbral, even if MIDI pitch bend is to blame, right?.
>
> I'm still confused as to WHY pitch bend even affects polyphony in a
> MIDI channel, in the first place. Is it because of excessive pitch
> bend messages? i.e. too many to fit on one MIDI channel? Or is it
> something else?
>
>>It is actually possible to write a synth that will respond to pitch
>>bends only at the note on - in that case you get pitch bend
>>polyphony within a single channel within the midi spec, but notes
>>can't be bent after they start to sound.
>
> What does "Pitch Bend Polyphony" mean? How would the above scenario
> prevent notes from being "bent after they start to sound" Must the
> pitch bend message be included in the Note off?
>
>>The other possibility is to have some way in which the pitch bend
>>only applies to a ingle note - or to use tuning tables. The tuning
>>tables approach is already included in Midi but unfortunately the
>>standard MTS sysexes aren't widely supported, and custom tuning
>>tables use a huge variety of different formats so are synth
>>dependent - Scala can do most of them but FTS can't as I haven't
>>specialised in that.
>
> The only problem i see applying pitch bends to single notes/events
> would be the sheer massive amount of pitch bend messages. As for
> MTS, it's a shame that never became standard. Scala does excel with
> MTS, but what's the point? MTS is almost never used anymore. Neither
> are hardware synths, for that matter.
>
>
>
>

--
http://DoctorOakroot.com - Rough-edged songs on homemade GIT-tars.

🔗Robert walker <yahoogroups@...>

6/1/2007 6:06:44 AM

Hi there,

> If an instrument needs polyphony and uses up MIDI channels, then the
> result is what i'm getting: ONE instrument (preset, patch, etc.)
> sounding on ALL (except CH.10) channels. So, that would mean it's
> NOT multi-timbral, even if MIDI pitch bend is to blame, right?.

To understand how it works - suppose you want to play a major third 1/1 5/4 2/1
in part 1 and the 3/2 on a different instrument in part 2.

Then FTS might do the allocations something like this:

channel 1 plays 1/1 and 2/1 on instrument 1
channel 2 plays 5/4 on instrument 1
channel 3 plays 3/2 on instrument 2.

So you get the desired effect as far as sound is concerned, but FTS has
needed to reallocate the channels for the notes to get it t work.

Then to show how all that works with pitch bends, and why the channel
remapping was needed:

Suppose the pitch of the 1/1 is set to concert pitch middle C.

Then channel 1 needs a pitch bend of 0 because the 1/1 and 2/1 are at concert pitch.

Channel 2 needs a pitch bend of about -14 cents because the 5/4 will need to be played
in midi as an E 14 cents flat.

Channel 3 needs a pitch bend of about 2 cents because the 3/2 needs to be played as a
G 2 cents sharp.

The pitch bend applies to all the notes in the channel.

One might think to play all the notes for the firrst instrument in channel 1 like this:
(I'm leaving out the values after the decimal point for the cents values here - of course
FTS uses the highest precision available with pitch bends when it does the pitch
bending)

channel 1 events:
pitch bend 0.
Play C4
Play C5
pitch bend -14 cents
play E
- all in quick succession so the events all happen within the same millisecond.

That would work if the pitch bend only affected a note at the note on. But musicians
like notes to respond to the pitch bend wheel, so that you can bend a note after
it has sounded.

So the effect of those midi instructions would be:

channel 1 events:
pitch bend 0.
Play C4
Play C5 // Now playing C4 and C5 at concert pitch
pitch bend -14.0 // C4 and C5 get bent 14 cents flat
// which would be the desired effect if a musician had rapidly moved
// a pitch bend wheel 14 cents flat after the notes sounded
play E // also played 14 cents flat
// so now you are playing a 12-et C major chord 14 cents flat

Which of course makes perfect sense for a musician using a pitch bend wheel
for music in twelve equal, but isn't what we want here.

The spec does allow for the possibility of a synth which switches
off its pitch bend response to every note after it has sounded, but I don't
know of any existing synth that lets you do that.

But because it seemed potentially useful for microtonalists, at least something
to explore - I programmed it for the new waveform player in FTS.

Also you can easily program CSound instruments so that they only respond
to the pitch bends at the note on - in fact that's easier than to get them
to respond to pitch bends after the note sounds - and the new FTS 3.0 also has
an option to set CSound instruments to play in this way. So anyone interested
can experiment with this approach using FTS 3.0.

You then have:
channel 1 events:
pitch bend 0.
Play C4
Play C5 // Now playing C4 and C5 at concert pitch
pitch bend -14.0 // C4 and C5 are unaffected since already sounding.
play E // E as a new note is played 14 cents flat
// Now playing a just intonation major chord

Pitch bend polyphony is a word I coined to describe this approach.

Well many pieces we hear in this forum could be done just
fine like that - using pitch bend polyphonhy, so no channel
remapping at all if one could just switch off the response to
pitch bendsd after the note has started to sound.

Of course, in some pieces one is likely to need both - maybe in the
same piece of music.

A quite simple work around would be to let the user switch between
ordinary pitch bending and pitch bend polyphony. If one had a midi
event that let you switch on pitch bend polyphony for a single channel
then you could use that to play any amount of polyphony you like
most of the time using pitch bends - but when the musician wants
to bend the notes currently playing - you send a message to switch off
pitch bend polyphony and then from then on any notes currently
playing in the channel would get bent up / down in synchrony
- the ptich bend added to those already in play so if the musician
is playing a j.i. major chord for instance, tuned using polyphonic
pitch bends, then adjusts it using the pitch bend wheel, then the
whole chord gets bent up / down in synchrony, still as a j.i.
chord.

If you want to bend just one note of a chord, then the note would
need to be played on a separate channel - suppose you had
a piece for keyboard and solo instrument - then it would be natural
to bend the keyboard chords with all the notes moving simultaneously
- and to bend the solo instrument separately. So long as each was
in a separate channel, then that would work fine with pitch bend
polyphony + this message to switch the polyphony on / off.

I've already programmed pitch bend polyphony as I say into the waveform
player in FTS 3.0 - and may experimentally add in this extra feature to
let the user switch the pitch bend polyphony on / off using a midi event.
It is a case of bootstrapping as there is no such midi event yet.
There is a mechanism to add them in permanently using RPNs
but not really any mechanism to add them in experimentally except
using sysexes which are clumsy in this context, or NRPNs which are
supposed to be hardware specific so not what we want here.
But there are plenty of free rpns and no new ones have been
added for years.

So - I would probably use a currently unused RPN - but clearly
marked in the gui as experimental
and let the user vary the number for the RPN if they like (on the very remote
chance that another RPN gets added to the spec in the interim).

If it were to prove really useful to be able to switch pitch polyphony on / off
in this way - who knows, maybe the new RPN might get added to the midi spec
- well one can hope.

Anyway this is just one idea for a way to deal with the situation
of the current limitations on pitch polyphony in Midi
that I am interested in and happen to be exploring slowly myself.

BTW why I call it pitch bend polyphony rather than polyphony is because
notes at 12-et intervals can be played in the same channel.
That includes all the octaves so for any 12 tone temperament
then you need at most 12 channels for all the pitch bends for
any piece for a single instrument no matter how much polyphony
there is - 12 channels gives unlimited polyphony in any temperament.
I'm sometimes a bit lazy and just call it pitch polyphony but that is
something of an oxymoron, should be "pitch bend polyphony".

Often less is required - e.g. at any time you are unlikely to be using
all twelve intervals in very short succession - unless you are doing serial music.
Also for instance in Werkmeister III, several of the intervals less than
an octave are also theoretically 12-et intervals, so can be played on the same channel.

Most soundcards also let you play notes on several instruments simultaneously
in the same channel so long as they use the same pitch bends and effects
(unfortunately, including the same stereo pan position) - anyway that
can be a great saving in channels for orchestral retuning. It is possible
that that may be why you got your notes played on the same instrument
if FTS was playing them like that.

On the MTS sysexes - well the tendency to use soft synths more and more
is actaully potentially an advantage here. The FM7 and I think other soft synths
now too from Native Instruments supports MTS sysexes. It isn't that hard to
add support for them in software so maybe we will see more synths supporting
them in future, in the same way that more and more now support .TUN
tables. BTW FTS 3.0 lets you load a .TUN table and tell it that the current
midi device is tuned to it. But that's not as flexible naturally as an MTS
sysex where you just need to change the tuning in FTS and the midi
output device gets automatically retuned to your desired tuning.

So - I hope more soft synths will support MTS sysexes as time goes on.
Hopefully also, libraries of shared routines will get developed to make it
easy for software writers to add MTS support to their synths.

Robert

[Non-text portions of this message have been removed]

🔗Aaron K. Johnson <aaron@...>

6/1/2007 6:29:15 AM

Boy, when you read this you realize MIDI sucks. It needs a major overhaul by now, we all agree.

I think I'd rather use acoustic or CSound for a while....

-A.

Robert walker wrote:
> > Hi there,
>
> >> If an instrument needs polyphony and uses up MIDI channels, then the
>> result is what i'm getting: ONE instrument (preset, patch, etc.)
>> sounding on ALL (except CH.10) channels. So, that would mean it's
>> NOT multi-timbral, even if MIDI pitch bend is to blame, right?.
>> >
> To understand how it works - suppose you want to play a major third 1/1 5/4 2/1
> in part 1 and the 3/2 on a different instrument in part 2.
>
> Then FTS might do the allocations something like this:
>
> channel 1 plays 1/1 and 2/1 on instrument 1
> channel 2 plays 5/4 on instrument 1
> channel 3 plays 3/2 on instrument 2.
>
> So you get the desired effect as far as sound is concerned, but FTS has
> needed to reallocate the channels for the notes to get it t work.
>
> Then to show how all that works with pitch bends, and why the channel
> remapping was needed:
>
> Suppose the pitch of the 1/1 is set to concert pitch middle C.
>
> Then channel 1 needs a pitch bend of 0 because the 1/1 and 2/1 are at concert pitch.
>
> Channel 2 needs a pitch bend of about -14 cents because the 5/4 will need to be played
> in midi as an E 14 cents flat.
>
> Channel 3 needs a pitch bend of about 2 cents because the 3/2 needs to be played as a
> G 2 cents sharp.
>
> The pitch bend applies to all the notes in the channel.
>
> One might think to play all the notes for the firrst instrument in channel 1 like this:
> (I'm leaving out the values after the decimal point for the cents values here - of course
> FTS uses the highest precision available with pitch bends when it does the pitch > bending)
>
> channel 1 events:
> pitch bend 0. > Play C4 > Play C5 > pitch bend -14 cents
> play E
> - all in quick succession so the events all happen within the same millisecond.
>
> That would work if the pitch bend only affected a note at the note on. But musicians
> like notes to respond to the pitch bend wheel, so that you can bend a note after
> it has sounded.
>
> So the effect of those midi instructions would be:
>
> channel 1 events:
> pitch bend 0. > Play C4 > Play C5 // Now playing C4 and C5 at concert pitch
> pitch bend -14.0 // C4 and C5 get bent 14 cents flat
> // which would be the desired effect if a musician had rapidly moved
> // a pitch bend wheel 14 cents flat after the notes sounded
> play E // also played 14 cents flat
> // so now you are playing a 12-et C major chord 14 cents flat
>
> Which of course makes perfect sense for a musician using a pitch bend wheel > for music in twelve equal, but isn't what we want here.
>
> The spec does allow for the possibility of a synth which switches
> off its pitch bend response to every note after it has sounded, but I don't > know of any existing synth that lets you do that.
>
> But because it seemed potentially useful for microtonalists, at least something
> to explore - I programmed it for the new waveform player in FTS. >
> Also you can easily program CSound instruments so that they only respond > to the pitch bends at the note on - in fact that's easier than to get them
> to respond to pitch bends after the note sounds - and the new FTS 3.0 also has
> an option to set CSound instruments to play in this way. So anyone interested
> can experiment with this approach using FTS 3.0.
>
> You then have:
> channel 1 events:
> pitch bend 0. > Play C4 > Play C5 // Now playing C4 and C5 at concert pitch
> pitch bend -14.0 // C4 and C5 are unaffected since already sounding.
> play E // E as a new note is played 14 cents flat
> // Now playing a just intonation major chord
>
> Pitch bend polyphony is a word I coined to describe this approach.
>
> Well many pieces we hear in this forum could be done just
> fine like that - using pitch bend polyphonhy, so no channel
> remapping at all if one could just switch off the response to
> pitch bendsd after the note has started to sound.
>
> Of course, in some pieces one is likely to need both - maybe in the > same piece of music. >
> A quite simple work around would be to let the user switch between
> ordinary pitch bending and pitch bend polyphony. If one had a midi
> event that let you switch on pitch bend polyphony for a single channel
> then you could use that to play any amount of polyphony you like
> most of the time using pitch bends - but when the musician wants
> to bend the notes currently playing - you send a message to switch off
> pitch bend polyphony and then from then on any notes currently
> playing in the channel would get bent up / down in synchrony
> - the ptich bend added to those already in play so if the musician
> is playing a j.i. major chord for instance, tuned using polyphonic
> pitch bends, then adjusts it using the pitch bend wheel, then the
> whole chord gets bent up / down in synchrony, still as a j.i.
> chord.
>
> If you want to bend just one note of a chord, then the note would
> need to be played on a separate channel - suppose you had
> a piece for keyboard and solo instrument - then it would be natural
> to bend the keyboard chords with all the notes moving simultaneously
> - and to bend the solo instrument separately. So long as each was
> in a separate channel, then that would work fine with pitch bend
> polyphony + this message to switch the polyphony on / off.
>
> I've already programmed pitch bend polyphony as I say into the waveform
> player in FTS 3.0 - and may experimentally add in this extra feature to > let the user switch the pitch bend polyphony on / off using a midi event.
> It is a case of bootstrapping as there is no such midi event yet.
> There is a mechanism to add them in permanently using RPNs
> but not really any mechanism to add them in experimentally except
> using sysexes which are clumsy in this context, or NRPNs which are > supposed to be hardware specific so not what we want here.
> But there are plenty of free rpns and no new ones have been > added for years.
>
> So - I would probably use a currently unused RPN - but clearly > marked in the gui as experimental
> and let the user vary the number for the RPN if they like (on the very remote
> chance that another RPN gets added to the spec in the interim).
>
> If it were to prove really useful to be able to switch pitch polyphony on / off > in this way - who knows, maybe the new RPN might get added to the midi spec
> - well one can hope.
>
> Anyway this is just one idea for a way to deal with the situation
> of the current limitations on pitch polyphony in Midi
> that I am interested in and happen to be exploring slowly myself.
>
> BTW why I call it pitch bend polyphony rather than polyphony is because
> notes at 12-et intervals can be played in the same channel.
> That includes all the octaves so for any 12 tone temperament > then you need at most 12 channels for all the pitch bends for
> any piece for a single instrument no matter how much polyphony
> there is - 12 channels gives unlimited polyphony in any temperament.
> I'm sometimes a bit lazy and just call it pitch polyphony but that is
> something of an oxymoron, should be "pitch bend polyphony".
>
> Often less is required - e.g. at any time you are unlikely to be using
> all twelve intervals in very short succession - unless you are doing serial music.
> Also for instance in Werkmeister III, several of the intervals less than
> an octave are also theoretically 12-et intervals, so can be played on the same channel.
>
> Most soundcards also let you play notes on several instruments simultaneously
> in the same channel so long as they use the same pitch bends and effects
> (unfortunately, including the same stereo pan position) - anyway that > can be a great saving in channels for orchestral retuning. It is possible
> that that may be why you got your notes played on the same instrument
> if FTS was playing them like that.
>
> On the MTS sysexes - well the tendency to use soft synths more and more
> is actaully potentially an advantage here. The FM7 and I think other soft synths
> now too from Native Instruments supports MTS sysexes. It isn't that hard to
> add support for them in software so maybe we will see more synths supporting
> them in future, in the same way that more and more now support .TUN
> tables. BTW FTS 3.0 lets you load a .TUN table and tell it that the current > midi device is tuned to it. But that's not as flexible naturally as an MTS > sysex where you just need to change the tuning in FTS and the midi > output device gets automatically retuned to your desired tuning.
>
> So - I hope more soft synths will support MTS sysexes as time goes on.
> Hopefully also, libraries of shared routines will get developed to make it > easy for software writers to add MTS support to their synths.
>
> Robert
>
>

🔗Doctor Oakroot <doctor@...>

6/1/2007 7:47:03 AM

Actually, the problem is that we're asking MIDI to do something it wasn't
intended to do.... MIDI just presses virtual keys on the synth. The place
to retune those keys is in the synth.

> Boy, when you read this you realize MIDI sucks. It needs a major
> overhaul by now, we all agree.
>
> I think I'd rather use acoustic or CSound for a while....
>
> -A.
>
> Robert walker wrote:
>>
>> Hi there,
>>
>>
>>> If an instrument needs polyphony and uses up MIDI channels, then the
>>> result is what i'm getting: ONE instrument (preset, patch, etc.)
>>> sounding on ALL (except CH.10) channels. So, that would mean it's
>>> NOT multi-timbral, even if MIDI pitch bend is to blame, right?.
>>>
>>
>> To understand how it works - suppose you want to play a major third 1/1
>> 5/4 2/1
>> in part 1 and the 3/2 on a different instrument in part 2.
>>
>> Then FTS might do the allocations something like this:
>>
>> channel 1 plays 1/1 and 2/1 on instrument 1
>> channel 2 plays 5/4 on instrument 1
>> channel 3 plays 3/2 on instrument 2.
>>
>> So you get the desired effect as far as sound is concerned, but FTS has
>> needed to reallocate the channels for the notes to get it t work.
>>
>> Then to show how all that works with pitch bends, and why the channel
>> remapping was needed:
>>
>> Suppose the pitch of the 1/1 is set to concert pitch middle C.
>>
>> Then channel 1 needs a pitch bend of 0 because the 1/1 and 2/1 are at
>> concert pitch.
>>
>> Channel 2 needs a pitch bend of about -14 cents because the 5/4 will
>> need to be played
>> in midi as an E 14 cents flat.
>>
>> Channel 3 needs a pitch bend of about 2 cents because the 3/2 needs to
>> be played as a
>> G 2 cents sharp.
>>
>> The pitch bend applies to all the notes in the channel.
>>
>> One might think to play all the notes for the firrst instrument in
>> channel 1 like this:
>> (I'm leaving out the values after the decimal point for the cents values
>> here - of course
>> FTS uses the highest precision available with pitch bends when it does
>> the pitch
>> bending)
>>
>> channel 1 events:
>> pitch bend 0.
>> Play C4
>> Play C5
>> pitch bend -14 cents
>> play E
>> - all in quick succession so the events all happen within the same
>> millisecond.
>>
>> That would work if the pitch bend only affected a note at the note on.
>> But musicians
>> like notes to respond to the pitch bend wheel, so that you can bend a
>> note after
>> it has sounded.
>>
>> So the effect of those midi instructions would be:
>>
>> channel 1 events:
>> pitch bend 0.
>> Play C4
>> Play C5 // Now playing C4 and C5 at concert pitch
>> pitch bend -14.0 // C4 and C5 get bent 14 cents flat
>> // which would be the desired effect if a musician had rapidly
>> moved
>> // a pitch bend wheel 14 cents flat after the notes sounded
>> play E // also played 14 cents flat
>> // so now you are playing a 12-et C major chord 14 cents flat
>>
>> Which of course makes perfect sense for a musician using a pitch bend
>> wheel
>> for music in twelve equal, but isn't what we want here.
>>
>> The spec does allow for the possibility of a synth which switches
>> off its pitch bend response to every note after it has sounded, but I
>> don't
>> know of any existing synth that lets you do that.
>>
>> But because it seemed potentially useful for microtonalists, at least
>> something
>> to explore - I programmed it for the new waveform player in FTS.
>>
>> Also you can easily program CSound instruments so that they only respond
>> to the pitch bends at the note on - in fact that's easier than to get
>> them
>> to respond to pitch bends after the note sounds - and the new FTS 3.0
>> also has
>> an option to set CSound instruments to play in this way. So anyone
>> interested
>> can experiment with this approach using FTS 3.0.
>>
>> You then have:
>> channel 1 events:
>> pitch bend 0.
>> Play C4
>> Play C5 // Now playing C4 and C5 at concert pitch
>> pitch bend -14.0 // C4 and C5 are unaffected since already sounding.
>> play E // E as a new note is played 14 cents flat
>> // Now playing a just intonation major chord
>>
>> Pitch bend polyphony is a word I coined to describe this approach.
>>
>> Well many pieces we hear in this forum could be done just
>> fine like that - using pitch bend polyphonhy, so no channel
>> remapping at all if one could just switch off the response to
>> pitch bendsd after the note has started to sound.
>>
>> Of course, in some pieces one is likely to need both - maybe in the
>> same piece of music.
>>
>> A quite simple work around would be to let the user switch between
>> ordinary pitch bending and pitch bend polyphony. If one had a midi
>> event that let you switch on pitch bend polyphony for a single channel
>> then you could use that to play any amount of polyphony you like
>> most of the time using pitch bends - but when the musician wants
>> to bend the notes currently playing - you send a message to switch off
>> pitch bend polyphony and then from then on any notes currently
>> playing in the channel would get bent up / down in synchrony
>> - the ptich bend added to those already in play so if the musician
>> is playing a j.i. major chord for instance, tuned using polyphonic
>> pitch bends, then adjusts it using the pitch bend wheel, then the
>> whole chord gets bent up / down in synchrony, still as a j.i.
>> chord.
>>
>> If you want to bend just one note of a chord, then the note would
>> need to be played on a separate channel - suppose you had
>> a piece for keyboard and solo instrument - then it would be natural
>> to bend the keyboard chords with all the notes moving simultaneously
>> - and to bend the solo instrument separately. So long as each was
>> in a separate channel, then that would work fine with pitch bend
>> polyphony + this message to switch the polyphony on / off.
>>
>> I've already programmed pitch bend polyphony as I say into the waveform
>> player in FTS 3.0 - and may experimentally add in this extra feature to
>> let the user switch the pitch bend polyphony on / off using a midi
>> event.
>> It is a case of bootstrapping as there is no such midi event yet.
>> There is a mechanism to add them in permanently using RPNs
>> but not really any mechanism to add them in experimentally except
>> using sysexes which are clumsy in this context, or NRPNs which are
>> supposed to be hardware specific so not what we want here.
>> But there are plenty of free rpns and no new ones have been
>> added for years.
>>
>> So - I would probably use a currently unused RPN - but clearly
>> marked in the gui as experimental
>> and let the user vary the number for the RPN if they like (on the very
>> remote
>> chance that another RPN gets added to the spec in the interim).
>>
>> If it were to prove really useful to be able to switch pitch polyphony
>> on / off
>> in this way - who knows, maybe the new RPN might get added to the midi
>> spec
>> - well one can hope.
>>
>> Anyway this is just one idea for a way to deal with the situation
>> of the current limitations on pitch polyphony in Midi
>> that I am interested in and happen to be exploring slowly myself.
>>
>> BTW why I call it pitch bend polyphony rather than polyphony is because
>> notes at 12-et intervals can be played in the same channel.
>> That includes all the octaves so for any 12 tone temperament
>> then you need at most 12 channels for all the pitch bends for
>> any piece for a single instrument no matter how much polyphony
>> there is - 12 channels gives unlimited polyphony in any temperament.
>> I'm sometimes a bit lazy and just call it pitch polyphony but that is
>> something of an oxymoron, should be "pitch bend polyphony".
>>
>> Often less is required - e.g. at any time you are unlikely to be using
>> all twelve intervals in very short succession - unless you are doing
>> serial music.
>> Also for instance in Werkmeister III, several of the intervals less
>> than
>> an octave are also theoretically 12-et intervals, so can be played on
>> the same channel.
>>
>> Most soundcards also let you play notes on several instruments
>> simultaneously
>> in the same channel so long as they use the same pitch bends and effects
>> (unfortunately, including the same stereo pan position) - anyway that
>> can be a great saving in channels for orchestral retuning. It is
>> possible
>> that that may be why you got your notes played on the same instrument
>> if FTS was playing them like that.
>>
>> On the MTS sysexes - well the tendency to use soft synths more and more
>> is actaully potentially an advantage here. The FM7 and I think other
>> soft synths
>> now too from Native Instruments supports MTS sysexes. It isn't that hard
>> to
>> add support for them in software so maybe we will see more synths
>> supporting
>> them in future, in the same way that more and more now support .TUN
>> tables. BTW FTS 3.0 lets you load a .TUN table and tell it that the
>> current
>> midi device is tuned to it. But that's not as flexible naturally as an
>> MTS
>> sysex where you just need to change the tuning in FTS and the midi
>> output device gets automatically retuned to your desired tuning.
>>
>> So - I hope more soft synths will support MTS sysexes as time goes on.
>> Hopefully also, libraries of shared routines will get developed to make
>> it
>> easy for software writers to add MTS support to their synths.
>>
>> Robert
>>
>>
>
>

--
http://DoctorOakroot.com - Rough-edged songs on homemade GIT-tars.

🔗Carl Lumma <ekin@...>

6/1/2007 9:22:08 AM

At 07:47 AM 6/1/2007, you wrote:
>Actually, the problem is that we're asking MIDI to do something it wasn't
>intended to do.... MIDI just presses virtual keys on the synth. The place
>to retune those keys is in the synth.

I have to disagree. MIDI is a kind of score. As microtonalists,
we're saying we want 'composers' to have more control over intonation.
That means the scores should contain tuning information. It should
be part of the the interoperability abstraction. Otherwise, every
synth will implement it differently.

-Carl

🔗Carl Lumma <ekin@...>

6/1/2007 9:23:07 AM

At 07:47 AM 6/1/2007, you wrote:
>Actually, the problem is that we're asking MIDI to do something it wasn't
>intended to do.... MIDI just presses virtual keys on the synth. The place
>to retune those keys is in the synth.

Another gotcha here is --- why do synths have keys? Not all
synths do. And if they do, what do the keys look like? Why
can't there be more than 128 of them? etc. -Carl

🔗Doctor Oakroot <doctor@...>

6/1/2007 9:43:00 AM

Well, we don't even have a standard way to indicate that in a written
score yet. It would be nice if MIDI supported a byte of fractional note
number and we could just specify it directly... but the synth still has to
handle the actual pitches.

> At 07:47 AM 6/1/2007, you wrote:
>>Actually, the problem is that we're asking MIDI to do something it wasn't
>>intended to do.... MIDI just presses virtual keys on the synth. The place
>>to retune those keys is in the synth.
>
> I have to disagree. MIDI is a kind of score. As microtonalists,
> we're saying we want 'composers' to have more control over intonation.
> That means the scores should contain tuning information. It should
> be part of the the interoperability abstraction. Otherwise, every
> synth will implement it differently.
>
> -Carl
>
>

--
http://DoctorOakroot.com - Rough-edged songs on homemade GIT-tars.

🔗Doctor Oakroot <doctor@...>

6/1/2007 9:46:03 AM

Yeah. Good questions, lol. If it were up to me MIDI would have 2 bytes of
note number which would give us more resolution than our ears can hear I
think.

> At 07:47 AM 6/1/2007, you wrote:
>>Actually, the problem is that we're asking MIDI to do something it wasn't
>>intended to do.... MIDI just presses virtual keys on the synth. The place
>>to retune those keys is in the synth.
>
> Another gotcha here is --- why do synths have keys? Not all
> synths do. And if they do, what do the keys look like? Why
> can't there be more than 128 of them? etc. -Carl
>
>

--
http://DoctorOakroot.com - Rough-edged songs on homemade GIT-tars.

🔗Rick McGowan <rick@...>

6/1/2007 9:58:00 AM

> If an instrument needs polyphony and uses up MIDI channels, then the
> result is what i'm getting: ONE instrument (preset, patch, etc.)
> sounding on ALL (except CH.10) channels. So, that would mean it's
> NOT multi-timbral, even if MIDI pitch bend is to blame, right?.

Well, technically speaking, yes. However, by allocating, for example 4
channels (having the same timbre) to a particular part, you can have up to
4 sounding notes of that timbre, and the relay mechanism (in FTS or
whatever) takes care of mapping the channels appropriately. So, it's not
polyphony on one channel, but it's the closest you're going to get in the
MIDI world because...

> I'm still confused as to WHY pitch bend even affects polyphony
> in a MIDI channel, in the first place.

It's because the MIDI spec says that when a pitch-bend message is received
on a channel, all of the sounding notes on that channel are bent by the
same amount. I.e., the pitch-bend spec wasn't really intended for
micro-tonal use. You can't (unless you have some other non-standard
support) send "Note-on 1, Pitch-bend 1, Note-on 2, Pitch-bend 2, Note-off
1" and expect that it will work as you think it should.

Rick

🔗Robert walker <yahoogroups@...>

6/1/2007 10:10:06 AM

Yes, Carl, I think that's right - midi is based on the idea of a keyboard with discrete keys.
Csound is based on the idea of a score that you enter as text. So doesn't have
to have discrete notes. If you don't use a keyboard or notation software to
enter notes, but just enter note frequencies by hand, then you can bypass
that whole layer of assigning pitches to midi keys.

The pitch bend in midi is based on the idea of a pitch bend wheel or the like
modifying the pitch of keyboard notes - so it makes sense to bend them all
by the same amount.

Even if you had midi note numbers with millions of notes per octave, you
still would need to be able to play them from a keyboard, and somewhere in the
interface between the keyboard and the synth, you would need something
like the midi format on the way to convert the played notes into pitches.

So for instance with CSound - although they can type anything they
like into CSound scores, in order to be able to play the CSound
instruments in real time from keyboards or notation software,
they added in support for midi - the best
way to do the job at present with midi equipment so universal.

Midi plus tuning tables is fine for microtonal music, lets you use the tuning
table to retune the notes of the synth just as you like, and the pitch bends
to bend those notes after they are played. The only problem with that
is that MTS sysexes haven't been implemented widely. That's not really
a fault in the spec.

Since the MTS sysexes aren't widely implemented, programmers resort
instead to using pitch bends since those are widely implemented - but
have to use them to do a job they aren't designed to do really.
But it does work well enough to be worth doing and software
can do all the tricky stuff under the hood - it doesn't have to bother
the user unless they want to know the techy details of how it is done.
In terms of timing etc. it is reasonably efficient, doesn't add much
to the event stream. So it works for lightly polyphonic pieces or
ones with as much polyphony as you like but not too many
instruments playing simultaneously - or for full orchestral pieces
with a fair bit of work if you have multiple midi in and out devices.

To get Midi to work better for the user without those limitations, the
best thing would be to have wider support for MTS. Second best is
to have support for .TUN which we already have to some extent.
Another option is that pitch bend polyphony idea - it is something
I find interesting, and can be useful at times when using CSound
instruments in real time using midi, so perhaps may be more widely
useful as well.

The fractional note idea is interesting but you would still have to
work out how the player of the instrument is going to get those
fractional notes - and you also have to figure out how to fit it in
to the existing midi spec - if you make too big a difference then
you might as well call it something else especially if the result is
no longer backwards compatible with existing hardware and
software. We discussed it on the tuning list a while back, with
no really definite conclusion either way about what is the best way
ahead for midi for microtonalists.

Robert

[Non-text portions of this message have been removed]

🔗Carl Lumma <ekin@...>

6/2/2007 12:38:20 AM

At 09:43 AM 6/1/2007, you wrote:
>Well, we don't even have a standard way to indicate that in a written
>score yet. It would be nice if MIDI supported a byte of fractional note
>number and we could just specify it directly... but the synth still has to
>handle the actual pitches.

There are several proposals in use for handwritten scores, including
Sagittal, HEWM, Tartini-Couper, and cents.

From my point of view, it'd be nice if MIDI were human-readable.

-Carl

🔗monz <monz@...>

6/10/2007 7:03:17 PM

--- In MakeMicroMusic@yahoogroups.com, Carl Lumma <ekin@...> wrote:
>
> At 07:47 AM 6/1/2007, you wrote:
> > Actually, the problem is that we're asking MIDI to do
> > something it wasn't intended to do.... MIDI just presses
> > virtual keys on the synth. The place to retune those keys
> > is in the synth.
>
> I have to disagree. MIDI is a kind of score. As
> microtonalists, we're saying we want 'composers' to
> have more control over intonation. That means the
> scores should contain tuning information. It should
> be part of the the interoperability abstraction.
> Otherwise, every synth will implement it differently.

Once again i feel the urge to put in a shameless plug
for Tonescape. One of the nice things about Tonescape
is that once you've composed a piece, you can try it
out in any other tuning which has the same cardinality.

For this reason, i've decided that from now on all the
Tonescape files i create of pieces from the standard
Western repertoire will use a 31-note tuning. The
standard musical notation can be modeled as a 31-note
chain-of-5ths running from Gbb on the flat end to
Ax on the sharp end. Therefore, the vast majority
of pieces in this repertoire will never use any notes
notated outside this system.

And Tonescape can use any 31-note tuning to play
these files -- for example:

* 31-edo,

* 31-out-of-55-edo,

* 31-note chain of golden meantone,

* a 31-tone JI periodicity-block,

or even some interesting 31-note tunings which are
essentially supersets of smaller tunings, such as:

* a 31-note meantone using a 699.99-cent generator,
which makes it audibly the same as 12-edo but allows
you to preserve the spelling used by the composer,

* a 31-note chain of 1/3-comma meantone, which has
essentially the same effect as the above tuning but
for 19-edo.

Any 31-note tuning can be used, so for example one
could also try a piece out in the 31-note DES of
TOP Myna temperament.

One other feature that i enjoy, which doesn't have
anything to do with tuning, but which is way cool, is
the built-in time-signatures. These employ a hierarchy
of various levels of accent patterns, so that you can
set up, for example, something as complex as a 19/16 meter
where the 19 is divided into 8+11, which are further
subdivided into 8 = 3+3+2 and 11 = 2+3+3+3. This one
isn't as weird as it seems: it's something like a
Bo Diddley beat where the last 2+2+2 are stretched
into 3+3+3.

Tonescape does all of this and all of its tuning work
in MIDI, but the point is that the software does it
so that you don't have to.

-monz
http://tonalsoft.com
Tonescape microtonal music software

🔗monz <monz@...>

6/10/2007 7:16:27 PM

--- In MakeMicroMusic@yahoogroups.com, Carl Lumma <ekin@...> wrote:
>
> At 09:43 AM 6/1/2007, you wrote:
>
> > Well, we don't even have a standard way to indicate that
> > in a written score yet. It would be nice if MIDI supported
> > a byte of fractional note number and we could just specify
> > it directly... but the synth still has to handle the actual
> > pitches.
>
> There are several proposals in use for handwritten scores,
> including Sagittal, HEWM, Tartini-Couper, and cents.

And there are others too. These examples all use the
standard 5-line staff with the standard A B C D E F G
nominals, but there's no reason why we have to be
limited to that.

Some other proposals that i have in the Encyclopedia:

my 4-line-staff adaptation of Graham Breed's decimal notation
for the MIRACLE tunings:
http://sonic-arts.org/monzo/blackjack/blackjack.htm##notation

my proposal for 12-edo-staff notation:
http://tonalsoft.com/enc/number/12edo-staff.aspx

my proposal for quarter-tone-staff notation:
http://tonalsoft.com/enc/q/qt-staff.aspx

my proposal for a 19-edo-staff notation (at bottom of page):
http://tonalsoft.com/enc/number/19edo.aspx

Aaron Hunt's MegaScore software also uses the same idea
as these last two: some lines thicker/darker than others.

http://www.h-pi.com/MSCintro.html

-monz
http://tonalsoft.com
Tonescape microtonal music software

🔗Herman Miller <hmiller@...>

6/11/2007 7:36:29 PM

monz wrote:
> And Tonescape can use any 31-note tuning to play > these files -- for example:
> > * 31-edo, > > * 31-out-of-55-edo, > > * 31-note chain of golden meantone, > > * a 31-tone JI periodicity-block,
> > or even some interesting 31-note tunings which are
> essentially supersets of smaller tunings, such as:
> > * a 31-note meantone using a 699.99-cent generator,
> which makes it audibly the same as 12-edo but allows
> you to preserve the spelling used by the composer,
> > * a 31-note chain of 1/3-comma meantone, which has
> essentially the same effect as the above tuning but
> for 19-edo.
> > Any 31-note tuning can be used, so for example one
> could also try a piece out in the 31-note DES of
> TOP Myna temperament.

And don't forget 31 of miracle! (Also luna/hemithirds, w�rschmidt, hemiw�rschmidt, mothra/cynder, orwell, valentine, and probably some more obscure ones.)