back to list

RE: Books noticed

🔗 Phil James <pjames@...>

Invalid Date Invalid Date
Received: from ns.ezh.nl ([137.174.112.59]) by notesrv2.ezh.nl (Lotus SMTP MTA SMTP v4.6 (462.2
9-3-1997)) with SMTP id C12565B9.00640C16; Sat, 28 Feb 1998 19:13:01 +0100
Received: by ns.ezh.nl; (5.65v3.2/1.3/10May95) id AA13972; Sat, 28 Feb 1998 19:14:13 +0100
Date: Sat, 28 Feb 1998 19:14:13 +0100
Received: from ella.mills.edu by ns (smtpxd); id XA13766
Received: (qmail 11572 invoked from network); 28 Feb 1998 10:12:59 -0800
Received: from localhost (HELO ella.mills.edu) (127.0.0.1)
by localhost with SMTP; 28 Feb 1998 10:12:59 -0800
Message-Id: <01BD4442.71622670.pjames@echonyc.com>
Errors-To: madole@mills.edu
Reply-To: tuning@eartha.mills.edu
Originator: tuning@eartha.mills.edu
Sender: tuning@eartha.mills.edu

🔗mr88cet@texas.net (Gary Morrison)

3/2/1998 6:17:27 PM
>> I am developing software to automatically implement alternate tunings ...
>> The idea is to
>> allow notation on a staff or piano roll without regard to the actual
>> pitches represented,
>If you don't want to reinvent the wheel ... My program, Scala, offers the
>most features.

It sounds like Brian's program proposal is a predominantly a sequencer,
and if I'm not mistaken, Scala is much more useful for calculation and
comparison of various tunings than for sequencing. True?

🔗Manuel.Op.de.Coul@ezh.nl

3/2/1998 5:58:35 AM
> I am developing software to automatically implement alternate tunings in
> MIDI files through the use of pitch bends or other methods. The idea is
to
> allow notation on a staff or piano roll without regard to the actual
> pitches represented, then processing the resultant MIDI file along with a
> scale file to produce a second MIDI file with the notes adjusted and
pitch bends
> inserted before each note to tune to the proper pitch on-the-fly.

Brian,

If you don't want to reinvent the wheel you should review existing
programs that do this. Graham Breed, Kami Rousseau and I among others
have written software along these lines. My program, Scala, offers the
most features.

> Is there an established system that precisely identifies each pitch? I
know
> that the MIDI note numbers identify 12TET but what about the rest?

