back to list

Re: Self-Tuning Synth

🔗p_heddles <p_heddles@yahoo.com>

10/6/2004 9:12:56 PM

One of these days I'll learn to make sense...

I know MIDI synths can be retuned - what I'm talking about is
something to actually tune a synth in real-time according to what
notes are playing. That synth with the HMT implementation apparently
does it, but I wanted an implementation that can do that real-time
tuning for a standard MIDI synth (probably implemented in software on
a computer). Am I making any sense?

I had kinda assumed that any decent MIDI keyboard would implement the
complete MIDI spec (including all three ways of retuning notes
independent of each other) - this may have been a little optimistic.
Is there any way (before buying) that I can find out what tuning
messages a synth handles and how well?

Cheers,
Patty

🔗Carl Lumma <ekin@lumma.org>

10/6/2004 9:46:26 PM

>One of these days I'll learn to make sense...
>
>I know MIDI synths can be retuned - what I'm talking about is
>something to actually tune a synth in real-time according to what
>notes are playing. That synth with the HMT implementation apparently
>does it,

right...

>but I wanted an implementation that can do that real-time
>tuning for a standard MIDI synth (probably implemented in software
>on a computer). Am I making any sense?

Define "standard MIDI synth".

>I had kinda assumed that any decent MIDI keyboard would implement
>the complete MIDI spec (including all three ways of retuning notes
>independent of each other) - this may have been a little optimistic.

Har har.

>Is there any way (before buying) that I can find out what tuning
>messages a synth handles and how well?

http://www.microtonal-synthesis.com

is a good start but doesn't have information about the newer MIDI
tuning messages or the newest (esp. software) synths.

You can also try asking here about specific synths. Werner has
some knowledge of the situation, and this list has many other
knowledgeable folk on it.

You can also try to download a manual from the manufacturer.

But usually the way will be to contact the manufacturer and ask.
These days synthesis is once again a cottage industry, and that
has the advantage that you can sometimes speak with the person
who made the synth in question.

-Carl

🔗Bill Canty <bill@billcanty.com>

10/7/2004 4:45:22 AM

p_heddles wrote:
> > I know MIDI synths can be retuned - what I'm talking about is > something to actually tune a synth in real-time according to what > notes are playing. That synth with the HMT implementation apparently > does it, but I wanted an implementation that can do that real-time > tuning for a standard MIDI synth (probably implemented in software on > a computer). Am I making any sense?

Not sure. ;-) Is http://www.justonic.com/ what you're after?

🔗p_heddles <p_heddles@yahoo.com>

10/7/2004 10:30:18 PM

(Carl)
> Define "standard MIDI synth".
Um... synth which implements everything in the '83-'84 MIDI
specification? I'm probably dreaming again...

Thanks for the suggestions - I think they pretty much cover it.

(Bill)
>Not sure. ;-) Is http://www.justonic.com/ what you're after?
Nice... it does most of what I'm after - the one extra thing I'm
after is 'smart' automatic retuning. Thanks for the link, though.

Cheers,
Patty

🔗Werner Mohrlok <wmohrlok@hermode.com>

10/9/2004 8:59:13 PM

> -----Urspr�ngliche Nachricht-----
> Von: Carl Lumma [mailto:ekin@lumma.org]
> Gesendet: Donnerstag, 7. Oktober 2004 06:46
> An: tuning@yahoogroups.com
> Betreff: Re: [tuning] Re: Self-Tuning Synth
>

>>One of these days I'll learn to make sense...
>>
>>I know MIDI synths can be retuned - what I'm talking about is
>>something to actually tune a synth in real-time according to what
>>notes are playing. That synth with the HMT implementation apparently
>>does it,
>
> right...
>
>>but I wanted an implementation that can do that real-time
>>tuning for a standard MIDI synth (probably implemented in software
>>on a computer). Am I making any sense?
>
> Define "standard MIDI synth".
>
>>I had kinda assumed that any decent MIDI keyboard would implement
>>the complete MIDI spec (including all three ways of retuning notes
>>independent of each other) - this may have been a little optimistic.
> Har har.
>
>> Is there any way (before buying) that I can find out what tuning
>> messages a synth handles and how well?
>
http://www.microtonal-synthesis.com
>
> is a good start but doesn't have information about the newer MIDI
> tuning messages or the newest (esp. software) synths.

Indeed, the MIDI implementation of hardware and software synths is
very different and - regarding the support of tuning datas - they
don't follow any "standard". For a better understanding: The MMA
(Midi Manufacturers Ass.) proposes MIDI data formats, but
the MIDI instruments haven't to follow all these proposals.

