back to list

MTS (was: Fwd: [tuning-math] Mu explained)

🔗monz <monz@attglobal.net>

7/8/2003 1:45:49 AM

----- Original Message -----
From: "Gene Ward Smith" <gwsmith@svpal.org>
To: <tuning@yahoogroups.com>
Sent: Monday, July 07, 2003 2:19 PM
Subject: [tuning] Re: Fwd: [tuning-math] Mu explained

> --- In tuning@yahoogroups.com, "monz" <monz@a...> wrote:
>
> > when MIDI tuning is implement so that the
> > plain 12edo MIDI-note is indicated by the
> > *center* value in the tuning range, as it usually
> > is (and as you described it), then the most
> > significant bit is being used simply to represent
> > that MIDI-note and indicate by a 0 or 1 whether
> > the other bits indicate a microtuning below or
> > above that note, respectively.
>
> This is *not* how the MTS works, however. Let's
> please get that part right!

right, i understand that now!

MTS simply uses the convention of all 14 microtuning
data bits set to zero to represent the 12edo MIDI-note,
which of course then allows all 14 bits to be used
for the actual microtuning data.

so the first byte of the 3-byte word giving the
frequency data specifies a 12edo MIDI-note, and
then the next two bytes indicate the microtuning
above that base frequency, to 14-bit precision.

where is the documentation for MTS? the only decent
thing i've found on it is this:

http://home.austin.rr.com/ginasbaskets/microtonal-synthesis/MIDItuning.html

the description of "Frequency data format (all bytes in hex)"
is at the very bottom:

where the frequency data is a 3-byte word [xx yy zz],

>> xx = semitone (MIDI note number to retune to,
>> unit is 100 cents)
>>
>> yy = MSB of fractional part (1/128 semitone
>> = 100/128 cents = .78125 cent units)
>>
>> zz = LSB of fractional part (1/16384 semitone
>> = 100/16384 cents = .0061 cent units)
>>
>> 7F 7F 7F is reserved for no change to the existing note tuning

-monz

🔗Gene Ward Smith <gwsmith@svpal.org>

7/8/2003 2:07:28 AM

--- In tuning@yahoogroups.com, "monz" <monz@a...> wrote:

> so the first byte of the 3-byte word giving the
> frequency data specifies a 12edo MIDI-note, and
> then the next two bytes indicate the microtuning
> above that base frequency, to 14-bit precision.

That's one way to think of it; however there really is no
distinction, in the sense that the first byte is simply the first
digit of a three-digit number.

> where is the documentation for MTS? the only decent
> thing i've found on it is this:

I don't know if you'd call it decent, but I got my info from a page
Manuel posted and which you have already seen:
.
.
.
http://www.midi.org/about-midi/tuning.shtml

🔗monz <monz@attglobal.net>

7/8/2003 7:31:39 AM

hi Gene,

> From: "Gene Ward Smith" <gwsmith@svpal.org>
> To: <tuning@yahoogroups.com>
> Sent: Tuesday, July 08, 2003 2:07 AM
> Subject: [tuning] Re: MTS (was: Fwd: [tuning-math] Mu explained)
>
>
> --- In tuning@yahoogroups.com, "monz" <monz@a...> wrote:
>
> > so the first byte of the 3-byte word giving the
> > frequency data specifies a 12edo MIDI-note, and
> > then the next two bytes indicate the microtuning
> > above that base frequency, to 14-bit precision.
>
> That's one way to think of it; however there really is no
> distinction, in the sense that the first byte is simply the first
> digit of a three-digit number.

hmm ... well, MIDI itself thinks of it the way
i described it. *your* way is the alternate way,
and i can see its usefulness from your perspective. :)

in what follows, i'm using binary, hexadecimal (H),
and decimal values.

the first byte of a MIDI pitch-bend command must
begin with the first 4 bits set to 1110 = E(H)
= 15 decimal. that's the part of the word that
indicates that this byte and the next two are
a pitch-bend command.

but actually, since these 4 bits are just the
first half of a byte, and decimal numbers are
generally converted from bytes, this component
represents a decimal value of 224.

a MIDI pitch-bend command is of the format
1110 nnnn , where "1110" are the 4 bits which
mean "pitch-bend" and "nnnn" are the 4 bits
which represent the MIDI channel numbers 1-16,
which are stored internally as 0-15 = 0-F(H).

128 64 32 16 8 4 2 1
1 1 1 0 0 0 0 0 = 224 decimal = E0(H)

128 64 32 16 8 4 2 1
1 1 1 0 1 1 1 1 = 239 decimal = EF(H)

