Scale Workshop

User guide 1.5

Scale Workshop allows you to design microtonal scales and play them in your web browser. Export your scales for use with VST instruments. Convert Scala files to various tuning formats.

Skip to main content

Overview

The interface is split in to 4 sections.

The top bar provides many useful functions.

Import/export tunings

Import

Scale Workshop supports import of Scala .scl files, AnaMark .tun files and Korg 'logue .mnlgtuns/.mnlgtuno'. Click 'New' on the top menu bar and then click 'Import .scl' or 'Import .tun'

Note: AnaMark .tun import is incomplete, but it should be able to import .tun V2.00 files exported by Scale Workshop and Scala.

Convert

Convert .scl or convert .tun tunings by importing them and then exporting.

Export

Many synthesizers support microtonal scales. Usually they will require some format of tuning file. Scale Workshop supports many of the popular formats.

To see a list of synths that support microtonal scales, see the List of Microtonal Software Plugins on the Xenharmonic Wiki.

AnaMark TUN (.tun)

If your synth supports .tun format, then please refer to its manual to find how to load the .tun file.

Scala scale (.scl)

If your synth supports .scl format, then please refer to its manual to find how to load the .scl file.

Scala keyboard mapping (.kbm)

Scale Workshop does not support arbitrary keyboard mappings, however it can output a .kbm file with linear mapping that has your chosen base MIDI note and base frequency.

Max/MSP coll (.txt)

When building synths in Max/MSP try using a coll object rather than an mtof object. Coll can load a specially-formatted text file containing a list of frequencies. Scale Workshop exports this kind of text file for you. Set up your coll object as below, and click the 'read' button to bring up a load file dialog.

Then when you input MIDI note numbers to the coll object, it will output the desired frequency.

PureData text (.txt)

When building synths in PureData try using a text object rather than an mtof object. The text object can load a specially-formatted text file containing a list of frequencies. Scale Workshop exports this kind of text file for you. Then when you input MIDI note numbers to the text object, it will output the desired frequency.

Kontakt script (.txt)

Kontakt's scripting environment allows you to retune each key to any pitch. Scale Workshop can export this script for you automatically. Once exported, copy and paste the contents of the script into the script editor of your Kontakt instrument.

Soniccouture tuning file (.nka)

Tuning format for Soniccouture's sampled instruments for Kontakt.

Harmor Pitch Map (.fnv)

Harmor allows retuning keys from C0 to C10 for up to 5 octaves up or down from 12 EDO. To do so, go to the "Pitch" tab, then "Keyboard mapping". Click the small arrow at the bottom left and select "Open State File...". From there, open the file that you exported from Scale Workshop. You will have to do this for every part that you use (A and/or B).

Sytrus Pitch Map (.fnv)

Sytrus allows retuning keys from C0 to C10 for up to 4 octaves up or down from 12 EDO. Warning: You won't be able to slide notes. If you do, the pitch will be incorrect. To do so, go to operator you want to retune, select the "Pitch" tab, then "Keyboard mapping". Click the small arrow at the bottom left and select "Open State File...". From there, open the file that you exported from Scale Workshop. Then, turn PE (Pitch Envelope) knob to the maximum value.

Korg Sound Librarian Scale/Octave (.mnlgtuns/.mnlgtuno)

These are for the Sound Librarian software associated with Korg's Monologue, Minilogue, and Prologue synths, and can be loaded with the "File > Load Single Scale" menu option. The "Scale" format follows the MIDI 1.0 "Bulk Tuning Dump" specification that allows for a 128-note table defined in semitones plus .0061 cents of precision with a supported frequency range of 8.1758 Hz to 12543.875 Hz. The "Octave" format follows the "Scale/Octave Tuning Dump" MIDI specification and only allows for 12 defined notes that will automatically repeat at the octave. Scales with more than 12 notes will be cut off, and pitches can only deviate from standard tuning by -64/+63 cents.

Deflemask 'fine tune' reference (.txt)

Exports a reference sheet to help you make microtonal music using the Deflemask tracker. Notes in Deflemask can have a 'fine tune' property. This reference sheet will show you the data you need to input.

Reaper Note Name Map (.txt)

