The SuperMIDI Disk ManualSuperMIDI

Contents:

Functions

MIDI Volume Control

A major feature that was missing from the original Ensoniq operating system is MIDI control of volume. This disk implements two different modes of control. In the simple mode, Presets [75]=OFF, the upper and lower voices are controlled directly by the MIDI devices specified by Lower Volume Controller [76] and Upper Volume Controller [77]. These can be any MIDI controller though the usual value is 7 ( see the list of MIDI controllers in the appendix.) The MIDI controllers can also used to control local keyboard volume by turning on MIDI Controllers to Local [85].

When Presets [75]=ON separate controllers can be defined for each of the upper and lower programs. Parameter [76] now sets the controller for the current lower (Ll-L4) and [77] sets the controller for the current upper program (Ul-U4). A different controller can be specified for each program. Program controller assignments are saved on disk with each sound file and will be brought back the next time that the sound is loaded. Thus a saxophone sample on the upper keyboard can be controlled by a breath controller while the trombone sample in lower is controlled by a volume pedal. An organ sample can set the volume pedal to control the entire keyboard (L1&UI). A second pedal for the upper can be called in with U2. Setting [75]=0FF returns the original non-preset controllers.

Sostenuto Pedal

Parameter [89] selects local sustain pedal function. When [89]=2 the pedal acts as a sostenuto pedal. Whatever notes are down at the time the sostenuto pedal is pressed will be held until it is released. With the pedal down, the keyboard can be played normally on top of the held notes. The pitch-bend and mod wheel do not now affect the notes that have been held. An external MIDI sostenuto pedal controls MIDI notes. If [85]=ON then the external controller will also affect local keyboard notes. Parameter [91] sets the device number of the MIDI sostenuto controller.

Transpose

Parameter [73] is used to transpose to a different key or to extend the range of a sample. Its default value of 24 is the normal un-transposed pitch. Increasing this value a step raises the pitch a semi-tone. Reducing the value to zero lowers the pitch by two octaves while increasing it to 48 raises the pitch by two octaves. (Also see Expansion Modes)

MIDI Transmit Channel

Parameter [74] determines the MIDI transmit channel. Parameter [82] now selects only the receive channel. When LOCAL [30]=OFF the MIRAGE can act both as a controller and a separate independent sound module.

MIDI Expansion Modes

Parameter [83] controls several important features when an external MIDI module (such as the DMS-8) is connected to the MIDI output. When [83]=2,3,4 or 5 note events and controller and program change information are passed to the external module. In these expansion modes the pitch of both the MIRAGE and the external module are transposed by the value of Transpose [73]. Incoming MIDl notes are transposed before being sent out.

When MIDI Expansion Mode [83]=0 the MIDI output acts as a thru port, repeating the input exactly. System messages are not transmitted to the MIDI output in any mode except MIDI thru. If [83]=1 only local events are sent to the output port. When [83]=2 all MIDI input and local note events, controller data and program changes are transmitted.

