Contents



Creating A Layout

Next

Initial Setup

The DH_ControlOverlay module would typically be one of the last modules you would insert into your project, after your controls and skin are in place.

Insert the module with SynthEdit's audio not running.

The first thing you should do is to right-click to open its properties, and enter the name of your VST in the VST_Name field. This will be used to create the name of the file in which all of your layout and control information will be stored.

Note: If you leave it blank, your work will be saved in a file named "Unnamed VST.txt". If you later fill it in and forget to rename the file, or if you're using the module in more than one project at a time and don't do this, you are likely to lose work.

The file name will be your VST name with .txt appended. It will be created in your SynthEdit folder.

 


Next, you should connect all of your controls to Ctrl In pins on the module. If you follow the procedure recommended in Build a Central Control Point as You Go, this should be a relatively painless process.



Designing your Display Area(s)

If your design includes a central display where you will display the information that will be available from the DH_ControlOverlay outputs as the user moves the mouse, now is the time to decide where on your GUI you will locate it, if you haven't already done so.

There are 4 outputs:

  • Ctrl Name (text: control name, which you will enter for each control as you create your layout)
  • Ctrl Index (voltage: control #, 0 means no control under mouse)
  • Value String (text: formatted number, or selected list item)
  • Description (text: additional text you can add about each control as you create your layout)
These items can be used individually, or combined using other modules, depending upon how you would like to have the information displayed. Many creative options are possible, especially if you already have DH_Sub-ControlPak and DH_Sub-ControlPak2. ;-)


Drawing the Rectangles

On the panel view, resize the overlay so that its area includes all of the controls you want to use it with. To do this, drag it by the title so that its upper left corner is in the upper left corner of the area you want to cover. Then, drag the resizing square down and to the right until the entire area is included. You may wish to right-click on the title, choose Properties, and blank out the title at this point, so it won't show on the panel.

When you are ready to begin drawing your rectangles, make sure the module is in Layout mode, then press the Play button to start SynthEdit's audio.

Drawing rectangles is straightforward:

  • To draw a rectangle, hold the left mouse button down and drag down and to the right.

  • To resize a rectangle, drag the small box at its lower right corner.

  • To move a rectangle, press the left mouse button anywhere inside the rectangle and drag.

  • A rectangle can be deleted by clicking anywhere inside it while pressing the Ctrl key.

 

It's advisable that the rectangles don't overlap each other. If they do, the mouse will respond to whichever rectangle is "on top" in the Z-order when it is in the overlapped area, but this may be confusing. To help you avoid this situation, overlapping rectangles are highlighted in red.

.



Entering Control Information

When you have the area for a control defined, you can double-click inside its rectangle to open up the Enter Control Information dialog.

 

 

 


Enter the control's name as you would like it to be displayed in the Control Name field. This is the text that will be output at the module's Ctrl Name pin when the mouse is over this rectangle.

Identify the pin to which this control is connected in the structure view, and enter its number in the Control # field. If you have labeled and numbered the pins as suggested in Build a Central Control Point as You Go, this will be simple.

 

 

 

 


A rectangle that defines the area for a display rather than an input control will of course not have a corresponding input pin. Assign these control areas control numbers that are outside of the range of your input pins. For example, if you have 76 input controls, you might start numbering the non-input controls at 100. |

You can choose from 3 types for the control: Numeric, List, or Info.

The Description field is common to all 3 types. It can contain any free form text that you would like to have displayed when the mouse is over the area defined by the rectangle. You can use multiple lines by holding down the Ctrl key while you press Enter. This text will be output at the module's Description pin.

Numeric and List controls have specialized fields in addition to the Description field.
 

Numeric Controls

For Numeric controls, you can specify a Value Format String. This can include any text, with a format specification that indicates where and how the control's numeric value should be inserted into the text string.

A format specification starts with a percent sign % and ends with a letter f. In between can be numbers that specify field width, zero padding, justification, and the number of decimal places to display.

If you don't enter a Value Format String, the default is %f, that is, just the value in general floating point form.

The feature you'll probably use most is the one that controls decimal places. For this, just enter a decimal point(.) followed by a the number of decimal places to display. For example, %.0f displays the value with no decimal places, %.2f displays it with 2 decimal places, on so on. The table and examples below show the additional formatting options:

Next

  The General Form of a Format Specification:

% always 1st character
- minus sign left justifies number (optional )
0 zero causes padding with 0s rather than
spaces to meet min width (optional )
min width number to specify the minimum width (optional )
. decimal point to separate min width from precision (required if precision used)
precision number of decimal places to display (optional)
conversion character always f for our purposes
 

 

 

Examples - the value 2.43567 with different format specifications:

%f

%.0f

%.2f ms

%6.2f%%

Osc%03.0f

-%.0f dB

%-8.1fR

2.43567

2

2.44 ms

   2.44%

Osc002

-2 dB

2.4      R

Note: Because % marks the beginning of a format specification, you have to use %% to get an actual percent sign.



List Controls

In the case of a List type control, the value that will be coming into the DH_ControlOverlay module is an index to an item in a list.

You create a simple text file containing the text that you want to display for each item in a list, and select that file here in the List control's Enter Control Information dialog.

The List File button opens a standard File Open dialog that lets you select the file. List files should be kept in your SynthEdit directory, and must be included in the embedded files list when you save as VST.

Two or more controls can share the same list file if they use the same items.

 

 

The file format is simply one item per line, each terminated by a semicolon. For example, a list for a control that selects a modulation source might be:

LFO1;
LFO2;
Mod Wheel;
Velocity:
EG1;
EG2;


Final Words on Creating a Layout

You will not be able to draw or see rectangles when the audio is not running.

Your layout information is saved to file whenever the SynthEdit audio stops, and is reloaded when the audio is started. Again, it is important that you enter your VST name into the module's VST_Name input before you start work on a layout, so that your work won't accidentally be lost.

Your VST's layout file and all of your list files should be kept in your SynthEdit directory while you are working on the project, so that all files can be accessed from the current directory using a relative path. If you don't do this, the module will not be able to find the embedded files after it has been compiled into a VST.

top