so, translated into decimal, the first byte of a
pitch-bend command can run from 224 for what humans
generally call MIDI-channel 1 and the computer calls
MIDI-channel 0, to 239 for MIDI-channels 16 or 15,
respectively.

the two data bytes which follow have an entirely
different structure, using the first bit zet to 0
to indicate its status as a data byte, and the
following 7 bits for the data values, as explained
on my "MIDI tuning" page.

> > where is the documentation for MTS? the only decent
> > thing i've found on it is this:
>
> I don't know if you'd call it decent, but I got
> my info from a page Manuel posted and which you
> have already seen:
> .
> .
> .
> http://www.midi.org/about-midi/tuning.shtml

... ahem, yes, i've already corrected it as well ...

oh, then those two are it?

so what software (or hardware?) is actually using MTS?
is Turtle Beach still the only one?
http://www.steelydan.com/dennys.html

-monz

🔗monz <monz@attglobal.net>

7/8/2003 9:28:34 AM

OOPS! ...

> From: "monz" <monz@attglobal.net>
> To: <tuning@yahoogroups.com>
> Sent: Tuesday, July 08, 2003 7:31 AM
> Subject: Re: [tuning] Re: MTS (was: Fwd: [tuning-math] Mu explained)
>
>
> <snip>
>
> the first byte of a MIDI pitch-bend command must
> begin with the first 4 bits set to 1110 = E(H)
> = 15 decimal. that's the part of the word that
> indicates that this byte and the next two are
> a pitch-bend command.

of course, 1110 binary = E(H) = 14 decimal, not 15.
a simple typo.

> but actually, since these 4 bits are just the
> first half of a byte, and decimal numbers are
> generally converted from bytes, this component
> represents a decimal value of 224.

... but this is still correct. 14 * 16 = 224,
and in hexadecimal it's E0(H).

> 128 64 32 16 8 4 2 1
> 1 1 1 0 0 0 0 0 = 224 decimal = E0(H)

in MIDI, the overall frequency data for any given
note is thus expressed in 5 bytes in the following
format:

--- note-on word-- ----------- pitch-bend word ----------
byte byte byte byte byte
note-on MIDI-note pitch-bend p.b.data LSB p.b.data MSB

-monz

🔗alternativetuning <alternativetuning@yahoo.com>

7/8/2003 9:40:47 AM

--- In tuning@yahoogroups.com, "monz" <monz@a...> wrote:

>
> so what software (or hardware?) is actually using MTS?
> is Turtle Beach still the only one?
> http://www.steelydan.com/dennys.html
>
>
>
> -monz

May be this is a good time to survey tuning listers about their
software and hardware resolution?

I use Max and pd, both resolution in the software to one cent or exact
frequencies to 1/100 Hz.

CSound uses "pch", resolution to one cent, or "oct", resolution to 1.2
cent, or "cps" in frequency. The examples from Bill Alves show six
decimal places after the point and also ratios expressed in decimal
format to six places.

I know that "wavmaker" resolves as deep as the sampling rate allows,
the tuning tables can have many decimal places, and takes full MTS
pitchbend messages, but it goes one step further in you can specify
the width of the interval (in semitones) that the 16304 units are
distributed over for each instrument patch.

Gabor

🔗monz <monz@attglobal.net>

7/8/2003 11:07:34 AM

> From: "monz" <monz@attglobal.net>
> To: <tuning@yahoogroups.com>
> Sent: Tuesday, July 08, 2003 9:28 AM
> Subject: Re: [tuning] Re: MTS (was: Fwd: [tuning-math] Mu explained)
>
>

> in MIDI, the overall frequency data for any given
> note is thus expressed in 5 bytes in the following
> format:
>
> --- note-on word-- ----------- pitch-bend word ----------
> byte byte byte byte byte
> note-on MIDI-note pitch-bend p.b.data LSB p.b.data MSB

just thought i should mention ... the "note-on" command
also expects 2 data bytes after it: one for the
MIDI-note number as i've shown, and also another one
for key velocity, which generally represents loudness.

i left that out since it doesn't concern frequency.

also, of course, for plain 12edo no pitch-bend
commands are necessary; note-on suffices by itself.

but for microtonal frequency data, all 5 bytes
are required for each note, as i've shown.

-monz

🔗Gene Ward Smith <gwsmith@svpal.org>

7/8/2003 3:26:25 PM

--- In tuning@yahoogroups.com, "monz" <monz@a...> wrote:

> > That's one way to think of it; however there really is no
> > distinction, in the sense that the first byte is simply the first
> > digit of a three-digit number.

