MicroTonal Scales Manual

MicroTonal Scales

WHAT IS ON THIS DlSK

This disk contains a modified version of Ensoniq's Mirage operating system version 3.2. The modifications allows you to define the pitch of each note on the keyboard to within 0.17 cents. You can create scales with any number of notes per octave or any relationship between the notes. You can then save these scales on any MIRAGE disk.

Two complete keyboard "set-up" tables are available at one time, and you can program the sustain pedal to let you switch between the two tables. Keyboard tables are stored in their own area of the disk and do not interfere with the storage of sound samples or sequences ( unless you have the sequence expander RAM module plugged into your MIRAGE. ) This disk includes sixteen scales that you can load in and experiment with to help you create your own.

WHAT IS NOT ON THIS DISK

All the features of this Micro-tonal operating system require program space that isn't available in the standard 3.2 operating system, Since sampling is a function somewhat distinct from performing, the sampling code was the first to be removed. Fortunately, the removal of the code for parameter [66] ( wavetable rotate ) was sufficient to gain the required additional space. Neither of these features is needed while performing.

Those of you who already have the Multi-Temperament disk will note the absence of the Root Key parameter. The offsets for this are extremely difficult to compute for scales with arbitrary octave lengths.

SUMMARY OF THE MICRO-TONAL DISK

NEW PARAMETERS ON THIS DISK

73off/on Alternate Scale
740 - 60 Program Note Pointer
7500-FF Note Pitch Value
760 - 14 Note Octave Value
7700-FF Key "Tweak" Value
890 - 3 Sustain Pedal Function (seq/sus/pitch/sus+pitch)
900 - 60 Transpose
911 - 61 Scale Length
92off/on"Tweaking"

NEW BUTTONS

LOAD SCALE (SAMPLE UPPER)

SAVE SCALE (SAMPLE LOWER)

SCALES RECORDED ON THIS DISK

Scale #1

A. Quarter-Comma Meantone - pure G#
B. Quarter-Comma Meantone - pure Ab

Scale #2

A. Twelve tone Equal Temperament
B. Equal temperament one quarter-tone flat

Scale #3

A. Quarter-tone Equal Temperament (24 notes / octave)
B. Quarter-tone in Alternate Octaves (octave repeated + ¼)

Scale #4

A. Ascending Pure Thirds (octaves a diësis flat)
B. Ascending Pure Fifths (octaves a Pythagorean comma sharp)

Scale #5

A. Carlos Alpha - 78 cent steps (15.4 notes / octave)
B. Carlos Beta - 63.8 cent steps (18.8 notes / octave)

Scale #6

A. Carlos Gamma - 35.2 cent steps (34.1 notes / octave)
B. Twenty-one notes / octave

Scale #7

A. Carlos Harmonic Scale
B. Sub-harmonic Scale ( (N+i)*f/N) ) for N=12

Scale #8

A. 12 Note Equal Temperament
B. Inverted 12 Note Equal

SAMPLES

  1. Harpsichord
  2. Organ Flute
  3. FM Metal Drums

HOW PITCH IS CONTROLLED IN THE MIRAGE

The Mirage is a micro-computer based instrument. A special lC (integrated circuit) known as the Q-chip actually generates the sound, but all the pitch and amplitude information needed by the Q-chip is placed in its registers by a micro-computer. The software that generates this information resides in large part in the operating system which is loaded into your Mirage each time you start it. This is indeed fortunate, because it enables you to experiment with micro-tonal tuning just by starting up with this Micro-tonal version of the operating system.

Figure #1 shows how the pitch of a note is determined when you are using the normal operating system. The incoming note event (whether from the keyboard, MIDI or the sequencer) is divided by 12 (the octave length) and the quotient is used to determine the octave. The remainder is the note within the octave and is used as an index into a temperament table. This effectively multiplies the note value by 256 /12 so that it fits the 256 pitch per octave resolution of the pitch bend, LFO, and master tuning data. These are all added in and the result is divided by 256 (This is easy since for a 16-bit hexadecimal number, the upper byte already represents the quotient and the lower byte is the remainder). The remainder is used to look up a 16-bit logarithmic pitch value in a table in Mirage ROM. The quotient then is used to calculate how many times this top-octave pitch should be divided by two to reach the desired octave. The pitch value sent to the Q-chip is actually a phase angle that is added to the wavetable pointer each time that the Q-chip completes a cycle.