Reaper allows all 128 rows in its piano roll MIDI editor to have a custom label. This export option gives each note a label based on its pitch, with some other properties depending on the selected options. "Scala Data" will preserve the notes' notation, keeping ratios when possible and allowing for mixed notations. For "Cents", "Frequencies", and "Decimals", each interval will be converted to the chosen format. "Degrees" will simply use "N\D" notation where N is the scale degree and D is the number of notes the scale has.
Show Period Number will put the octave/period number of the interval after the pitch label.
Calculate Period in Pitch will transpose each interval by the number of periods it is from the base note. It will try to preserve the notation of the interval, but will fallback to cents if it's not possible.
Base Period Number will shift the base note from unison by this many periods. For example if you want your the base note & frequency to be note 48 at 256 Hz, but want unison to be an octave higher with note 60 at 512 Hz, you can set this to -1 period, meaning the base note & frequency is shifted one period below unison.
Base Cents Value and Base Degree Number allow you to set a different value for the base note in cents or degrees respectively, similar to the "Base Period Number" option. In most cases this should be 0.

Reaper will look for these files by default in:

A shortcut to the REAPER folder is in Reaper's Option menu, "Show REAPER resource folder in explorer/finder".
To use a note name map, select the "Named notes" view in the MIDI editor (the option next to the piano icon in the toolbar) and load the file with "File > Note/CC names > Load Note/CC names from file".
Note: These are only labels - you must retune the synth to hear the displayed notes in the piano roll.

Presets

A selection of preset scales are provided as examples.

Scale design

Scale Workshop allows you to create musical scales either by manual data input or by selecting menu options. We'll cover the menu options first.

Start by clicking the New option on the top menu bar. Select from equal temperament, rank-2 temperament, etc.

Equal temperaments

Equal temperaments are scales where every step is of equal size. The most well-known example perhaps is 12-tone equal temperament (12edo) which divides an octave into 12 equal parts and is the standard tuning in the West. Other well known equal tempered scales include 24edo (quartertones), 19edo and 31edo.

To create a new equal temperament scale click New > Equal temperament and then enter values to create the scale.

Number of divisions refers to the number of notes in your scale. Interval to divide will usually be 2/1 (octave) but could be a different value, for example to make Bohlen-Pierce you would have 13 divisions of 3/1.

Rank-2 temperaments

Create a rank-2 temperament using a generator and period.

Harmonic series segments

Generate a segment of the harmonic series by specifying the lowest and highest harmonics to be part of the scale. If the highest harmonic is double that of the lowest harmonic then the scale will repeat at the octave.

Subharmonic series segments

Generate a segment of the subharmonic series by specifying the lowest and highest subharmonics to be part of the scale. If the highest subharmonic is double that of the lowest subharmonic then the scale will repeat at the octave.

Enumerate chord

Create a scale from a list of harmonics separated by colons.
E.g. 4:5:6:7:8

Combination product set

Create a scale by multiplying harmonics in different combinations. Optionally, the resulting scale can be reduced by 2/1 and sorted in ascending order.

Combination product set (Xenharmonic Wiki)

Manual data entry

Scales can be written manually by typing them in to the Scale data text field. Enter one interval per line. Do not enter 1/1 on the first line as it is already assumed that the first note is 1/1.

Values with a . are cents values: e.g. 701.955
Values with slash (/) are ratios: e.g. 3/2
Values with a backslash (n\m) are n degrees of m-EDO: e.g. 7\12
Values with comma (,) are decimals: e.g. 1,5
The final value is your octave or pseudo-octave: e.g. 2/1

Just intonation examples

5-limit just major:

9/8
5/4
4/3
3/2
5/3
15/8
2/1

Harmonics 8-16:

9/8
10/8
11/8
12/8
13/8
14/8
15/8
16/8

Equal temperament examples

Blackwood[10] in 15edo:

2\15
3\15
5\15
6\15
8\15
9\15
11\15
12\15
14\15
15\15

8edo in cents:

150.
300.
450.
600.
750.
900.
1050.
1200.

Misc examples

You can combine any of the above styles in the same scale if needed:

1,2
3\9
700.1
2/1

Modify scales

There are menu options to help you modify your current scale. Note you must have some scale data loaded already in order to modify it. Click 'Modify' on the top menu bar to see the options.

Sort ascending

