MIDI Devices
Revision and Quality Control: Cristina Bachmann, Marion Bröer, Heiko Bischoff, Sabine Pfeifer The information in this document is subject to change without notice and does not represent a commitment on the part of Steinberg Media Technologies GmbH. The software described by this document is subject to a License Agreement and may not be copied to other media except as specifically allowed in the License Agreement.
Table of Contents
5 MIDI devices 6 7 10 13 18 22 23 23 28 33 Introduction The main edit windows Operations in the Edit Panel window Creating a control panel – a tutorial Advanced Panel handling Creating panels for VST Instruments Exporting and importing device setups SysEx messages Defining a SysEx device – a tutorial Important files 36 Index 4 Table of Contents
1 MIDI devices
Introduction The Create New MIDI Device dialog When you select “Define New” in the Add MIDI Device dialog, the Create New MIDI Device dialog opens. In this document, the creation of new MIDI Devices and Device panels is described. If you want to learn how to install and use MIDI Devices, please refer to the chapter “Using MIDI Devices” in the Operation Manual.
! Device structure Once you set the attributes (identical/individual channels, snapshots) here, changes can only be applied with major effort like direct editing in XML, see “Editing the device setup XML files directly” on page 34. However, there is a little workaround for channel settings, see below. On the left is a hierarchical view of the device’s structure, which can consist of nodes, subnodes, and parameters.
• The “Add Parameters” button opens the “Add Parameter” dialog where you define the parameters that will be used in the Panel. A parameter defines how the setting of the connected device can be modified, what the valid range is and what the current state of the parameter is. Parameters are assigned to objects (see “Control to parameter assignment area (bottom middle)” on page 10), i.e. knobs, faders, switches or data entry fields on a panel. • The “Add Subnodes” button lets you create subsidiary nodes.
The Edit Panel window Device structure Objects area Edit area Device item properties (Device Node, Views, Variables) All Templates list Parameter assignment area After selecting a name and a panel size in the Add Panel dialog, click OK to open the Edit Panel dialog. When a panel has been added, you can switch between all edit windows (Device/Edit Panel/Patch Banks) by using the pop-up menu at the top of the window.
Operations in the Edit Panel window • It is also possible to drag a subnode’s panel from the “Views” area into the panel of a parent node, see “Creating complex panels” on page 19. On the following pages, we will describe the basic operations in the Edit Panel window. For a more “hands on” description of how to create panels, see “Creating a control panel – a tutorial” on page 13.
• When you add control objects, the Control Parameter Assignment dialog is opened: Parameter value In the “Min” and “Max” fields you can set the value range for the parameter. The Default value determines what the value will be when you open the device. Transmission Here you set the parameter assignment. Clicking in the value field opens the Transmission pop-up menu where you can select either “Channel Messages”, i.e. MIDI Control Change messages, or SysEx messages.
Resizing objects Edit object parameter Click on any object to make resize handles appear. Click and move the handles to resize the object. Double-click on a control object (knob, fader, data entry, switch) to open the Control Parameter Assignment window, see “Editing parameters” on page 11. Sending objects to front/background Panel edit settings Select an object and right-click (Win)/[Ctrl]-click (Mac) to bring up the context menu. • Choose “To Front” to make the selected object the topmost one.
Creating a control panel – a tutorial Adding a panel In this example, we will select Channel 1 to add the panel. In this tutorial we will create a simple control panel for a device in the following steps: • • • • • • • • • • • • 1. Select the Channel 1 node and click the Add Panel button.
4. Enter a name. 2. Stretch this background so that it covers the entire panel area. Note that this is not the name of the control object itself, but the name of the actual parameter, an item which exists independently from objects. A logical and intuitive naming convention will help! Now it’s time to select the control change (CC) number in the Transmission field. At this point it may be required to consult the MIDI Implementation Chart of the device you’re creating the panel for.
Since the new knob needs a different name and a different parameter assigned to it, we need to do some editing: Now the bottom edges of the two objects are aligned vertically. 3. Double-click on the copied knob to open the Parameter window. Here you will notice that the assigned parameter is LPF Cutoff (the only parameter we’ve created so far). 4. Click the Create button again to define a new parameter, “Resonance”. Defining parameters for control objects 5. Enter this name in the Parameter name field.
3. Switch to Labels on the Objects menu, pick a title object and drag it to the edit area. 4. To solve this problem, click on the grey background to select it, then open the context menu again and select “To Background” once more. Now the objects are in the correct order, and you can go on to resize the additional background so that it encompasses the title and the knobs. 4. Double-click on it, enter “Realtime Controls A” in the text dialog and click OK. Now let’s create a second group of controls. 5.
The obvious thing to do now is to make the second group “Realtime Controls B”, but since we’ve gone over rotary knobs already let’s try a few other Korg Triton controls. 5. Instead, click on the previously defined parameter “Value” in the list and then click OK. Adding control objects – faders The Triton has a slider called “Value” (commonly known as a data entry slider), whose function is doubled by two buttons, increase and decrease. To mimic these controls we need a Fader and a Data Entry object. 1.
Testing the template and exiting the panel dialog Done! Now the device panel is displayed in the Inspector and ready for automation recording. 1. Activate the test mode by checking the “Test Template” option at the top of the edit area. This will make the panel “go live” and transmit MIDI data over the output port when you move the controls. If everything appears to be functioning OK, we can consider the panel completed, and it’s time to start using it! Advanced Panel handling 2.
2. Add a channel strip panel with the name “Channel” to the first channel. To this, add a background and a volume slider and assign the parameter CC: Main Volume to the latter. Proceed as follows: 1. In the All Templates list, select the template (panel) you want to copy. 2. Select the panel elements that you want to copy and press [Ctrl]/[Command]+[C]. When selecting various elements with the mouse, it can happen that the order of the elements gets lost.
The Channel panel is also listed under “All Templates”. 2. Repeat this for Channel 2 and 3 by dragging and dropping the Channel panel into the MotifMixer panel. This results in the following arrangement for the MotifMixer panel: Combining subpanels It is now possible to drag a subnode’s panel from the Views area into the panel of a parent node, thus assembling a complex panel by referencing the subpanels. 1. Click on the node “MotifMixer” and add a new panel in general size.
Combining subpanels of individual channels The nodes correspond to templates (panels) of the same name. For example, click on “Fade” in the All Templates list to see only the Fade panel. In the example above, we assembled a MIDI device panel by creating only one panel for 16 identical channels. However, you often may want individual channels (nodes), each coming with its own panels and parameters.
Ö Therefore, even if you set up e.g. ten channels at first with the Snapshots option activated in the Channel Settings, once you manually add new channels, the Channel Snapshots option is always deactivated for those new channels. Creating panels for VST Instruments It is also possible to build panels for internal VST instruments. The advantage of this is that instead of having an extra window for your VST instrument, you can custombuild panels for it and integrate them in the Inspector.
Exporting and importing device setups At various points it is necessary to convert hexadecimal numbers to decimals and vice versa, so you may need a translation-table or a calculator that is able to make this conversion. Under Windows, you can use the calculator found under Start/Programs/Accessories. Clicking the Export Setup button allows you to export your complete MIDI device setup as a separate XML file. The file can then be imported using the Import Setup button.
Input data for SysEx messages 4. In the Transmission area, click on the Create SysEx button on the right of the Transmission list. Let’s have a closer look at the Create SysEx window. • The Length is the length of the SysEx message in Bytes (counting each pair of numbers), for example 9: F0 23 12 6B 10 02 11 0B F7 In this case, the bytes are numbered from 0 to 8 in the table.
Definable values as variables Using definable values to set up a more flexible SysEx design The definable values (Var 1 and Var 2 in this example) are just that – definable as you like. This is done in the Formula column of the Add Parameter window. Using definable values with formulas allows for a more flexible SysEx definition because you can set up one common SysEx string for a whole set of SysEx messages.
Using normal values (Example) This results in: Sometimes, values higher than one byte are necessary to address something, e.g. sample numbers (Sample NR) from 0–255 (0000 xxxx to 0000 yyyy in binary). • 1/7 and a binary display of 0000 000x for byte 6 • 0/7 and a binary display of 0xxx xxxx for byte 7 In this case, the value x effectively consists of two bytes, called XX and YY here: F0 23 12 6B PT Fn XX YY F7 These two bytes need to be set up so that they result in one value.
Using generic values (Example) 5. Now proceed with Value 7. Rename it to “LFO Phase”, set it to “Generic” as Value Type, reduce the Number of Bits to “4” and set the Byte Offset to “6” to shift the value to the same byte. Sometimes, a byte is used for two or more different messages, e.g. “0001 1111” with the last five bits used as on/ off signal for five different, independent switches. The two values now take up the same bits in the byte, as visible from the exclamation points in the binary field.
Defining a SysEx device – a tutorial 4. Click OK. Now, the Device window will open with an empty Roland JV-1080 device displayed to the left. In this tutorial, we will define a new MIDI device that provides access to the parameters of a Roland JV-1080 in the following steps: • • • • • • • • This is the “root” of the device, which stands for the device as a whole.
Adding parameters 3. Repeat the two steps above to create the subnode “System Common”, which is also a separate table in the MIDI Definition section in the JV-1080 manual and is referenced by the “System” table. 1. Now you’ll create parameters for the “Scale Tune” nodes. Click the “Add Parameters” button. The “Add Parameters” dialog appears. 2. According to the MIDI definition, the “Scale Tune” table contains 12 parameters.
Defining SysEx messages device’s parameters are in the range of up to 128 states, which can be transmitted with one data byte. So if you count the bytes, when using only one data byte you get a count of 12. Some devices can be edited by MIDI channel messages like Control Change, RPNs or NRPNs. In that case you’d only have to select the desired message by clicking in the MIDI message field next to the Create SysEx button and browse for it. But that is not true for the JV-1080.
Editing the Formula 7. Reduce the number of bits to “4” and enter “10” in the Hex row at position 2, because the device ID ranges from 10H to 1FH. 1. Click in the Formula column for the DevID and enter “DevID”, to set this value to a variable called “DevID”. As there is no “DevID” variable defined yet, you get “error” as a result. For now, this can be ignored. We will define the “DevID” variable later. 2. Now you need to set the right addresses.
As you may have noticed, the variable “x” is automatically assigned to the “Data” value. “x” stands for the value that is represented by this parameter and is always defined individually by each parameter. If you later assign a control like a fader to this parameter, this fader will control and modify “x”. “x” is automatically assigned to the last value of the message, but can be freely assigned to any other value. 2.
4. Activate the Create Multiple checkbox and enter a range of 0–81, because the System Common table in the manual of the JV-1080 contains 82 parameters, starting with an index of “0”. You should now be familiar enough with the basic procedures to continue with other parameter settings and adjustments and to finally create your own specific devices. Address1MSB, Address2 and Address 3 are all 0 for all System Common parameters, so leave them as they are.
Panel XML files The code has to end with , otherwise it is incomplete and cannot be imported. Panels are saved as an XML file of their own, with a name consisting of: The value of the variable “DeviceNode Name” is the name of the device given in the Installed Devices List. .xml Object classes have unique IDs, which are important in case you want to merge XML files (see below).
Snapshot XML files Patch name scripts are the files that are installed when you choose “Install Device” in the MIDI Device manager. Snapshots are saved as separate XML files under the specified name, e.g. “Blues.xml”. If you want to make new patch name scripts / devices available, you have to copy the files into the right folder, so that the program will find them (see the section “Where are the settings stored” in the Customizing chapter of the Operation Manual).
Index
C S Control Parameter Assignment 11 Copy Panel elements 18 Definable values 25 Device panels Edit windows 7 Editing 10 Device Setup XML File 33 Device structure 7 Device window 7 Snapshots 21 Subpanels Combining 20 Creating 19 Sysex Assign message 24 Edit message 24 Normal value message 26 Value type 24 Sysex device Creating 23 Sysex Messages 23 F T Formula 25 Transmission 11 I V Identifying nodes in panels 20 Import bitmap 12 Variables 7 D M Mathematical operations in formulas 25 MIDI Device