There exist the following "Real Time" MIDI tuning data messages:

1. MIDI Single Note Tuning Real Time.
With this data format every MIDI note may be retuned separately
to every frequency and in abstract with a fineness of two bytes.
This means 16,384 steps per halftone.Everyone of the 128 MIDI notes
can be tuned separately to every frequency of the complete MIDI
frequency range. This is a very fine tool for experimental
tuning. The shortcoming is: Retuning requires very long data
messages and therefore the support of quick changing tuning messages
may cause timing problems.

2. MIDI Scale Octave Tuning Real Time One Byte Format.
Controls the tuning with one byte steps (128 steps per
halftone from -64 to + 63 Cents) per halftone.
Controls all octave identic notes in the same way, for instance
all notes "C" to a tuning deviation of + 4 Cents from E.T.
Besides, it requires only one message for all
selected MIDI channels.
It controls very quick and it is the best tool for normal
(non-experimental)real time tuning programs i.e. Hermode Tuning.
It is not suitable for Justonic, as Justonic requires
a range of more than -64 / +63 Cents for the retuning range
of every Halftone.

3. MIDI Scale Octave Tuning Real Time Two Byte Format.
Controls the tuning with two byte steps (16,384 steps
per halftone)
Slower than the one byte format as the tuning messages
will be longer. Required for Justonic tuning programs.

4. YAMAHA Real Time Tuning SysEx.
A company-specific MIDI tuning data format. Every note of
every MIDI channel requires a separate tuning message.
Therefore it is too slow for modern tuning programs as every
message requires about 10 ms.

5. Roland Master Scale Tuning.
A company-specific MIDI tuning data format. Every MIDI channel
requires a separate message and every message requires about
14 ms. Therefore it is too slow as soon as one wants to control
more than one or two MIDI channels.

Now the actual situation:

General MIDI 1 didn't require the support of any "Real Time"
tuning message.
General MIDI 2 requires MIDI Scale Octave Tuning but only in a
"Non Real Time" version. "Real Time" is only recommended but not
required. This means: Every MIDI instruments producer still is
free to support Real Time.
Yamaha Real Time Tuning SysEx is not supported by every Yamaha
instrument.
Roland Master Scale Tuning is not supported by every Roland MIDI
instrument.
I tried to get more precise informations by these companies, but the
answers have been incomplete and unfriendly. Even in personal
disussions. Frankly: I never found in this world such unkind persons
as by some Japanese companies.
But the Hotlines of these companies are friendly and sometimes helpful.
The problem is: They don't possess all relevant informations.

I only know one hardware synth supporting both Tuning Datas:
-MIDI Single Note Tuning Real Time.
-MIDI Scale Octave Tuning Real Time One Byte Format.
This is the VIRUS. It contents also Hermode Tuning,
but only in one extreme version, including the natural septh.

Besides: The different tuning programs cannot be distinguished
by the question which tuning datas will be exported. Every
tuning program can export the tuning datas by different
messages. (Pitch, Scale Octave Tuning, Single Note
Tuning). The different tuning programs follows different
frequency position philosphies. Mutabor and Justonic follow
a "group" (in German: "Pulk") idea. Hermode Tuning follows
an Elastic Center Position idea. See the describtion on our
websites.

Best:
Werner

>
> You can also try asking here about specific synths. Werner has
> some knowledge of the situation, and this list has many other
> knowledgeable folk on it.
>
> You can also try to download a manual from the manufacturer.
>
> But usually the way will be to contact the manufacturer and ask.
> These days synthesis is once again a cottage industry, and that
> has the advantage that you can sometimes speak with the person
> who made the synth in question.
>
> -Carl

🔗p_heddles <p_heddles@yahoo.com>

10/10/2004 10:21:12 PM

> There exist the following "Real Time" MIDI tuning data messages:
>.
>.
>.
> Best:
> Werner

Thanks for the lesson - I hadn't realised some of the limitations there. I
was thinking of 'MIDI Single Note Tuning Real-Time', but the data
transmission/timing issue could be difficult. I suspect this will require a
lot of experimentation on my part (when I finally get a synth I can test it
on), but I think that I could get around that problem by retuning the
active notes first.

I'll post here if I actually get anywhere with this project (don't hold your
breath...)

Cheers,
Patty

🔗Gene Ward Smith <gwsmith@svpal.org>

10/11/2004 12:10:38 PM

