Scala 2 SynthEdit Microtuner
Features
- Enables VST functionality to browse, edit, and load text file tuning definitions written in the Scala file format.
- Microtunings are fully polyphonic with negligible incremental CPU load. Supports up to 127 scale degrees and non-octave based tunings. Resolution is 1,200,000 pitches per octave. Centerpoint note and pitch can be specified independently for each tuning.
- Saves up to 4 tunings per patch to VST host memory. Tunings are selectable by picklist. Each tuning has associated tuning parameters which are saved with the host, so projects can be resumed with all settings intact. Tunings can be copied from one patch to another.
- Integrated note channel control of microtonal key changes and scale selection. Key and scale changes can be made in real-time by simply playing notes above or below specified centerpoints on designated midi channels. Flexible centerpoint assignment enables use of footpedals, second keyboards, or split keyboards to make key and scale changes. Per-tuning starting pitch assignment facilitates pivots from one scale into another.
- Each tuning can be modulated by the step intervals of itself or any of the other tunings in its patch. Key modulation source is an attribute of individual tunings, and is retained with the patch.
Licensing and Requirements
The Scala 2 SynthEdit Microtuner is free for use in SynthEdit. VSTs made with the Microtuner require a license to remove a per-session time limitation (session time expiration has no impact on VST other than microtonality). Licenses are portable registration codes obtained by email to robert@12equalboresme.com .
Donations are requested but not required for VST licenses. A Developer license is needed to create VSTs whose time limits can be unlocked. Either VST or Developer registration covers any number of microtuned VSTs, support, and all future upgrades.
The Microtuner is compatible with all versions of SynthEdit running in XP, Vista, or Windows 7. XP users may need a minor Microsoft upgrade for newer C++ libraries (details in theDownloads & Registration section).
If there is any cause for dissatisfaction, the purchase price less Paypal fee ($0.75 USD) is refundable within 30 days.
Please contact me at robert@12equalboresme.com if you have any questions.
Getting Started
When the Microtuner is inserted as a module into a SynthEdit project, it is exposed as a graphic element of the instrument's front panel displayed by click on a related button or image. A dropdown list is linked to the Microtuner to provide selection among loaded tunings.
Microtuner Menu
Picklist of loaded tunings
If no scale is selected from the dropdown, microtuning is bypassed and the VST synth plays in conventional twelve tone equal temperament, with no loss of CPU performance. The Microtuner has a timer limitation in demo mode - after a few minutes the dropdown list clears itself and the synth reverts to twelve tone equal temperament. (Reloading the VST will restore saved tunings and restart the timer.)
To get started, you will need some Scala format tuning files. This format is a simple, widely adopted text file that describes tunings as a series of cent value or fractional scale steps. The Huygens-Fokker Foundation maintains a website at http://www.xs4all.nl/~huygensf/scala that describes the format and offers a large, downloadable archive of tunings.
Click here for a popup with more info on the Scala format.
Tunings
Clicking the Tunings option of the Microtuner's popup menu opens the following screen (shown here with four tunings loaded):
Scala 2 SynthEdit Tuning Config Screen
The tunings screen has four panes:
- Tunings - Displays four slots that can receive tunings for the current synth patch. Click a radio button to select a target slot for one of the button actions Load, Clear, Settings - Get/Save
- Browser - Shows the contents of a .scl file selected by the Browse button from a normal Windows file navigation screen. The contents of the browser pane can be edited to rename a tuning or adjust a scale. Clicking the Load button runs an internal process that translates the scale to cents and places it in the selected tuning slot of the current patch. After a tuning has been loaded, clicking its radio button will show the cent values for the tuning in the Browser pane.
- Per Tuning Settings - Click the Settings Get and Save buttons to control the following parameters independently for each tuning:
- Start Key # - Midi keyboard key number (1-127) of the first note of the selected tuning.
- Start Pitch (Hz) - Starting pitch in hertz of the first note of the selected tuning.
- Key Intervals from Tuning # - Specifies which tuning among the 4 slots of the current patch is the source of modulation intervals for the selected tuning. Say the selected tuning is slot 1 and slot 3 has a thirteen note scale that spans a little over an octave. Saving a setting of 3 for the slot 1 tuning means that modulation intervals for the slot 1 tuning are derived from the thirteen steps of tuning slot 3. (If a new tuning is loaded in slot 3, slot 1 modulation is taken from the new tuning.)
- Global Settings - These settings are shared by the four tunings at the patch level, although it is probably more useful to treat them as unchanging from patch to patch. They specify the midi channels and key number centerpoints for signalling key or scale changes in real-time. So if the key change channel is 16 and the centerpoint is midi key # 60 (middle C), playing note #63 modulates to the 3rd scale degree of the modulation source tuning. The number of scale degrees in the modulating tuning is applied as a modulus, so for a twelve note scale starting at key #60, pressing key #80 plays sets the new root to the pitch of scale degree eight of the modulating scale (80 - 60 = 20, and the remainder of 20/12 = 8). Playing below the centerpoint descends from the top degree of the modulating scale.
All of the settings described above apply to a single VST patch. If you want to use the settings on another patch, click the Patch Copy button, and close the Tuning screen. Select the destination patch, open the Tuning screen again, and click the Patch Paste button. Thats a bit of effort, but at least the tunings on the two patches will persist from one saved Host session to the next. (Bank tunings will be implemented in a future release.)
Defaults
The Defaults menu option opens this screen:
Scala 2 SynthEdit Default Settings Screen
- Start Key # - Default midi note number for scale degree 0 of newly added tunings.
- Start Pitch (Hz) - The Microtuner holds 2 values that may be toggled as the default pitch for the specified Start Key #
- Scale and Key Change - Default values for midi channel and starting key.
- Oscillator 'A' Pitch (Hz) - Typically, SynthEdit octave-per-volt style oscillators default to a 440 A reference pitch for midi note number 69. If the VST's master tuning has been raised or lowered by a few cents, the new master pitch should be entered here.
- Move Centerpoint with Key - When checked, finger position is moved to play the tonic of the new key (normal keyboard practice). When unchecked, the new tonic is on the default start key.
Reset restores the defaults to those shown above. Save commits any edits on this screen to the current patch memory. After saving, Apply to Patch copies the current default values for midi key number and pitch to the four tunings of the current patch.
Registration
The Registration menu option opens this screen:
Scala 2 SynthEdit Registration Screen
If you want to build the Microtuner into your own projects, download the Scala2SETuner.dll, save it to a folder in the modules directory, and open its registration screen from within a SynthEdit project.
Host Setup
The Microtuner doesn't impose any limits on polyphony or the number of instances of a VST in a host. Accordingly, it should have no impact on usage of a microtuned VST for play in 12 tone equal temperament.
Typically in a mult-timbral setting, each instance of a microtuned VST will be playing on its own channel. If modulation and/or scale change control is desired, the VST needs to be connected to these channels as well. If the VST has an internal channel filter between its midi-in and midi-to-control-voltage components, the VST can simply be connected to an 'All' channel midi feed, with the internal midi filter set to the midi stream for its' music part. So for example, if an instance of the synth should play the channel 2 midi stream and get key changes from channel 16, the synth instance would be connected to the host's midi 'All' stream and its internal channel filter would be set to channel 2.
If the microtuned VST doesn't have an internal midi filter, then a modular VST host will be needed to route multiple midi paths to the VST to give it a music part channel plus key and/or scale channels, with some pitch/volume work-around for the occasional note on a control note channel. (Velocity mapped to 0, etc.)
As shown below, if multiple instances of microtuned VSTs are set to the same key change or scale channel, then monophonic play of notes on these channels can control real-time ensemble retuning.
Sequencer key change track centered around midi note 60 (C3)
Developer Info
The Microtuner can be added to any SynthEdit project that uses the standard 1 volt/octave control model for its oscillators. The microtuner is rescaling 'voltage' based on cent intervals of scale steps, where one octave equals 1,200 millicents.
To insert the Microtuner in an existing project, first make note of all wire paths from the pitch pin of the Midi to CV module. The Scala 2 SynthEdit module is then inserted in the project, and the starting points of these paths are moved from the Midi to CV module to the pitchCV_Out pin of the Microtuner module. A single wire is added to connect the pitch pin of the Midi to CV module to the pitchCV_In pin of the Microtuner. A wire is then run from the Midi Input of the containers' IO module to the Midi In pin of the Microtuner. Finally, add a Dropdown List Subcontrol and wire it to the Scale List pin of the Microtuner.
As described in the 'Host Setup' section above, a channel selector should be connected to the channel pin of the Midi to CV module to facilitate key and scale change by the Microtuner.
Pin connection example for the Scala 2 SynthEdit module
Note: the "Scale List" pin is not exposed until a Developer registration has been entered. If the Developer registration is entered from within a SynthEdit project, the Microtuner module will need to be deleted and re-added to the project to get a fresh build with the Scale List pin.
The Microntuner can be inserted in complex synths with no problem. Here it is in the SynthEdit demo, "Poly Synth":
Scala 2 SynthEdit module in the PolySynth demo