Subsystem Search

This page is read from MIDI Instrument Definitions, a Python library used in the author's other projects, in which every number is traced to a document its maker published. Its source is on GitHub.

Access Virus TI MIDI implementation

The MIDI implementation of the Access Virus TI: what it answers to, and the 8 controls it offers.

At a glance

Firmware
Not recorded.
MIDI channel
Any one of 1 to 16.
Parts
Part, 16 of them: each on a MIDI channel of its own.
Voices
Not recorded.
Note range
Not recorded.
Velocity
Received.
Aftertouch
Channel pressure, one value for every key.
Pitch bend
How far it bends is not recorded, and the range can be changed.
Program change
Received.
MIDI clock
Sent and received.
Start and stop
Not recorded.
Control change
8 controls, in the tables below.
NRPN
Not recorded.
System exclusive
Supported.

Controls

In the order the definition gives them, by part and group. Under each control is the name a program calls it by, once pymidiinstrumentdefs.load("access/virus_ti") has loaded them.

On the base MIDI channel

Control CC Values
Channel Volume
channel_volume
7 0-127
Panorama
panorama
10 0-127
Expression
expression
11 0-127
Hold Pedal
hold_pedal
64 0-127

Part

Control CC Values
Channel Volume
part_channel_volume
7 0-127
Panorama
part_panorama
10 0-127
Expression
part_expression
11 0-127
Hold Pedal
part_hold_pedal
64 0-127

Where these facts come from

Source documents

How they were read

Two documents, and neither carries a control change map: the Virus TI manual (218 sheets, 2006), which the maker files under "Virus TI1 Series" (manuals_page), and the Virus TI Reference (80 sheets, 2013), filed under "Virus TI2 Series" (manuals_page) and headed "PARAMETER REFERENCE MANUAL" (reference p. 6) on its pages. The manuals page and the downloads page are cited for what the maker offers and for the list that is not among it.

WHAT IS HERE INSTEAD OF A MAP is the configuration reference - the manual's pp. 153 to 158 and the Reference's config menu - which states how the instrument behaves over MIDI without ever numbering a controller. Every field below comes from there.

THREE MACHINES, NAMED WHERE A DOCUMENT HAS TO BE EXACT. The manual's declaration of conformity lists "ACCESS VIRUS TI DESKTOP" (manual p. 174), "ACCESS VIRUS TI KEYBOARD" (manual p. 174) and "ACCESS VIRUS TI POLAR" (manual p. 174) - the maker spells the third Pølar in its body text and Polar in the later document. The later document adds the TI2 and the Snow, and distinguishes them where the panels differ. The manual names no earlier model anywhere, a ROM-K patch called Virus B (manual p. 202) aside.

AND ONE MIDI DIFFERENCE BETWEEN THEM IS STATED: "Note: The 'Keyboard' pages are only available in keyboard versions of the Virus" (manual p. 155). Those pages are local control, the keyboard's MIDI mode, the transmit controller numbers for the wheel and the two pedals, and the pressure and velocity curves. So a desktop has no local control setting and chooses no transmit controller numbers - which is a difference in what it sends and in what can be switched, not in what it answers to.

THE TWO DOCUMENTS ARE NOT ONE SUPERSEDING THE OTHER. The 2013 Reference adds the later operating system's oscillators, envelopes, filters and effects, and drops the whole keyboard section, the whole of remote mode, and the sentence about the parameter list. So the 2006 manual is the only source for local control, the transmit assignments and the curves, and the 2013 one the only source for what came after it. Neither contains the other.

PAGES OF THE REFERENCE ARE CITED AS FILE PAGES. It is laid out as two-up spreads, so its printed folios run at roughly twice its sheet count and a printed page number would name the wrong sheet. The manual's folios and sheets agree and are cited as printed.