--- In tuning@yahoogroups.com, "Werner Mohrlok" <wmohrlok@h...> wrote:

> 1. MIDI Single Note Tuning Real Time.
> With this data format every MIDI note may be retuned separately
> to every frequency and in abstract with a fineness of two bytes.
> This means 16,384 steps per halftone.Everyone of the 128 MIDI notes
> can be tuned separately to every frequency of the complete MIDI
> frequency range. This is a very fine tool for experimental
> tuning. The shortcoming is: Retuning requires very long data
> messages and therefore the support of quick changing tuning messages
> may cause timing problems.

This simply means three bytes of tuning data per note rather than one,
since we already use a byte to define the midi note number. Giving two
other numbers in the range 0-127 doesn't seem like either a big deal
or something which would lead to very long messages--the midi data is
already full of one-byte data messages of numbers from 0-127. In other
words, the midi note number is three times as big, and nothing else
changes. Not a big deal.

> 4. YAMAHA Real Time Tuning SysEx.
> A company-specific MIDI tuning data format. Every note of
> every MIDI channel requires a separate tuning message.
> Therefore it is too slow for modern tuning programs as every
> message requires about 10 ms.

And how much time does sending a one-byte midi note number require? If
one byte works and three bytes do not, I suspect the fault is in the
enginering, because the problem is pretty much the same either way.

This was a very informative article, but I'm not at all impressed.
Obviously, these people can and should do much better.

🔗Robert Walker <robertwalker@ntlworld.com>

10/11/2004 5:23:43 PM

Hi Gene

> And how much time does sending a one-byte midi note number require? If
> one byte works and three bytes do not, I suspect the fault is in the
> enginering, because the problem is pretty much the same either way.

It's the midi protocol for sending data over a midi cable that's the issue
here. Midi is quite old, so designed for slower data rates than are
usual now, and it is set at a fixed rate of about three bytes per millisecond
so large messages take a long time to get through the cable.

Midi messages sent within a computer from one program to another
aren't subject to the same limitation. You can send a complete
MTS tuning sysex to retune 128 notes in exactly the same time
that it takes to send a single note on if the recipient
is another program on the same computer or a soundcard.

USB midi is faster so if you can connect everything using
USB then you won't have this same limitation.

Robert

🔗Werner Mohrlok <wmohrlok@hermode.com>

10/12/2004 3:07:49 AM

Gene,

thank you for your kind answer, but please weight the following:

>-----Urspr�ngliche Nachricht-----
>Von: Gene Ward Smith [mailto:gwsmith@svpal.org]
>Gesendet: Montag, 11. Oktober 2004 21:11
>An: tuning@yahoogroups.com
>Betreff: [tuning] Re: Self-Tuning Synth

>--- In tuning@yahoogroups.com, "Werner Mohrlok" <wmohrlok@h...> wrote:

>> 1. MIDI Single Note Tuning Real Time.
>> With this data format every MIDI note may be retuned separately
>> to every frequency and in abstract with a fineness of two bytes.
>> This means 16,384 steps per halftone.Everyone of the 128 MIDI notes
>> can be tuned separately to every frequency of the complete MIDI
>> frequency range. This is a very fine tool for experimental
>> tuning. The shortcoming is: Retuning requires very long data
>> messages and therefore the support of quick changing tuning messages
>> may cause timing problems.

>This simply means three bytes of tuning data per note rather than one,
>since we already use a byte to define the midi note number. Giving two
>other numbers in the range 0-127 doesn't seem like either a big deal
>or something which would lead to very long messages--the midi data is
>already full of one-byte data messages of numbers from 0-127. In other
>words, the midi note number is three times as big, and nothing else
>changes. Not a big deal.

Indeed, this is true, as long as the system of the MIDI implementation
of the synth doesn't support different tuning tables at the same time.
But "MIDI Single Note Tuning Change Real Time" shows a byte "tt = number
of tuning table" which can handled in a way so that for instance
MIDI channel 1 (Hex 00) will be controlled by tuning table 1 (Hex 00),
MIDI channel 2 by tuning table 2 ... and so on.
If the synth is supporting the tuning message in this way you have to
send so many tuning tables as MIDI channels have to be controlled.

"MIDI Scale Octave Tuning" against this controls all selected MIDI
channels with a three byte mask in one and the same message.