> hmm ... well, MIDI itself thinks of it the way
> i described it. *your* way is the alternate way,
> and i can see its usefulness from your perspective. :)

Unless we are on the sci-fi channel and don't realize it, midi
doesn't think, so I'm left wondering what you actually mean by this.

> in what follows, i'm using binary, hexadecimal (H),
> and decimal values.
>
> the first byte of a MIDI pitch-bend command must
> begin with the first 4 bits set to 1110 = E(H)
> = 15 decimal.

Once again, I wasn't talking about pitch bends! I was responding to
your comment about MTS, which is *not* pitch bend.

> so what software (or hardware?) is actually using MTS?
> is Turtle Beach still the only one?

Audio Compositor and (due to Manuel's prodding) the newest Timidity
is all I know of.

🔗Gene Ward Smith <gwsmith@svpal.org>

7/8/2003 3:35:45 PM

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

> CSound uses "pch", resolution to one cent, or "oct", resolution to
1.2
> cent, or "cps" in frequency. The examples from Bill Alves show six
> decimal places after the point and also ratios expressed in decimal
> format to six places.

"Pch" and "oct" are merely for convenience, "cps" is the basic Csound
system. A typical C language float is about six significant digits
with an exponent of about 10^(+-38), and this may be what Csound is
using. A double would probably be overkill.

🔗monz <monz@attglobal.net>

7/8/2003 8:00:35 PM

----- Original Message -----
From: "Gene Ward Smith" <gwsmith@svpal.org>
To: <tuning@yahoogroups.com>
Sent: Tuesday, July 08, 2003 3:35 PM
Subject: [tuning] Re: MTS (was: Fwd: [tuning-math] Mu explained)

> --- In tuning@yahoogroups.com, "alternativetuning"
> <alternativetuning@y...> wrote:
>
> > CSound uses "pch", resolution to one cent, or "oct", resolution to
> 1.2
> > cent, or "cps" in frequency. The examples from Bill Alves show six
> > decimal places after the point and also ratios expressed in decimal
> > format to six places.
>
> "Pch" and "oct" are merely for convenience, "cps" is the basic Csound
> system. A typical C language float is about six significant digits
> with an exponent of about 10^(+-38), and this may be what Csound is
> using. A double would probably be overkill.

but don't forget ... what you finally hear is
totally dependent upon the resolution of your
hardware, which, if you're using Csound to drive
your computer's soundcard, seems to be pretty much
768edo.

-monz

🔗Carl Lumma <ekin@lumma.org>

7/8/2003 8:44:16 PM

>but don't forget ... what you finally hear is
>totally dependent upon the resolution of your
>hardware, which, if you're using Csound to drive
>your computer's soundcard, seems to be pretty
>much 768edo.

Csound is typically used to render to wave, monz.

-Carl

🔗monz <monz@attglobal.net>

7/8/2003 8:54:00 PM

> From: "Carl Lumma" <ekin@lumma.org>
> To: <tuning@yahoogroups.com>
> Sent: Tuesday, July 08, 2003 8:44 PM
> Subject: Re: [tuning] Re: MTS (was: Fwd: [tuning-math] Mu explained)
>
>
> > but don't forget ... what you finally hear is
> > totally dependent upon the resolution of your
> > hardware, which, if you're using Csound to drive
> > your computer's soundcard, seems to be pretty
> > much 768edo.
>
> Csound is typically used to render to wave, monz.

ah, yes ... i haven't played around with it for
years, and forgot about that.

so ... never mind what i said.

-monz

🔗Gene Ward Smith <gwsmith@svpal.org>

7/8/2003 9:18:40 PM

--- In tuning@yahoogroups.com, "monz" <monz@a...> wrote:

> but don't forget ... what you finally hear is
> totally dependent upon the resolution of your
> hardware, which, if you're using Csound to drive
> your computer's soundcard, seems to be pretty much
> 768edo.

Csound is not used to drive soundcards.

🔗Joseph Pehrson <jpehrson@rcn.com>

7/10/2003 6:24:07 PM

--- In tuning@yahoogroups.com, "alternativetuning"

/tuning/topicId_45366.html#45371

<alternativetuning@y...> wrote:
> --- In tuning@yahoogroups.com, "monz" <monz@a...> wrote:
>
> >
> > so what software (or hardware?) is actually using MTS?
> > is Turtle Beach still the only one?
> > http://www.steelydan.com/dennys.html
> >
> >
> >
> > -monz
>
>
> May be this is a good time to survey tuning listers about their
> software and hardware resolution?
>

***TX81Zs are 1.56 cents maximum resolution. I think that's a pretty
common one for some other synths as well...

J. Pehrson