FOUR CONTROLLER NUMBERS ARE NAMED AS THINGS THE INSTRUMENT ANSWERS TO, and that is the whole of it. "Patch Volume reacts to MIDI CC#7 (Channel Volume) as well as CC#11 (Expression)" (reference p. 48); "Reacts to MIDI CC#10 (Panorama)" (reference p. 48); and a part setting reads "Disabled, Enabled: Specifies whether the Part will respond to MIDI CC#64 (usually a Sustain Pedal)" (manual p. 169). Two of the four are switchable - "MIDI Volume > Disabled, Enabled: Specifies whether MIDI CC#7 (volume) will be recognized" (manual p. 153), and the part's own "Volume RX".

ALL FOUR ARE WRITTEN TWICE. Naming no part a control is on the Global Channel, which is Single mode's. Keyed part_ it names the Multi part, whose channel is "The MIDI channel to which this Part will respond" (manual p. 167). Two of the four are named for a Part in so many words, by a switch of the Part's own: the hold pedal's, quoted above, and volume's, which "Specifies whether the Part will respond to MIDI CC#7 (Volume)" (manual p. 169). As a controller the instrument answers, 64 is named only for a Part. That a Single program answers it on the Global Channel rests on that channel's being "a MIDI channel used for SINGLE mode" (manual p. 152), and no page says a controller on the Global Channel reaches a Part in Multi mode. Panorama and expression are written for a Part on a reading. No page says which channel they are answered on in Multi mode. What they reach is a setting of the Single program that a Part holds, and a Part has a Panorama of its own that "Overrides/overwrites the Single parameter of the same name" (manual p. 167). Expression rests on its sharing Patch Volume with controller 7 (manual p. 129), and on nothing else.

OTHER NUMBERS APPEAR AND ARE NOT CONTROLS, and each would be a different kind of mistake. The wheel and the pedals choose what the instrument sends: "0 to 127: Specifies the MIDI CC number (see glossary) transmitted by the modulation wheel. The standard value is 1 ('Mod Wheel')" (manual p. 156), and the hold pedal's standard value is 64. Controller 70 is a third party's: it appears in a worked example of writing a remote template for a plug-in "which according to it's user manual, has MIDI number 70 assigned to it" (manual p. 73), and a definition recording 70 as a cutoff would be describing somebody else's instrument. And the glossary's "Modulation wheel = CC 01, volume control = CC 07, hold/sustain pedal = CC 64" (manual p. 179) is the MIDI specification rather than this instrument.

THE VIRUS C'S MANUAL SAYS PANORAMA IS SENT AS CONTROLLER 10, AND IT IS CITED FOR THAT AND FOR WHERE THAT STOPS. It is an earlier Virus model's own document, created in 2002 where this instrument's manual is dated 2006, and served on the same manuals page. Its parameter table gives Page A's parameter 10 as Panorama (predecessor_manual p. 166); with Page A set to controllers, "the VIRUS sends MIDI Control Change on parameter movement" (predecessor_manual p. 162), each message carrying the Page A parameter's number (predecessor_manual p. 163); and its implementation chart marks controller 10, Panorama, as transmitted and recognised both (predecessor_manual p. 185). This instrument's documents say "Page A parameters are transmitted/received in the form of MIDI CC" (manual p. 157), and that a knob's data can be sent to MIDI Out (manual p. 160), Panorama being reached with SHIFT on the OSC BALANCE knob (manual p. 36). They give 10 as a number Panorama "Reacts to" (manual p. 129), as the reference does (reference p. 48), and print no list of Page A. The nearest they come to saying Panorama is sent as controller 10 is a note on hosts, after advising the 'Virus Default' template in Remote Mode for sending CC data to a host: "Some hosts, such as Apple Logic for instance, do assign Ctrl #7 and Ctrl #10 to the channel strip controls and therefore filter those data." (manual p. 56). That implies Panorama's data can reach a host as controller 10. It prints no template, and does not say Page A sends it. So no value is drawn from the C's pages: panorama gives no direction, which says both ways, and those pages are why it is left open rather than narrowed to received. They speak of the Single's Panorama. The C's Multi parameters give a part no panorama of its own (predecessor_manual pp. 110-113); a C part is panned by its Single's (predecessor_manual p. 111). part_panorama follows the Single's because a Part's Panorama "Overrides/overwrites the Single parameter of the same name" (manual p. 167), and not because the C prints a panorama for a part.