>> 4. YAMAHA Real Time Tuning SysEx.
>> A company-specific MIDI tuning data format. Every note of
>> every MIDI channel requires a separate tuning message.
>> Therefore it is too slow for modern tuning programs as every
>> message requires about 10 ms.
>
>And how much time does sending a one-byte midi note number require? If
>one byte works and three bytes do not, I suspect the fault is in the
>enginering, because the problem is pretty much the same either way.

This is an error as every message for every MIDI note for every different
MIDI channel of the Yamaha Tuning Standard comprises 9 bytes.

A practical example:
There is a new event of a C major chord and it comprises
6 different notes : C2, E2, G2, C3, E3, G3
and you want to control the tuning of 4 MIDI channels at
the same time with octave-identic tuning values.

With Single Note Tuning Change you have to send a message
of 31 bytes as long as all MIDI channels will support the
same tuning table number.
Against this with 4 messages of 31 bytes as soon as the MIDI
channels have to be controlled by different tuning table numbers)

MIDI Scale Octave Tuning is controlling all notes and all
MIDI channel situations by 21 bytes.

Roland Master Scale Tuning requires
4 messages, everyone with 21 bytes = 84 bytes
(And the information, that every message requires 14 ms to be
processed is given to me by Roland itself).

Yamaha Real Time Tuning Sysex requires
6 (notes) * 4 (channels)* 9 bytes = 206 bytes

>>This was a very informative article, but I'm not at all impressed.
>>Obviously, these people can and should do much better.

Thank you for your compliment. I only want to inform
and not to impress you.

Werner Mohrlok

🔗Gene Ward Smith <gwsmith@svpal.org>

10/12/2004 2:56:20 PM

--- In tuning@yahoogroups.com, "Robert Walker" <robertwalker@n...> wrote:

> It's the midi protocol for sending data over a midi cable that's the
issue
> here. Midi is quite old, so designed for slower data rates than are
> usual now, and it is set at a fixed rate of about three bytes per
millisecond
> so large messages take a long time to get through the cable.

That's something engineers do constantly. For example they build
limitations into memory addressing. Then they do it again. And then
again. And then yet again. Trying to make standards more flexible and
evolutionary would be a grand idea--has anyone ever promoted
evolutionary design philosophy?

🔗Gene Ward Smith <gwsmith@svpal.org>

10/12/2004 3:30:21 PM

--- In tuning@yahoogroups.com, "Werner Mohrlok" <wmohrlok@h...> wrote:

> >And how much time does sending a one-byte midi note number require? If
> >one byte works and three bytes do not, I suspect the fault is in the
> >enginering, because the problem is pretty much the same either way.
>
> This is an error as every message for every MIDI note for every
different
> MIDI channel of the Yamaha Tuning Standard comprises 9 bytes.

This exemplifies my point--there is an error, but it isn't mine. I did
not define the screwed-up Yamaha Tuning Standard, Yamaha did. It's an
engineering blunder if it leads to problems, particularly if those
problems are easily predictable ones. When midi was first proposed,
and the standards people asked for public comment on the proposed
standard, my sole comments were that 128 notes were not enough, and
that microtuning should be built in from the outset. I'm sure other
people told them the same. Of course, it was all ignored by "wiser"
people, and we are still living with the consequences of that
shortsightedness. But bear in mind that none of this is a technical
limitation; it's simply the consequences of bad engineering decisions.
What Yamaha and the rest ought to be doing is trying harder to do the
decent job which wasn't done in the first place, which is what I meant
by not being impressed. It's not something Hermode is likely to have
an easy fix for.

Yes, I'm a little pissed. I was pissed, but not surprised, when the
first midi standard was finalized, because I was looking forward to
the day when home computers could be used for making music, and I
could see this wasn't going to help. I'm grateful to all of the people
who worked around things and made it happen anyway.

🔗Joseph Pehrson <jpehrson@rcn.com>

12/4/2004 4:51:26 PM

--- In tuning@yahoogroups.com, "p_heddles" <p_heddles@y...> wrote:

/tuning/topicId_56089.html#56100

> (Carl)
> > Define "standard MIDI synth".
> Um... synth which implements everything in the '83-'84 MIDI
> specification? I'm probably dreaming again...
>
> Thanks for the suggestions - I think they pretty much cover it.
>
> (Bill)
> >Not sure. ;-) Is http://www.justonic.com/ what you're after?
> Nice... it does most of what I'm after - the one extra thing I'm
> after is 'smart' automatic retuning. Thanks for the link, though.
>
> Cheers,
> Patty

***I believe this is what John DeLaubenfels implemented in
conjunction with Paul Erlich on this list...

Can't seem to find his website at the moment...

J. Pehrson