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
- If you delete a machine which Split is controlling, it will remember the assignment so it can be restored if the machine is undeleted. If the layer has no assignment, the old assignment is automatically restored. If the layer has a new assignment, Split will prompt you whether to reassign the old machine.
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