IX Split 1.07

Installation

Copy "IX Split 1.07.dll" and this document to your Generators folder. That's it. You could add it to your index as well if you like.

What does it do?

IX Split allows you to define up to 512 "layers". Each layer can control a target machine and is only triggered by notes and velocities in a defined range. Typical uses include sending the same notes to several machines, splitting the keyboard between several machines and having one machine play at low velocities and another at high velocities.

Global Parameters

Enable Turns it on and off.
Command One Command and conquer. See command list below.
Command Two Like command one but less macho.

Track Parameters

Note See triggering below.
Velocity See triggering below.
Note Delay For those who like sloppy timing. Delay the note by up to 254% of a tick. Useful values: 19 (25%), 32 (50%), 4B (75%).

Machine Attributes

MIDI Input channel If you're not using MIDI filtering or if you're using the old Buzz, this sets which MIDI channel Split will listen to. Set it to zero (default) to accept all channels. Ignored if you're using MIDI filtering in new Buzz.
Double-click Sets what happens when you double-click the machine. Set it to zero to see the boring parameters or leave it alone to see the sexy layers dialog.
Sticky Clipboard See Options Menu below.
Confirm Delete See Options Menu below.
Confirm on preset load. See Options Menu below.

Right-click Commands

Open Displays the layers dialog.
About Displays the exciting about box.

File Menu

Import Load layers from a saved template. If a machine with the same name as a saved assignment exists, Split will attempt to assign that machine to the new layer.
Export Save the current layers and their assignments to a file. From version 1.06 the data is stored in xml format.

Edit Menu

Cut/Copy/Paste/Duplicate/Delete You know what these do. All commands work on the currently selected layer.

Actions Menu

Solo selected layer Disables all layers except for the one that's selected. Obvious really.
Enable all layers Can you guess what this does?
Toggle enable for all layers Layers that are enabled get disabled and vice-versa.
Enumerate Layers When a layer is created it gets an id number. If you do a lot of adding and deleting of layers, the id numbers can get a bit fragmented, so this command renumbers all the layers to make them nice and neat again. Why would you want to do that? I dunno.

Options Menu

Sticky clipboard If this is enabled then the clipboard won't be cleared after a paste operation, so you can paste multiple copies of the same layer. Provided as attribute as well, so it can be set in gear.xml.
Confirm on delete Whether Split should try to stop you from deleting things by accident. Provided as attribute as well, so it can be set in gear.xml.
Confirm on preset load Split now supports saving layer data into presets. Loading a preset is the same as importing a template but easier to do by accident so Split will ask for confirmation before loading a preset. Provided as attribute as well, so it can be set in gear.xml.

Help Menu

Documentation Should show you this lovely help file.
About Displays the exciting about box.

Layers Pane

Left-click on layer Select a layer for editing. The selected layer is drawn in front of all other layers.
Left Drag on empty space Draws a new layer.
Left Drag on existing layer Move/adjust the layer (layer will be selected). Hold CTRL to force drawing when mouse is over an existing layer.
Double-click on layer Toggle layer enable. Hold SHIFT to hide the layer or CTRL to delete the layer.
Right-click anywhere Display context menu.

Dialog Controls

Layer Combo Select the layer to edit. Same as clicking a layer with the left mouse button.
Show/Enable checkboxes Can you guess what these do?
Add Layer Button Adds a new layer covering the full note/velocity range.
Remove Layer Button Deletes the selected layer.
Base Track The first track to use on the target machine.
Track Mode
  • Normal - Split will use the first available track on the target machine, starting at the base track.
  • Matched - Notes from Split track n will be sent to target machine track n + base.
  • Single - All notes will be sent to the base track on the target machine.
Note Min/Max These set the range of notes that will trigger the selected layer.
Vel Min/Max These set the range of velocities that the layer will respond to.
Vel Scale % When the layer is triggered, the velocity value passed to the target parameter is scaled by this percentage. Negative values will make loud notes soft and vice-versa.
Transpose When the layer is triggered, the note value sent to the target parameter is transposed by this amount.
Machine The machine targeted for control by the selected layer.
Note Param Note values will be sent to this parameter. Only note type parameters can be targeted.
Vel Param Velocity values will be used to control this parameter. Any parameter type can be controlled.

Keyboard Shortcuts

ESC Close dialog
CTRL + TAB Select next layer
CTRL + SHIFT + TAB Select previous layer
DEL Delete selected layer
INSERT Add new layer
NUMPLUS Transpose up
NUMSUB Transpose down
CTRL + W Toggle visibility of selected layer
CTRL + E Toggle layer enable
HOME Select first layer
END Select last layer
F1 Launch help
CTRL + X Cut selected layer
CTRL + C Copy selected layer
CTRL + V Paste clipboard contents
CTRL + D Duplicate selected layer

Triggering

Split can be triggered by both note and velocity. If a note is provided without a velocity value, the note will be triggered with the last velocity value used by the track, or full velocity if no velocity values have been received. If a velocity is provided without a note, Split will trigger the last note used by the track.

If Split receives a note-off, it will cut the last note played by the track. If a velocity value of zero is received, Split will cut the specified note (or the last note used if no note is specified).

Command List

00nn Select layer Select layer nn for command operations. The selection is persistant but you must use this command at least once or the other commands won't work.
01nn Enable
  • 00 = Disable selected layer
  • 01 = Enable selected layer
  • 02 = Toggle enable for selected layer
  • 03 = Solo selected layer
  • 04 = Anti-solo (enable all but selected layer)
  • 05 = Enable all
02nn Set note min Set note min for selected layer to nn.
03nn Set note max Set note max for selected layer to nn.
04nn Set vel min Set vel min for selected layer to nn.
05nn Set vel max Set vel max for selected layer to nn.
06nn Transpose up Transpose selected layer up nn semitones. Transpose cannot exceed +36 semitones.
07nn Transpose down Transpose selected layer down nn semitones. Transpose cannot exceed -36 semitones.
08nn Set transpose Set transpose for selected layer to nn. 0x00 is -36, 0x24 is 0, 0x48 is +36

Notes

Acknowledgements

Thanks to Ed Powley for his PeerLib upon which this machine is based. Thanks to Polac for helping me figure out how to do PXP recording properly. Thanks also to all those who tested this thing as it developed, especially tinga (who's idea it was in the first place.) I used the LICE graphics engine, part of the Cockos WDL library, to do the layer drawing.

Contact

If you've got any comments, requests, bug reports, whatever, you can find me lurking in The Church (username 'IX') or you can mail me via deenine[at]hotmail[dot]co[dot]uk (but don't expect a quick reply.)

Disclaimer

I'm still not very good at this programming lark. I can't be held responsible for anything. Ever.

- IX