back to list

All right

🔗johngilbert3x <johngilbert3x@...>

7/17/2006 5:41:31 PM

Dear Make Micro Music,

Thanks for letting me be a part of this group. I'm new to yahoo groups
so hopefully this is the right way to do this.

Could someone please get in touch with me this is in the name of art, I
must figure out some things regarding tuning to the harmonic
frequencies on the Fantom XR (or if you know of anything else) with a
MIDI sequencer/setup and which software could do this. Basically it's
a slight touch up on the Equal tempered frequencies nothing too drastic
and that goes for each musical key. I would really appreciate it if
someone could write me who has the know how on this
John

🔗Aaron Krister Johnson <aaron@...>

7/17/2006 8:16:27 PM

--- In MakeMicroMusic@yahoogroups.com, "johngilbert3x"
<johngilbert3x@...> wrote:
>
> Dear Make Micro Music,
>
> Thanks for letting me be a part of this group. I'm new to yahoo groups
> so hopefully this is the right way to do this.
>
> Could someone please get in touch with me this is in the name of art, I
> must figure out some things regarding tuning to the harmonic
> frequencies on the Fantom XR (or if you know of anything else) with a
> MIDI sequencer/setup and which software could do this.

John,

Welcome to MMM...

Is this a keyboard that allows tuning tables? Then you would tune the
tuning tables with a SYSEX dump. Scala might do this for you. Google
'scala' and 'tuning' simultaneously for more info.

if not, does it have 16 channel MIDI? then you would use pitch bend
with or without channel swapping to do your music. this could be
real-time with MIDI relaying or altering a MIDI file. Again, Scala can
do both.

There are other pieces of software out there, like 'Lil Miss Scale
Oven', etc. and 'Fractal Tune Smithy', but I can't vouch for them, I
am on a Linux platform.

Hope this helps.

Best,
Aaron.

🔗John Gilbert <johngilbert3x@...>

7/18/2006 8:17:43 PM

Hey Aaron,

Thanks for writing back. I think it does have the tuning tables. So that is good that you can tune it with a sysex dump. Do you know anything about the harmonic series and tuning to perfect intervals like a real major 3rd? My question is if it is possible to do this with MIDI or not? With Sysex and/or with pitch bend?

PEACE


---------------------------------
Yahoo! Music Unlimited - Access over 1 million songs.Try it free.

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

🔗Aaron Krister Johnson <aaron@...>

7/19/2006 11:57:33 AM

On Tuesday 18 July 2006 10:17 pm, John Gilbert wrote:
> Hey Aaron,
>
> Thanks for writing back. I think it does have the tuning tables. So that
> is good that you can tune it with a sysex dump. Do you know anything
> about the harmonic series and tuning to perfect intervals like a real major
> 3rd? My question is if it is possible to do this with MIDI or not?

Yes.

> With
> Sysex and/or with pitch bend?

Both. The hexidecimal offset values are the same in either case. Tuning dumps
are a better standard if the hardware or software for the sound generator
support them.

The best thing I can tell you is that you should calculate (you probably want
to do this with a computer script, or software for tuning, like SCALA) the
tuning table values of the harmonics you want. Usually, one works with cents
in measuring pitch, but here it's easiest to find the semitone offset values
in decimal, then convert to the hexidecimal offset value by multiplication.

After the SYSEX dump header, the bulk of the message is the table itself, with
all the MIDI note numbers and tuning offsets. Each note in the table has 3
hexidecimal bytes: xx yy zz -- the 'xx' is the MIDI note number, and the
remaining two bytes distribute the 12-equal semitone offset in 14-bit
precision, giving 16,384 possible values. Half of these are for flat values,
half for sharp. There are 14 instead of 16 bits because non-control MIDI
bytes must have a leading '0', so that takes 2 bits out of the running.

For example, let's say I want a pure 5/4 'E' above middle 'C'. Since 'E' is
MIDI note number 64, and the pure 5/4 'E' is
(log(5/4)/log(2))*12 = 3.863137.... semitones, which is to say
-0.136862861... (flat, since negative) of a semitone away from 12-equal, we
take this and multiply by 2^14, or 16,384, for 14-bit resolution, and then
add 8192, since 8192 is the center number (i.e. neither sharp of or flat of
12-equal). We then have, expressed as decimal, the value
5949.63887961.... which we must round to 5950. Now I must express this as a
two byte number, packed so that I have leading zeros, remember, so I can't
simply translate that, I need to do some 'bit twiddling'. So I divide this
number 5950 by the first significant 7-bits, or 128, to get the 'yy' byte,
and then I multiply the remainder of that by 128 to get the the 'zz' byte. I
will end up with:

note '64', 'bend' 5950 is
xx yy zz
(in hex) 40 2E 3E

These hex values are not sent in this human-readable form, they must be
converted to ASCII characters, where each byte is translated into an ASCII
character.

You can see why you'd want to automate the process. The short answer is that
you should either write a script in Python or some language of your choise to
do this, or better yet, use SCALA to convert the scale you design to help you
export the SYSEX dump as a binary file. Read the docs of SCALA for more info.

http://www.midi.org/about-midi/tuning.shtml will have some pertinent info
regarding the format of the SYSEX tuning dump.

Hope that helps!

-Aaron.