Several important aspects of this process are worth noting. First, the resolution of the normal Mirage (including the master tuning) is no better than a 256th of an octave or 1200/256 = 469 cents. Equally important is the fact that phase incremental digital oscillators have an absolute resolution determined by the output sample rate and bit size of the pitch register. In this case, the sample rate is 29,411 Hz. and the pitch registers are 16-bit, so each step of the pitch parameter is 29,411 divided by 65,536 or 0.449 Hz. This is the ultimate pitch resolution of the Mirage hardware and it can't be improved by software.

In the Micro-tonal disk, the pitch is determined by a modified algorithm as shown in figure 2. First 24 hex is subtracted from the MIDI key number so that it starts at 0, and then a transpose value, parameter [90] is added. This number is then divided by the table length [91] to determine the table index pointer and octave number. The index pointer is then used to look up a pitch value and an octave value. The octave value is added to the quotient of the table length division. At this point, the 16-bit linear pitch number that is formed from octave and pitch values is the same as in the previous diagram. Tuning, pitch-bend and LFO data are now added in. The 16-bit logarithmic number that comes out of the conversion table is still only accurate to 469 cents. To gain still more accuracy, a value from a "tweak" table is added to this number before it is scaled by octaves. This can be disabled by parameter [92], tweak enable.

Not shown in figure #2 is a second set of octave and pitch tables that are activated by parameter [73], alternate scale. The sustain pedal can also be programmed to switch to the alternate tables.

It is useful to note that the table length does not have to be the same as the length of an octave. It is possible for the tables to contain several octaves of data (with the octave being determined by the octave table.) This allows programming of scales with impure octaves, non-integer lengths and odd key arrangements. When possible, the table length can be reduced to the length of an octave to avoid having to program excessive entries. The octave table is then programmed to a constant value.

PROGRAMMING YOUR OWN SCALES

The previous section described the pitch and octave tables for the two alternate scales. You can load scales in from disk or you can create your own scale tables. Sample tables at the back of this manual are a starting point, and sample BASIC programs show how you might generate your own tables.

Once you have created the data tables that you want, they must be entered into the Mirage. If your data bears any resemblance to one of the preset scales, you may save time by loading that scale and modifying it.

To enter data into the tables, first set parameter [73], alternate scale, to the scale you wish to program. Set [91], scale length, to the length of your tables. Now set [74], program note pointer, to 0. You can program the pitch and octave for the first note in your scale (the note corresponding to low C on your keyboard) with parameter [75], pitch value, and [76], octave value. Now advance [74] to 1 and repeat the previous step to program the pitch and octave data for the next table entry. Continue until [74] has reached scale length -1.

The software subtracts 7 from the octave value so that you can lower the value as well as raise it. Thus a 7 in the octave table leaves the pitch unchanged, while a 6 lowers it an octave. To give the transpose [90] a range of plus or minus an octave, then use a value of 6.

For example, to program an equal-tempered 12 note scale, set [90] and [91] to 12, and then enter the data from table 1 on the next page. You can save this scale on any Mirage disk by pressing the SAVE SCALE button (SAMPLE LOWER), scale number (1-8), and ENTER.

Scales can be loaded with LOAD SCALE (SAMPLE UPPER), scale number (1-8) and ENTER. The values of parameters 90, 91 and 92 are saved with the tables and loaded in from the disk. If you try to load a scale that was never saved, the display will blink nF (not found), but not until it has loaded bad data into the note tables. You should load a valid scale before proceeding.