There are many different microtonal notation systems each with their
advantages and disadvantages. With a fixed scale, one can use scale
degree numbers. Or one can notate a pitch explicitly in cents. But
it's usually more convenient to use note names with accidentals. In my
program there is support for several notation systems with a small
set of accidentals like # and b for semitone, / and \ for comma,
and ) and ( for diesis. There's no graphic input however, text files
or MIDI files are used for input.
Then you can give a pitch like "F#.1" where 1 stands for one octave
above middle C. The value it represents will depend on the notation
system chosen and the nearest pitch to this value in the input scale
will be used. This enables use of different tunings with the same
input file, and even use of different notation systems to a certain
extent.

The DOS version of Scala is
ftp://ella.mills.edu/ccm/tuning/software/pc/scala/scala.zip

Manuel Op de Coul coul@ezh.nl

🔗mr88cet@texas.net (Gary Morrison)

3/2/1998 6:53:56 AM
>I am developing software to automatically implement alternate tunings in
>MIDI files through the use of pitch bends or other methods.

Sounds like a great project! Good luck with it.

There has been a lot of talk in the past on this list about using
pitch-bend for implementing unusual tunings. Perhaps now would be a good
time for all of us WHO HAVE ACTUALLY TRIED IT (I haven't) to update us on
your experiences with it. Be sure to include notes on relevant aspects of
your music (e.g., how many timbres you're attempting to play at a time,
whether real slurs are common in the resulting music, how fast your notes
are playing, and probably other factors).

The problems that have been cited include that it's impossible to send
the pitch-bend message and the note-on simultaneously, and that the MIDI
1.0 spec itself does not specifically state how much a given amount of
pitch-bend deflection should affect the pitch of the note. There were
other considerations mentioned too, I think. (The simultaneity concern
regards the possibility of there being a "blurp" in either the attack of
the new note, or the release of the previous note in cases where the two
notes are completely legato or slurred).

Solutions proposed include accepting a single timbre, and allocating a
single channel for each of the nominal 12 pitches, or allocating channels
in pairs, and alternating notes between them, and sending pitch bend
messages before the next note begins playing, while the note on the other
channel is playing. (All that combined obviously with not playing more
than one pitch at a time on a given channel.)

🔗Manuel.Op.de.Coul@ezh.nl

3/3/1998 3:12:08 AM
> It sounds like Brian's program proposal is a predominantly a
sequencer,
> and if I'm not mistaken, Scala is much more useful for calculation and
> comparison of various tunings than for sequencing. True?

This would be true for older versions but the latest one is also capable of
xenharmonic sequencing, albeit in a non real-time way via MIDI files.
Anyway Brian is welcome to study my source code for his project and then we
may benefit from one another.

Manuel Op de Coul coul@ezh.nl

🔗gbreed@cix.compulink.co.uk (Graham Breed)

3/8/1998 9:49:00 AM
Gary Morrison wrote:

> There has been a lot of talk in the past on this list about using
> pitch-bend for implementing unusual tunings. Perhaps now would be a good
> time for all of us WHO HAVE ACTUALLY TRIED IT (I haven't) to update us on
> your experiences with it. Be sure to include notes on relevant aspects of
> your music (e.g., how many timbres you're attempting to play at a time,
> whether real slurs are common in the resulting music, how fast your notes
> are playing, and probably other factors).

I've been using pitch bends for a few years one way or another,
and I've never had any problems beyond the obvious, like you
have to think about how to arrange the channels, and WaveGuide,
of which more below. I have done multi-timbral sequenced stuff,
but most of the time now I just play one part in real time. If
anyone can hear slurs in my Tape Swap contribution, well, let us
know. The timing glitches are deliberate!

None of the instruments I've got have any problems with slurs.
I've heard something else, I think an Ensoniq MR Rack, that does.
I think the slurs are put in there deliberately, because they
didn't sound gated. Anyway, I can't confirm this.

I've done some pretty fast sequenced stuff. Speeded up melodic-
drums-as-chords, that sort of thing. The only problems I'm
aware of are with sending too many continuous controller messages,
usually for panning. This is a tuning related problem, because
you need to send 4 times as many messages for 4-note polyphony.

Bank selects, RPNs and NRPNs can also be a problem. They're all
compound messages and it's critical what order they arrive in.
Unfortunately, the sequencers don't seem to realise it, so I'm
going to have to put delays between them. It's only the pitch
bend range RPN that's relevant here.

Some of the AWE64's WaveGuide instruments only respond to pitch
bends before note ons. I'll have to alter my software to cope
with this. Some instruments (notably the flute) have a realistic
pitch bend response, rendering them unpredictable with pitch bend
tuning because the timbre goes with extreme bends and the pitch
can depend upon the key velocity anyway. With all this realism,
you'd expect authentic tunings but, no, the harpsichord's in
12-equal ...

> The problems that have been cited include that it's impossible to send
> the pitch-bend message and the note-on simultaneously, and that the MIDI
> 1.0 spec itself does not specifically state how much a given amount of
> pitch-bend deflection should affect the pitch of the note.

Limited precision is a problem with the DX21, but no more so than
with the TX81Z's tuning tables. If anyone comes across an
instrument that doesn't do linear pitch interpolations for pitch
bends, let us know.

In case you didn't understand that, I meant that a pitch bend
half way to a semitone will sharpen by exactly 50 cents, usw

> (The simultaneity concern
> regards the possibility of there being a "blurp" in either the attack of
> the new note, or the release of the previous note in cases where the two
> notes are completely legato or slurred).

I've used pitch bend tuning with the DX21 in mono mode, with
portamento. I can't hear any problems. It may be my ears but,
as the pitch starts to change when you press a new key, the fact
that it changes abruptly to begin with isn't at all audible.
I'd guess that a new note coming on would mask any pitch changes
in decaying notes on the same channel. You just have to make
sure they're decaying fast enough that you don't get erroneous
harmonies. It can be useful to have two channels for a single
melodic line. This also means you can do a trill with two pitches
assigned to the same MIDI note.

> Solutions proposed include accepting a single timbre, and allocating a
> single channel for each of the nominal 12 pitches,

A simple idea but a bad one. You can forget multi-timbralness,
and you're restricted to 15 or 16 notes per octave.

> or allocating channels
> in pairs, and alternating notes between them, and sending pitch bend
> messages before the next note begins playing, while the note on the other
> channel is playing. (All that combined obviously with not playing more
> than one pitch at a time on a given channel.)

No reason to stop at pairs, of course. This is how my software
works. A better algorithm would be to check to see if a channel
already has the desired pitch bend, to cut down on the number of
bends to be sent. Also, when assigning a new bend, use the
channel with the last released note, rather than the last note
on. This way, you can hold a chord with one hand and play a
melody with the other.

I have a MIDI file convertor posted at Charles Lucy's website
(http://www.ilhawaii.net/~lucy) and the source code's also there.
I made it as easy as possible for other C++ programmers to extend
it for other pitch bend projects. I've also got a Windows
program that adds pitch bends to a MIDI stream in real time.
It can be used with keyboards and sequencers. An undocumented
version can be e-mailed on request. Otherwise, I'll write a
help file as soon as I can be bothered and post it on the net.

Now, that real time program has a window that links mouse
movements to pitch bends. The software means that these bends
work with the pitch bend tuning. If you set an octave pitch
bend range there are very audible glissandi if you sweep across
a whole octave too quickly. This is the biggest pitch bend
problem I have, and it'd still be a problem with tuning tables.

This is quite a long message, so I suppose my experience does
count for something ...