When [83]=3, the MIRAGE operates in MIDI overflow mode. If more than 8 notes are played simultaneously, the additional notes are sent out the MIDI port. Adding a DMS-8 to a MIRAGE gives l6 note polyphony. Additional DMS-8s can expand polyphony even further. If [83]=4 then the MIRAGE responds to even-numbered notes ( C, D, E, F#, G#, A# ) while the odd-numbered notes ( C#, D#, F, G, A, B ) are sent out the MIDI port. When [83]=5 the odd-numbered are played and the even passed out the MIDI port. (All note-off events are sent, even though the note-on may not be sent.)

Controller Output Device Numbers

The MIDI output of the sustain pedal and modulation wheel can now be re-mapped onto different output device numbers. Parameter [92] determines the sustain pedal output device number while [93] determines the mod wheel device number. The default values are normal 40 and 01.

Program Increment Button

When the SAMPLE UPPER button is pressed, both upper and lower program numbers will advance by one, allowing you to access the programs more easily. Programs can still be set in the normal way. Note that if L1&U2 are set, then this button will advance them to L2&U3.

"Panic" Button

Whenever MIDI cables, patches or channels are changed, it is always possible to create a note-on event without a corresponding note-off. Press the former SAMPLE LOWER button to turn off all local notes, send the "All Notes Off" command out the MIDI port, and restore volume controllers to full.

Front Panel Commands

The MIDI system exclusive code for the front panel has been restored. When [84]=2,3 the front panel sequence ( F0 0F 01 01 dd dd .... dd F7 ) can be used to press buttons over MIDI using the codes in the appendix.


Parameter Summary

[73] - TRANSPOSE (0-48) {24} (± 2 octaves)

[74] - MIDI Xmit Channel (1-16) {1}

[75] - Volume Controller Presets (OFF/ON) {off}

[76] - Lower MIDI Volume Controller Number (00-3F) {7}

[77] - Upper MIDI Volume Controller Number (00-3F) {7}

[83] - MIDI Expansion Mode (0-5) {1}

0 - Thru Mode
1 - Off (local events only)
2 - Transpose
3 - Overflow (notes > 8)
4 - Even Notes (odd sent)
5 - Odd Notes (even sent)

[85] - MIDI Controllers to Local (OFF/ON) {off}

[86] - Sequencer Clock Mode (0-2) {0}

0 - Internal
1 - External MIDI Clock
2 - External Clock Jack

[89] - Local Sustain Pedal Function (0-2) {1}

0 - Sequencer Control
1 - Sustain
2 - Sostenuto

[90] - MIDI Sustain Input Controller Number (40-4F) {40}

[91] - MIDI Sostenuto Input Controller Number (40-4F) {42}

[92] - Sustain Pedal 0utput Controller Number (40-4F) {40}

[93] - Mod Wheel Output Controller Number (01-3F) {01}

New Front Panel Buttons

[SAMPLE UPPER] - Select next program ( Ln+1, Un+1 )

[SAMPLE LOWER] - Panic Button (local and MIDI "all notes off")


Implementation Notes

Volume control on the Super-MIDI disk is accomplished by scaling the amplitude envelope. Because of the way the Mirage™ is constructed, this is the only way that volume can be implemented in software. The filter circuit follows after the amplitude controlling DAC, so simple modulation of the envelope is not sufficient. At very low volume levels, the filter output would contain noise, modulated by the filter envelope. In order to prevent this, the filter envelope is also controlled by the volume input. For the first sixth of its range, the volume pedal also opens the filter. When the pedal has reached this point, the filter is fully open and stays open throughout the upper volume range.

An additional constraint is placed on the volume control software by the hardware design. The amplitude resolution of the digital oscillators is 8 bits. When the volume is halved, only 7 bits are available. At one hundredth of the original volume, only one bit of envelope data is left representing just on or off. With some envelopes, this reduction in resolution can be heard. For a live performance this is really not a problem, but for precise studio work, a MIDI mixer is probably a better method of controlling volume.

The sostenuto function works by re-assigning the held notes to the sequencer. The pitch-bend and modulation wheel settings in effect at the moment the pedal is pressed are copied into the sequencer's controller table. When the sequencer is running while the sostenuto pedal is in use, results can be unpredictable, since sequencer control of pitch-bend, modulation and sustain pedal will also affect the notes held by the sostenuto. Probably it is not wise to run the sequencer if you are using the sostenuto pedal. Note that the MIDI input number for the sustain pedal [90] can be changed, and the sostenuto controller [91] set to the sustain device (40). This allows you to use the local sustain pedal for sustain and the MIDI pedal for sostenuto, though the opposite ( [89]=2, [92]=42 ) is to be preferred for the master controller when used with MIDI expansion.

In MIDI expansion modes, the pitch-bend, aftertouch and controller data are passed on to the MIDI output. Program change data also is passed through. System exclusive data and clock data are not passed through. Note event and poly after-touch data are transposed by [73] so that only the first device in the chain needs to be changed. All note-off events are sent to the MIDI output, even though an equivalent note-on may not have been sent (overflow or odd/even modes). The MIDI output channel is selected by [74] and can be different than the input channel [82].


Appendix

MIDI Standard Controller Device Numbers

MSB LSB 14-bit CONTINUOUS # FOOT SWITCH and 7-bit
00 20 -- not defined -- 40 Sustain Pedal
01 21 Modulation Wheel 41 Portamento
02 22 Breath Controller 42 Sostenuto Pedal
03 23 -- not defined -- 43 Soft Pedal
04 24 Foot Controller 44 -- not defined --
05 25 Portamento Time 45 Hold Pedal #2
06 26 Data Entry Slider 46 -- not defined --
07 27 Main Volume 47 -- not defined --
08 28 Balance Control 48 -- not defined --
09 29 -- not defined -- 49 -- not defined --
0A 2A Pan Controller 4A -- not defined --
0B 2B Expression Controller 4B -- not defined --
0C 2C -- not defined -- 4C -- not defined --
---- ---- -------------------- ---- --------------------
0F 2F -- not defined -- 4F -- not defined --
10 30 General Purpose #1 50 General Purpose #5
11 31 General Purpose #2 51 General Purpose #6
12 32 General Purpose #3 52 General Purpose #7
13 33 General Purpose #4 53 General Purpose #8
14 34 -- not defined -- 4F -- not defined --
---- ---- -------------------- ---- --------------------
1B 3B -- not defined -- 5B -- not defined --
1C 3C -- not defined -- 5C Tremolo Depth
1D 3D -- not defined -- 5D Chorus Depth
1E 3E -- not defined -- 5E Detune ( Celeste )
1F 3F -- not defined -- 5F Phaser Depth

Front Panel Command Codes

00 Digit 0/ Prog 0C Parameter
01 Digit 1 0D Value
02 Digit 2 0E up / on
03 Digit 3 0F down / off
04 Digit 4 10 Load Upper
05 Digit 5 11 Load Lower
06 Digit 6 12 Next Program (Sample Upper)
07 Digit 7 13 All Notes Off (Sample Lower)
08 Digit 8 14 Record Sequence
09 Digit 9 15 Play Sequence
0A Enter/Start 16 Load Sequence
0B Cancel/Stop 17 Save Sequence

Back