7475 76
0000 06
0115 06
022B 06
0340 06
0455 06
056B 06
0680 06
0795 06
08AB 06
09C0 06
10D5 06
11EB 06

Table 1. Example of Equal Tempered Scale

GETTING EVEN BETTER PITCH ACCURACY

In most instances, the 4.69 cent accuracy of the pitch tables is quite satisfactory. When experimenting with extremely pure intervals (as in just intonation) a more precise value may be required.

If you re-examine the diagram in Figure #2, you will notice that the pitch conversion table has widely spaced entries. The difference between the values of the first and second entries is 33 hex (5l decimal). Note also that the last two entries differ by 65 hex (101 decimal) which is nearly twice the size of the step at the beginning of the table. To gain more pitch accuracy, you need to interpolate between entries in the pitch conversion table, and to add this ultra-fine tuning value in after getting the pitch data from the table.

As previously noted, the step size is not constant and a "tweak" of 19 hex that would be exactly mid-way between the first two entries of the conversion table would only be one fourth of the difference between the last two entries. Thus, the same ultra-fine tuning parameter cannot be arbitrarily added to any entry in the conversion table. While the software could be made smart enough to scale the "tweak" value in accordance with the step size, this would take too much code space and computation time.

If the pitch-bend and modulation effects are not used and the master tune and relative tune values are nearly normal, then the index value of the pitch conversion table will be constant for a given note, and probably fairly close to the value appearing in the PITCH VALUE table that you programmed. Thus it is possible to calculate an appropriate tweak value for each note on the keyboard. This value is programmed for each key on the keyboard rather than by octaves, so parameter [74] must be stepped all the way from 0 to 60 and the tweak value entered with parameter [77].

It may not be possible to choose a value that is valid for both alternate scales, and transpose, pitch-bend and modulation may produce unsatisfactory errors, but under carefully controlled conditions you can adjust the pitch of each note to within 0.17 cents, You may either calculate the appropriate value using the interpolation method shown in the sample BASIC program, or tune by ear by setting [74] to the note you are tuning and then adjusting the value of [77]. Note that you must re-strike the key in order to hear the new pitch value. The tweak table and tweak enable [92] are saved on disk with the scales.

SWITCHING SCALES WITH THE SUSTAIN PEDAL

The action of the sustain pedal is controlled by parameter [89]. It now has values of 0-3. When set to 0 the pedal is used to start and stop the sequencer. A value of 1 allows the sustain pedal to function normally. When set to 2, the sustain pedal swaps scale tables. If [73] is off then pressing sustain selects the alternate scale, while if [73] is on the normal scale will be selected. The pitch of the note is determined at the time that the key is pressed so that a note started before the pedal is pressed will not change pitch with the pedal action. Thus you can selectively change certain notes by using the pedal just before the note is sounded. When [89] has a value of 3, the pedal controls both sustain and table selection. Since the pitch is determined before a note is pressed and the sustain is determined before it is released, it is possible to control both effects with one pedal. Parameter [89] affects only the playback of the sequencer, so a sustain recorded on the sequencer when [89] was set to 1 will become a pitch change if played back with [89] set to 2.

WHY THE SOUND QUALITY OF SOME SAMPLES MAY CHANGE

You may notice that some of your samples sound different when played on some scales. The new scales often extend outside the range of the original sample. Try transposing or altering octave values to get the sample back in range. There also may be breaks or discontinuity in the timbre as you progress up the scale. This happens sometimes with multi-sampled sounds because the changeover note is no longer in the same position on the keyboard. You may have to adjust the top key of each wavesample to its new position on your special scale.

ABOUT THE SCALES ON THIS DISK

Scale #1 A, B - Quarter-Comma Meantone - pure G# / pure Ab

The Meantone scale was in common use by the end of the 15th century. It emphasizes pure thirds by making the fifths all narrow. All whole steps are half of a major third apart. Since the entire circle of fifths cannot be 1/4 comma narrow, the total error (+1¾ comma) is left between G# and Eb where it is very prominent. This problem was partly solved in many early keyboard instruments by providing a split key at G# and Ab as is done here. Press the sustain pedal to get the Ab