THE SHARPEST TRAP IS NOT A NUMBER AT ALL. The patch-name appendix (manual pp. 192-208) prints each sound's number beside its designer's initials, and one designer's initials are CC. A reader keyed on "CC" beside a number would produce 128 false controller rows from one bank alone.

NOT RECORDED: polyphony, and the maker explains why rather than omitting it. "The average number of voices the TI series (with its two DSPs) can deliver is quoted at about 80, with a maximum of more than 100. However, to reach such giddy heights, the TI makes very dynamic use of resources i.e. using certain features can lower polyphony to well below these figures" (manual p. 17). A figure that is an average with a maximum and a caveat is not a voice count.

NOT RECORDED: nrpn. NRPN, RPN, registered parameter and non-registered appear nowhere in either document, and nor do MSB or LSB. The nearest thing to a statement points the same way and is worth knowing, because it is the maker explaining what it did instead: "The internal resolution of the parameters in the Virus sound engine is 24-bit... The MIDI specification, however, only allows for a resolution of 128 values per parameter" (reference p. 30), after which it offers a constant offset in the modulation matrix as the way to reach a value between two of the 128. A maker that answers seven-bit resolution with a matrix trick is not using fourteen-bit controllers, but it never says so, so this stays a silence.

NOT RECORDED: transport. No page of either of this instrument's documents mentions MIDI start, stop, continue or song position, searched for by name. The clock is described and the transport is not, which is a real absence in a document that describes the clock in three states.

NOT RECORDED: mode. There is no MIDI implementation chart in either of this instrument's documents.

NOT RECORDED: a bend range in semitones. The instrument has two parameters rather than one, and they are not symmetrical: "Bend Up > -64 to +63 semitones: How much pitch bend is applied to the oscillators when the Pitch Bender (on a keyboard etc.) is at maximum" (manual p. 130) and "Bend Down > -64 to +63 semitones: How much pitch bend is applied when the Pitch Bender is at minimum" (manual p. 130). So the two directions are set separately and each can be inverted, and there is no single number that is the bend range. programmable records that it is the player's; the figure is left out rather than halved or rounded.

Both parameters are in the reference too, on its file page 49, and it drops the >: "Bend Up -64 to +63 semitones: How much pitch bend is applied to the oscillators when the Pitch Bender (on a key-board etc.) is at maximum" (reference p. 49). So the two documents word one parameter two ways, and the quotations above are the manual's words and are cited to the manual alone.

THE PROGRAM COUNT IS STATED FOUR WAYS AND NO TWO AGREE, so presets is not recorded. "Your Virus TI has 20 banks of memory (RAM-A to RAM-D, ROM-A to ROM-P), each containing 128 SINGLE programs numbered from 0 to 127. A total of 2560 sounds" (manual p. 12); the patch-name appendix runs ROM-A through ROM-Q, which is seventeen ROM banks and not sixteen; the Multi part's bank setting offers "A to T" (manual p. 166), which is twenty letters; and the same setting in the later document offers "A to Z" (reference p. 67), which is twenty-six. Every account agrees that a bank holds 128, and nothing says how a bank is selected over MIDI - bank select is undocumented in both documents, so a program change alone reaches one bank.

SIXTEEN PARTS, AND THE CHANNEL RULE DIFFERS BETWEEN TWO MODES. "Your Virus can play 16 different sounds at the same time: MULTI programs contain 16 PARTS, each equivalent to a SINGLE program plus a few additional parameters such as MIDI channel, fine tuning, key range etc." (manual p. 14) - so in Multi mode the channel belongs to the part and is the player's. In Sequencer mode it is not: "This gives simultaneous access to 16 Single programs. Similar to Multi Mode, but there is only one Sequencer mode program and the MIDI channel is always equal to the PART number" (manual p. 128). The parts below record the Multi arrangement, which is the one with a setting in it, and this account records the other.