Sorts your scale ascendingly.

Reduce

Makes your entire scale fit within a desired 'modulus' interval, typically 2/1. Intervals in your scale which are larger than the modulus will wrap around, leaving only a remainder.

Rotate

Allows you to choose an interval of your scale to become 1/1.

Subset

Takes a subset of the current scale. Subsets are entered numerically.

Stretch/compress

Applies a linear stretch across the current scale. Enter a stretch factor, where 1 is no stretch at all.

Random variance

Applies a random detuning of each note in the scale. If the checkbox is ticked, this will also detune the octave. If unticked, the octave will remain unchanged.

Tempo-sync beating

This retunes each note of your scale to the nearest harmonic and then tunes the base frequency to match the BPM. This can result in LFO-like pulsations when playing chords.

The effect is most effective when using "rich" harmonic sounds (e.g. sawtooth waves) on a synth with excellent intonation accuracy (e.g. almost all digital synths).

Resolution allows you to control how much retuning is applied. Low values will result in a more drastic retuning of your original scale; in some cases this will result in notes converging on the same note, resulting in duplicates. For more obvious tempo-synced effects, choose a resolution that is a power of 2, e.g. 32, 64, or 128.

Approximate by ratios

This steps you through each interval of your scale, shows you a selection of ratios that are close to your interval, and allows you to choose the ratio for each.

Approximate by harmonics

This retunes each interval in your scale to the nearest harmonic. You select the denominator.

Approximate by subharmonics

This retunes each interval in your scale to the nearest subharmonic. You select the numerator.

Equalize

This retunes each interval in your scale to the nearest equal step. You select the number of steps to equally divide the interval of equivalence.

Synthesizer

Scale Workshop has a built-in synth so that you can play and hear your scales. This is useful for auditioning the scale you're working on, however it is very simple and isn't recommended for live performance.

Playing with a MIDI controller

Play notes on any connected MIDI device in order to hear your current scale. This requires you to use a web-MIDI capable browser. Must be enabled first by clicking the 'MIDI I/O' menu option then clicking the 'MIDI on' button while your controller is connected.

Playing with QWERTY

Use your computer keyboard to play your current scale, much like an isomorphic keyboard.

Note: QWERTY note input is disabled any time that a text or input field has focus. An indicator can be seen at the top-right of the screen to show you if you are able to play the QWERTY keyboard currently:

Not all international keyboard layouts are supported. Users who wish to see their keyboard layout supported are encouraged to contribute to the project by adding their own layout to keymap.js in the project source.

Playing with mouse / touch screen

On the top menu, click Virtual Kbd to display a grid overlay. Click / Touch the grid to hear your scale. The mapping on the grid is the same as the mapping on the QWERTY keys.

Isomorphic mapping

When using the QWERTY or the Virtual keyboard, by default each note along a horizontal axis is 1 scale degree apart and each note along vertical axis is 5 scale degrees apart. This can be changed by using the Isomorphic keyboard settings shown on the right column of the Scale Workshop interface.

Changing the sound of the synth

The synth has the following options:

MIDI I/O

Scale Workshop can behave like a MIDI tuning box, allowing for MIDI input into the app and then outputting MIDI notes plus multichannel pitch bend messages, thereby allowing you to hear your scale on a supported MIDI synth.

Before getting started, make sure that your web browser is web-MIDI compatible. Not all browsers support MIDI I/O.

On your MIDI synth device, you should set pitch bend range to +/- 1 octave.

Connect your MIDI device(s) to your computer, then click the MIDI I/O option in the top menu. Then click the red 'MIDI on' button. If this was successful, the button will turn green and you will see a list of your MIDI devices below.

MIDI devices can be enabled or disabled by selecting the check boxes next to each device. Each individual channel can also be enabled or disabled by the check boxes.

Misc. tips

General settings can be found on the right side of the Scale Workshop interface.

If an exported tuning file doesn't seem to load into a softsynth properly, then try changing the value of Line endings format and re-saving the file. If you're using a Windows computer it's recommended to set this to Microsoft, otherwise set this to Unix.

Dark mode makes the Scale Workshop interface dark.

Undo/redo your tuning changes by using the back/forward browser navigation buttons.

If the synth gets too noisy, you can kill all sound by clicking the Quiet button.