Scale #2 A, B - Twelve-tone Equal / Repeated ¼ tone Flat

Much music from the Middle East makes certain notes ¼ tone flat. By use of the sustain pedal, you can selectively flat any note.

Scale #3 A, B - Quarter-tone Equal / In Alternate Octaves

The first scale stretches the octave out over 24 keys. The second scale is a standard twelve-tone octave which is repeated ¼ tone higher. The keyboard map is C2-B2, C2+-B2+, C3-B3, C3+-B3+, C4-B4, C4+.

Scale #4 A - Ascending Pure Thirds

What would happen if you constructed a scale with pure thirds ascending from bottom to top. Three thirds are a diësis flat of an octave so the octaves will sound narrow. The four sets of thirds are a fifth apart. For instruments with even harmonics this scale is ghastly, but try it with sample #3 (FM Metal Drums).

Scale #4 B - Ascending Pure Fifths

This scale is similar in concept to 4A but here all fifths are made pure from bottom to top. The octaves are now a Pythagorean comma sharp. Neither of these scales is profoundly useful, but they illustrate some interesting points about pitch relationships. Cut the scale length [91] back to 12 and you will have a Pythagorean scale in A.

Scale #5 A, B, #6 A - Carlos Alpha / Beta / Gamma

If you read the interviews with Wendy Carlos in the November, 1986 issues of both KEYBOARD, and ELECTRONIC MUSICIAN, or have heard her most recent recording, BEAUTY IN THE BEAST, you will recognize these three scales. Alpha has 78 cents per step for a total of 15.4 notes per octave. Beta has steps of 63.8 cents to yield an 18.8 note octave. The Gamma scale has 35.2 cent steps and a 34.1 note octave.

Scale #6 B - Twenty-one Note Equal-temperament

If you subdivide the octave into 21 equal steps of 57.1 cents, you get a scale that has many fairly pure intervals.

Scale #7 A - Carlos Harmonic Scale

This scale is based on the ratios 17/16, 9/8, 19/16, 5/4, 21/16, 11/8, 3/2, 13/8, 27/16, 7/4 and 15/8. It produces a number of very pure intervals. The scale is based on C and must be transposed for other keys.

Scale #7 B - Sub-harmonic Scale for N=12

Sub-harmonic scales are based on the formula (N+i)*f/N. For this scale the notes are 12,13,14,15,16,17,18,19,20,21,22, and 23 twelfths of the root C. The simple ratios 5/4, 4/3 and 3/2 and 5/3 appear at the D#, E, F# and G# keys. A pure major triad on this scale is C, D#, F#.

Scale #8 A, B - 12 Note Equal / Inverted 12 Note Equal

Ever wonder what a completely inverted keyboard would sound and feel like? Probably not, but here it is anyway. It does illustrate some interesting points about inversion as an element of composition. Try the Bach recorded on sequence 1 with the keyboard upside down.

SAMPLE PARAMETER TABLES AND BASlC PROGRAMS

The tables that follow are the data used for the scales on this disk and a few additional scales you might like to explore. The tables consist of 6 columns representing the program note pointer, equivalent Mirage key, Frequency of the middle octave (based on C=261.6), the error in Hz at middle C caused by the Mirage ROM table lookup, the octave and pitch values to program, and finally the octave / pitch / tweak values for the even tighter specification.

A sample program in structured BASIC is given for generating N-cent scales (some versions of BASIC may need numbers for each line). The program consists of a scale definition section, a Mirage ROM definition section, and a table calculation section. The latter calculates the best ROM fit and extrapolates tweak values. Additional listings show how to create scale definitions for N-note, pure thirds, pure fifths, harmonic scales and a family of historic 12-note scales. These definition programs can be grafted onto the first listing in place of the N-cent definition to create parameter tables for the other scales.

BASIC program code in plain text here.

Back