THE �ZTAR� MIDI CONTROLLER

 

Bradford J. Rodriguez, Ph.D.

T-Recursive Technology, Collingwood, Ontario, Canada

and

Harvey Starr

Starr Labs, San Diego, California, USA

 

ABSTRACT

The Starr Labs �Ztar� is a guitar-like controller for MIDI musical synthesizers. Unlike devices which attempt to derive a MIDI control stream from the audio output of a conventional guitar, the Ztar is a fully digital instrument with an internal microprocessor and sensors for frets and strings.

Hundreds of sensors must be sampled and processed in real time to generate a MIDI control stream, and to avoid timing discrepancies that would be painfully noticeable in a musical performance. The Ztar uses a Zilog Super8 microprocessor, programmed in a mixture of Forth and assembler, to satisfy these requirements.

MIDI

The Musical Instrument Digital Interface (MIDI) was originally designed as a protocol to carry control commands from a manual controller (such as a keyboard) to a music synthesizer. These commands may represent "turn note on" or "turn note off," to name the two most common examples. Musical performances have demanding timing requirements -- a note duration of 1/64 of a beat is not uncommon. Therefore MIDI is carried at 31.25 Kbaud (320 microseconds per byte), and a note command can take as few as two bytes [MMA88].

MIDI can command 128 different notes on or off -- more than enough for an 88-key piano keyboard -- on any of 16 control "channels." The 16 channels may represent 16 different synthesizers, or 16 "voices" on a single synthesizer: channel 1 may be "piano," channel 2 "pipe organ," and so forth. The Note-On command specifies channel number, note number, and "velocity" -- an analog value representing how hard the key was struck.

Additional commands support:

There are also MIDI commands for automatic "sequencers" which play a programmed series of notes at a scheduled pace. A versatile MIDI controller should be able to generate most of these commands.

THE ZTAR INSTRUMENT

A guitar is normally played by "fretting" a string (pressing the string on the fingerboard at the right place to select the desired note), and then striking or strumming the string. The Ztar instrument is played the same way; but notes are selected by pressing pressure-senstitive keys which run the length of the fingerboard, rather than pressing guitar strings (the positions of these keys mimic the conventional guitar). The note is played by striking a string-like "trigger" on the body of the instrument; this trigger may be either a pressure-sensitive key, or a conventional guitar string with an electronic pickup. If guitar strings are used, it is only to provide a trigger signal; not to generate sound.

In the "guitar" mode, the trigger signal will cause the selected note for that string to be output. But two additional options are available to the Ztar player. If the "piano" mode is selected, the note is output as soon as it is selected on the fingerboard -- not requiring a trigger to be struck. If the "poly" mode is selected, multiple notes may be fretted on a single string, and all will be played when the trigger is struck: essentially playing a chord from one string. If these modes are combined, notes and chords may be played on the fingerboard as though it were a conventional keyboard. In all modes, both the initial velocity and the "afterpressure" of the fingers is sensed and output to the synthesizer.

The fingerboard represents a 6x24 key matrix (6 strings, each having 24 frets). This matrix may be divided into 16 overlapping rectangular "zones." Each zone may control a different MIDI channel; thus the six strings can control six different channels, or the lowest frets on the strings can be used for special effects. Each zone can also have unique tuning (transposition).

Beyond the guitar functions, the Ztar includes six or twelve pressure sensitive pads, which can be programmed for a variety of special effects. For example, a pad can send a programmed chord to the synthesizer when struck -- useful for drum effects -- or a pad may act as a continuous controller, to provide pitch bend or afterpressure (to name just two examples). A wide variety of MIDI commands can be programmed into the pads.

Other analog controllers supported by the Ztar are a joystick, two footpedals, and a breath controller. These may be programmed to control any of the MIDI continuous controller values, such as volume, pitch bend, and modulation.

The Ztar is programmed through a menu-driven operator interface, using a 2x40 LCD display and attached 11-key keypad. There are also up to sixteen "hot keys" which are dedicated to specific control functions (such as to select the "triggered" vs. "piano" mode described earlier, or to increase and decrease the synthesizer volume).

SOFTWARE ARCHITECTURE

The software is divided into two parts: the "Live mode" functions (those which are involved with producing MIDI note outputs), and the operator interface or "Edit mode" functions. (Despite the name, the instrument remains "live" and able to output notes even when in the Edit mode.)

In Live mode, the Ztar must continuously scan 144 fingerboard keys, 6 strings, 12 pads, and assorted analog controllers, looking for an event which will produce a MIDI output. Ideally, the instrument should be able to detect a keypress and a trigger event, map that physical key to one or more programmed "zones," and generate and output the corresponding MIDI "note" commands, all within a few milliseconds. For this reason, the "live mode" functions are written in Super8 assembly lanauge.

In Edit mode, the Ztar performs the Live mode functions, and also scans the keypad and updates the LCD display. The Ztar presents a hierarchical set of menus, and within each menu are parameters which can be selected and altered. This operator interface code is not time-sensitive, and is written almost entirely in high-level Forth.

The Ztar was originally developed using Inner Access Forth for the Zilog Super8, a resident Forth compiler/interpreter that was supplied by Zilog in an external ROM. Since this package did not include a Super8 assembler, it was necessary to translate assembler code with the separate Zilog cross-assembler, and then manually insert the resulting object code (in hex) into the Forth source. As the program became more elaborate, this development environment became excessively awkward.

So, in early 1997 the Ztar program was converted to the MicroProcessor Engineering Super8 cross-compiler. In addition to providing a symbolic Super8 assembler, the conversion to MPE Forth offered these benefits:

MPE Forth also includes a multitasker. While the program is not currently so programmed, its organization lends itself well to multitasking. In the future we expect to separate the Live and Edit functions into two separate tasks.

FUTURE DIRECTIONS

Several variations of the Ztar product have been produced, using the same basic processor and software platform. Recently a new "D5" CPU board has been designed, with a smaller form factor and greatly expanded memory and I/O capacity, expanding further the range of musical instruments which can be created by Starr Labs.

The simplest variation, the "Zbass," involves removing two "strings" from the basic Ztar (and modifying the software accordingly). This produces a four-string instrument suited to bass guitarists.

The "Z-board" is a keyboard instrument: essentially a Ztar with no string triggers, played exclusively in the "piano" and "poly" modes. The Z-board offers an expanded 288-key fingerboard, organized as twelve "strings" (rows) of 24 keys, in desktop package.

Starr Labs has recently introduced the Microzone, a "microtonal" keyboard for music theorists. This dispenses with the conventional 12-note musical scale and instead allows the octave to be arbitrarily subdivided. The Microtonal keyboard has 810 keys in a hexagonal array, and like the Z-board, is played in "poly/piano" mode. It requires a MIDI synthesizer which is capable of generating notes at arbitrary intervals.

Currently under development is a Percussion Controller, a MIDI controller for drummers. This instrument expands upon the "pad" functions of the Ztar, allowing up to 32 external pads using a variety of physical sensors. It has no fingerboard or string triggers. The pads are programmable with an extensive range of MIDI functions and sequence effects.

REFERENCES

[MMA88] MIDI Manufacturers Association, MIDI 1.0 Detailed Specification, Document Version 4.0 (June, 1988). Los Angeles, CA: International MIDI Association, 1988.

Information about Starr Labs� products can be found at <http://www.catalog.com/starrlab>.