Overview
Figure 1 Synthmaker development environment showing the toolbox, schematic view and a custom view.
Synthmaker - Synthmaker is a visual modular environment for the generation and processing of sound and the creation of virtual software synthesizers.

Version - This help document applies to version 0.7.6.Dev1 of synthmaker which was made available on the 20th November 2003. Please note that this is an internal development version and not even a Beta version.

Components and Modules - Synthmaker has a mixture of modules and low-level components. Modules can be created from low-level components and also other modules in a hierarchical way ( modules inside modules inside modules etc ).

Going down the hierarchy means going inside a module, the schematic inside the module becomes visible.

Schematic View - Use the schematic view for creating new synth schematics.

Custom Views - Controls like knobs, sliders, selectors etc. can be made to show up in user custom views.

Toolbox - Components and modules can be dragged from the toolbox into a schematic. There are several toolbox sections in order to separate the different types of components available. To insert a component or module in a schematic just drag it from the toolbox into the schematic. Modules can also be dragged from the schematic into the modules section of the toolbox.

Connectors - Modules and components have input and output connectors of different types. There are several types of connectors for the different types of signals that flow through the schematic. Output connectors can only be connected to input connectors of the same type.


Tutorial - Slider
Figure 1 Simple example using a slider.
Figure 2 Custom view from schematic in Fig. 1.
Slider module - Figure 1 shows a very simple example using the slider module. The red dot on the slider can be moved horizontally resulting in a change of value from 0 to 1 in the output of the slider which is reflected in the Edit component connected to it.

Custom View - The schematic in Fig. 1 has a custom view component connected to the slider. Figure 2 shows the resulting view associated with the custom view component. The area of the view can be changed inside the Area module. The slider can be controlled by the user both in the schematic view and the custom view with changes to one being reflected in the other.


Tutorial - Slider2
Figure 1 Simple example using 2 sliders.
Figure 2 Custom View associated with the custom view component of Fig. 1.
Figure 3 Internal schematic of a slider module.
2 Sliders - Figure 1 shows a simple example using 2 sliders. The second slider has to be moved down for both sliders to show in the custom view.

Moving the position of a slider inside a Custom View -

1- Go inside the slider component, the internal schematic of the slider should become visible as in figure 3.

2- In the schematic of the slider, there is a Trans component used to translate the position of the slider. The x and y amount of translation can be changed causing the position of the slider in the custom view to change. In our example of figure 1, the lower slider has a translation of x=0 y=1 causing it to appear 1 gridstep lower than the other slider inside the Custom View.


Reference - MGUI
Figure 1 The MGUI component.
Figure 2 Example of a schematic used to define a custom symbol for a module.
Figure 3 The symbol defined by the schematic in figure 2.
Description - The MGUI is an abreviation of Module GUI. When used inside a custom module , the MGUI component defines what the the symbol for that module looks like and also the area it takes.

Inputs - One Area input used for defining the area of the module's symbol.

Outputs - One View output for GUI events including drawing and mouse events.

Usage - When a new custom module requires a user define symbol, insert the MGUI component inside the module, connect the input to an Area module and the output to drawing and mouse components.

Example - Figure 2 shows an example of a schematic used to define a custom module's symbol. In this case, the symbol consists of a transparent Red Filled Round Rect. Figure 3 shows the resulting symbol.


Reference - FRRect
Figure 1 The FRRect component.
Figure 2 Example schematic using the component FRRect.
Figure 3 Custom View associated with the Custom View component of figure 2.
Description - FRRect is an abbreviation of Filled Round Rectangle. This component draws a Filled Round Rectangle with a specified area and colour inside the views connected to it.

Inputs -
1 - View input for specifying which view or views in which to draw.
2 - Area input for specifying the area of the Rectangle being drawn.
3 - Colour for filling the Rectangle.

Outputs -
1 - View output for connecting to other drawing components.
2 - Mouse output for connecting to mouse components.

Example -
Figure 2 shows an example of a schematic using the FRRect component. Figure 3 shows the Custom View associated with the CustomView component of figure 2.


Reference - XMidi
Figure 1 The XMidi component.
Figure 2 Example of a simple schematic using the XMidi component.
Description - The XMidi component is where external Midi data enters the schematic.

Inputs - none

Outputs -
Midi output where the external midi data flows into the schematic.

Usage - Insert an XMidi component in the schematic whenever you need to process external midi data for example from a Midi keyboard or a midi control box. Only one XMidi component can be used per schematic.

Example - Figure 2 shows an example of a simple schematic using the XMidi component. The Midi data is converted to a string and displayed in a string Edit component.


Reference - MaxFloat
Figure 1 The MaxFloat component.
Figure 2 Example schematic using the MaxFloat component. With 1 and 2 for inputs, the output is max(1,2)=2.
MaxFloat Component - The MaxFloat component outputs the maximum float value of the two input values.

Example - Figure 2 shows an example of a simple schematic using the MaxFloat component.


Reference - MinFloat
Figure 1 The MinFloat component.
Figure 1 Example Schematic using the MinFloat component. When the inputs are 1 and 2, the output is
min(1,2)=2.
MinFloat Component - The MinFloat component outputs the minimum float value of the two input values.

Example - Figure 2 shows an example of a simple schematic using the MinFloat component.


Reference - CustomV
Figure 1 The CustomV component.
Figure 2 Click on the 3rd option of the Navigation Panel to make the Custom View Window associated with the CustomV component Visible.
Figure 3 Example schematic using the CustomV component.
Figure 4 Custom View associated with the CustomV component of figure 3.
Description - CustomV is an abbreviation of Custom View. This component is used to create a new View Window with contents and functionality defined by the user.

Inputs -
1 - Area for specifying the location and size of the View in pixels.
2 - GridS for specifying the size of each grid square.

Outputs -
1 - View for connecting to GUI components that define the contents and functionality of the Custom View.

Usage - After inserting a CustomV component into a schematic, make the view visible by clicking on the 3rd option of the Navigation Panel as in figure 2. A small window should appear on the top left. Adjust the size of the View Window by connecting an Area module to the CustomV and changing the internal x, y, width and height variables. While normally the area module uses gridStep as units, in the case of the CustomV component the units used are pixels.

Example - Figure 3 shows an example of a schematic using the CustomV component. The only component connected to the View output of the CustomV component is a Grid component consequently a Grid is drawn in the Custom View Window as shown in figure 4.


Reference - Area
Figure 1 The Area module.
Figure 2 Internal schematic of the Area module.
Description - The area module is used to specify an area with x, y, width and height. The units for x, y, width and height are normally in terms of gridstep. For example, an area of x=0, y=0, width=2 and height=2 in terms of pixels would represent an area with width=20 pixels and height=20 pixels for a gridstep=10. The gridstep changes when zooming in and out.

Inputs - None. The x, y, width and height values can be changed inside the module.

Outputs - Area output.

Usage - Go inside the module to change the x, y, width and height values. When inside the module the internal schematic of the Area module should be visible as in figure 2.