About Dynamic Tonality

On this site, you can download a number of free music apps designed to facilitate the composition and performance of microtonal music. The Dynamic Tonality apps include a full-featured microtonal MIDI sequencer (Hex), three microtonal synths that can match their timbre and tuning (The Viking, 2032, and Transformer), and Relayer, which turns your computer's QWERTY keyboard into an isomorphic musical controller and provides a large number of isomorphic note layouts for the AXiS-49 and other MIDI controllers.

Dynamic Tonality is an audio synthesis and control framework—a set of parameters and visual representations—designed to faciliate the exploration of a wide variety of unfamiliar microtonal tunings, scales and timbres. It provides several new musical opportunities:

  • The Tuning Slider enables you to choose, and morph between, a large variety of musical tunings.
  • The Tone Diamond can temper the partials of individual tones to match the underlying scale's tuning, allowing sensory dissonance to be minimized in any tuning, and introducing novel timbres that can be morphed between.
  • It affords a two-dimensional isomorphic note layout—a representation for visualizing, manipulating, and fingering pitch sets in a way that is consistent across key transpositions and many diverse tunings.
  • A variety of controls for adjusting timbre and tuning in various ways.

The Dynamic Tonality apps can be used for any style of music that uses synthesizers—tonal, atonal, or microtonal. The synths provide a wide variety of timbres and support any possible equal temperament and well-formed/MOS scale.

In the following section, we answer some frequently asked questions—but please contact us if anything is unclear.

Frequently Asked Questions

Dynamic Tonality Controls

DT Apps

DT Apps and Non-DT Apps/Hardware



Further Information

Dynamic Tonality Controls

What are the main Dynamic Tonality controls?

The Dynamic Tonality apps share a number of parameters not found in other synths: 1. Tuning Slider, 2. Tone Diamond, 3. Temperament Menu, 4. Prime Limit Menu, 5. Period Control.

Dynamic Tonality controls

What does the Tuning Slider do?

The Tuning Slider smoothly changes the pitches of all notes in an ordered and patterned manner. It does this by changing the size of the interval used to generate the tuning (the generator). It can be used to connect a variety of equal temperaments with very different tunings, or to make subtle changes to the sizes of the intervals within a single scale. For example, you can morph between Pythagorean and meantone tunings of the diatonic scale, thereby moving between more expressive melodies and more consonant harmonies. Consider the following examples as visualized by Hex (the pitch of each note is shown by its height)—hover over each tuning value and note how the relative sizes of the whole tones and semitones differ:
  • 700 cents: the familiar 12-tone equal temperament (12-TET)
  • 704 cents: the small semitones and large whole tones make for expressive melodic lines but rather "sour" chords
  • 696 cents: the whole tones and semitones are closer in size, making major and minor triads close to just intonation (better tuned than in 12-TET or 704 cents), however the scale is less melodically expressive

You can also use the Tuning Slider to explore tunings and scales that are radically different from those used in traditional Western music:

  • 685.7 cents: 7-TET (used in traditional Thai and African Mandinka music)
  • 720 cents: 5-TET (used in Indonesian slendro)
  • 380 cents: an expressive (and completely novel) 10-tone scale with lots of well-tuned major and minor triads (check out the example piece "Magic Traveller" in the Hex page)
  • 360 cents: 10-TET
  • 317 cents: an expressive (and completely novel) 11-tone scale with many well-tuned major and minor triads
  • 327.3 cents: 11-TET

There are countless other musically fascinating and inspiring possibilities. Both Hex and Relayer contain an extensive set of useful preset tunings.

The number box below the slider shows the size, in cents, of the generator used to produce the current tuning. It also allows tunings outside the slider's current range to be used—simply type in a number and click return.

What does the Tone Diamond do?

The Tone Diamond is an interface for controlling the extent to which the timbre is matched to the tuning, and to move the tuning towards a related just intonation tuning.

The cursor's left-right position controls timbral matching:

  • At the right, the frequencies of the partials are fully matched to the tuning. This produces chords that are more consonant, and melodies that are more "in-tune", but individual tones that may sound "dirty" (interesting) or bell-like.
  • At the left, the partials are perfectly harmonic (tuned to integer multiples of the lowest frequency). This produces tones that are individually clean but, depending on the tuning, chords may be dissonant.

The cursor's vertical position controls the intonation:

  • At the top, the tuning becomes 5-limit just intonation and favors major triads. This will yield perfectly pure tunings for most intervals, but will also produce some "wolf" (sour, out-of-tune) intervals.
  • At the bottom, the tuning becomes 5-limit just intonation and favors minor triads, but is otherwise equivalent to the top. The main Tuning Slider has no effect when the cursor is placed at the top or bottom of the diamond.
  • In the middle, the tuning set by the Tuning Slider is unchanged.

What does the Temperament Menu do?

Each temperament determines exactly how the Tone Diamond operates—which just intonation notes are used at the top and bottom of the diamond, and how the timbre is matched to the tuning. It also determines the valid tuning range (VTR)—the range of the tuning continuum used by the the Tuning Slider (values outside this range can still be set by the number box below the slider).

Keeping the Tuning Slider within a temperament's VTR ensures that the intervals derived from a major or minor triad (P1, m3, M3, P4, P5, m6, M6, and P8) do not overlap, thereby ensuring chord and scale fingerings remain the same throught the Tuning Slider's travel.

What does the Prime Limit Menu do?

When you select a prime limit, each partial number whose prime factorization contains a prime larger than that limit is omitted from the timbre. So when the prime limit is 11, harmonics 13, 17, 19, 23, 26, 29, and 31 are omitted; when it is 7, harmonics 11 and 22 are also omitted; when it is 5, harmonics 7, 14, 21, and 28 are also omitted.

What does the Period Control do?

The period is the size of the octave or, more generally, the size of the interval over which any scale repeats. The standard size of the period is 1200 cents (a ratio of 2/1) but, in many non-Western cultures, a slightly stretched octave is used. Many interesting microtonal scales can be created by choosing a period that is a simple subdivision of the octave, like 1200/2 = 600, or 1200/5=240 cents. Alternatively, in the Bohlen-Pierce scale—designed for instruments with only odd-numbered partials—the period is 1902 cents (a ratio of 3/1). Interesting stretched or compressed versions of familiar scales can be easily created with this control. For example, setting the period and generator to 600 and 350 cents—half their standard sizes—produces a compressed 'diatonic' scale whose whole tones are replaced by semitones and whose semitones are replaced by quarter tones.

What is an isomorphic layout?

An isomorphic note layout places each note into a unique spatial location in such a way that any given musical interval always has the same spatial shape. For example, the major scale will always have the same geometric shape whatever its tonic. For certain scales, certain isomorphic layouts (APS and AS layouts) have useful properties in that seconds (adjacent pitches) have adjacent spatial locations. The presets in Relayer and Hex are based around such layouts.

Furthermore, by smoothly shearing the layout along with the tuning, it is possible to ensure notes with the same pitch (e.g., the 12-TET A-flat and G-sharp) are on the same horizontal line, and notes separated by octaves (periods) are on the same vertical line. This is the method used by Hex to produce a lattice from which note lanes can be extended to create a sequencer—observe how the lattice smoothly shears as you move the Tuning Slider, thereby ensuring the pitch of every note is given by its vertical position, while octaves are always vertically aligned.

DT Apps

What do each of the different applications do (Hex, The Viking, 2032, Transformer, Relayer)?

Hex is a multi-track MIDI sequencer designed to facilitate composition in a wide variety of microtonal tunings. It replaces the piano keyboard found on the left of traditional sequencers with a hexagonal lattice. As with Relayer, numerous presets provide useful microtonal tunings and layouts. Hex can also dynamically control the tuning values of all the DT synths.

The Viking is an additive-subtractive synth that emulates classic analogue synthesizers and contains a variety of filters, a highly adaptable envelope, and numerous LFO options. It supports a wide variety of microtonal tunings and can match the timbre to the tuning.

2032 is a physical modelling synth that emulates struck and bowed strings or wind-blown pipes that can be mounted on a resonant body (e.g., the body of a harp, guitar, or piano). The strings and pipes can also be excited by live audio input—for example, you can play a modeled guitar by tapping or blowing into a microphone. 2032 supports a wide variety of microtonal tunings, and allows the timbre to be matched to that tuning.

Transformer is an analysis-resynthesis synth that detects and then adapts the tunings and amplitudes of partials from an audio sample (wav or aiff file) or live audio input. It is based on TransFormSynth, which is no longer under active development. It supports a wide variety of microtonal tunings and can match the timbre to the tuning.

Relayer provides a variety of isomorphic note layouts (spatial arrangements of pitches) for your QWERTY keyboard or the AXiS-49. Numerous preset layouts are provided to facilitate playing in a wide variety of microtonal scales. Relayer can control the tuning values for any DT synth and allows microtonal music to be played on any standard multi-timbral synth that correctly supports channel pitch bend.

What is a good way to get all the DT software installed and working together?

Each app can be separately downloaded. No installation procedure is required, just unzip and double-click to run (in OS X, when first run, you may need to right-click the app and select 'Open').

You also need to install a MIDI bus (pipe) so Hex and Relayer can communicate with the synths. MIDI bus installations for Windows and OS X are detailed below.

Windows: Install loopMIDI or MIDI Yoke and enable at least 1 MIDI port. In Hex, go to Tracks > Track 1 > MIDI Output Port, and choose a MIDI bus. In Relayer, set the MIDI Out Port to MIDI bus. In any of the synths set the MIDI In Port to the same bus. There are other software packages providing MIDI buses, but we have not tested them.

OS X: In Finder, go to Applications > Utilities > Audio MIDI Setup. Make sure the MIDI Studio window is showing. Double-click on 'IAC Driver' and click the '+' next to 'Add and Remove Ports' to add at least one port, and check the "Device is online" box. In Hex, go to Tracks > Track 1 > MIDI Output Port, and choose an IAC bus. In Relayer, set the MIDI Out Port to IAC bus. In any of the synths, set the MIDI In Port to the same bus.

How do I get the MIDI from Hex and Relayer into The Viking, 2032 and Transformer?

As detailed above, you need to install a MIDI bus and route the MIDI from Hex/Relayer through the bus into to the synth.

You can run multiple synths at the same time and control each of them with a separate Hex track, or hardware controller. To do this, set each synth to receive MIDI on a different port. In Hex, go to the Track menu to set the port each track sends its MIDI to.

How do I run multiple instances of the same Dynamic Tonality synth?

The process for Windows and OS X differs:

Windows: Create multiple copies of the application folder and all its contents. For example, you might make three copies of The Viking folder named The Viking 1, The Viking 2 and The Viking 3. Do not rename the .exe file within the folder.

OS X: Create multiple folders and place a copy of the app into each one. For example, you might create three folders named The Viking 1, The Viking 2 and The Viking 3, each containing a single copy of The Viking. Do not rename the app.

You can set each instance of the synth to receive MIDI from a different MIDI port. This means each synth can be individually controlled by a separate track in Hex, or hardware MIDI controller.

DT and Non-DT Apps/Hardware

How do I use Hex or Relayer to make microtonal music with non-Dynamic Tonality synths?

Some multi-timbral synths—multi-timbral means each MIDI channel can play its own patch (timbre)—can be used for microtonal music. The tunings are set by MIDI channel pitch bend, so each note needs to be on its own MIDI channel. When Relayer's 'Synth Type' menu is set to 'Non-DT', it automatically allocates different notes to different MIDI channels and sends an appropriate pitch bend. To get Hex to work with multi-timbral synths, you need to send its MIDI through Relayer. This is done by setting Hex's MIDI Out Port to point to Relayer and setting Relayer's 'MIDI Controller' menu to 'Hex' and its MIDI Out Port to point to your multi-timbral synth (and setting Relayer's 'Synth Type' to 'Non-DT').

Multi-timbral software synths we know to work correctly with multichannel pitch bend are the built-in Windows and OS X soundfont synths, SimpleSynth, Alphakanal Automat (set Automat's pitch bend range to full, and Relayer's to 24), the hugely flexible Virsyn Tera, and the excellent piano modeling synth Pianoteq.

There are numerous hardware synths that support multichannel pitch bend. H-Pi keep a useful list here. Alternatively, numerous instances of a single software synth can be used, so long as each is set to receive MIDI from a different channel.

Note that tunings can be changed dynamically (while playing), and the timbre automatically matched to the tuning, only with Dynamic Tonality synths.

Are the DT apps compatible with the AXiS-49 controller?

Yes. The AXiS-49 is an excellent external MIDI controller to use with the DT apps. The AXiS should be set to Selfless mode and directed to Relayer or Hex. Both apps provide a variety of note layouts for the AXiS-49 and include presets for useful layouts in a wide variety of microtonal scales. In Hex, go to the 'Input' menu, select 'MIDI Input Type', select 'AXiS-49 (Selfless Mode)'. In Relayer, select 'AXiS 49 (selfless)' in the 'MIDI Controller' menu at the top. In both cases, ensure the MIDI input port is set to 'Axis 49 2A'.

Can I control the DT synths with a standard MIDI sequencer/DAW or hardware MIDI keyboard/controller?

Yes. When the Tuning Slider is set to 700 cents, the synths will produce exactly the same pitches as a normal synth. For tunings in the Syntonic continuum (685.71–720 cents), the simple relationship between pitch and sequencer note height and left-right location on a keyboard will remain intact. Outside this tuning range, this simple relationship will no longer apply, but they are still usable. All the DT controls can be changed with standard MIDI CC messages, as detailed below.


How do I customize the temperament presets?

Each temperament preset is a text file in a folder called "temperaments". In Windows, this folder is a subfolder of the folder containing the executable: resources/support. In Mac, you need to right-click the app and "Show Package Contents" then navigate to Content/Resources.

The name of the preset file is the name that will appear in the synth's menu. This can be changed to suit but will not show until the synth is closed and restarted.

The first line in the text file defines the temperament as an 11-limit map: the first five numbers are the top row of a mapping matrix, the second five numbers are the bottom row of the mapping matrix. This is just for record and not used directly by the synths.

The first and third numbers of the "Per" row set the tuning range of the period, the middle number sets its default tuning. All values in the Per row are specified in cents (1200ths of an octave). The first and third numbers of the "Gen" row set the tuning range of the generator, the middle number sets its default tuning. Any of the numbers in the Gen row can be specified as a ratio of the period (when written as two integers separated by a slash; e.g. 18/31) or as a size in cents (when written as a single number; e.g. 696.774).

The rows nPerPrtls and nGenPrtls are the mapping between the first 64 harmonics (frequency ratios 1/2, 2/1, 3/1, 4/1, 5/1, ...) and the temperament's period and generator (respectively). For example, in the Syntonic temperament, the fifth number in the nPerPrtls row is 0 and the fifth number in the nGenPrtls row is 4. This means that the fifth harmonic (a frequency ratio of 5/1 is defined, in this temperament, by ascending 0 periods and 5 fifths). Note that harmonics with higher than 11-limit prime factorizations msut be marked with "na" because these partials are not used in D synths.

The values for Bot_nPer_nGen and Top_nPer_nGen define the pitches of every (j, k) available in DT (there are 1152, which correspond to 127 MIDI note numbers on 9 MIDI channels) that will occur when the cursor is at the bottom or top, respectively, of the Tone Diamond. These pitches are defined in cents relative to (j, k) = (0, 0), which is mapped to MIDI note 58 on channel 1. In all the current presets, these values correspond to a "detempering" of the temperament back to 5-limit just intonation – the precise selection of JI pitches is, here, made to ensure a maximal possible number of just intonation major or minor triads in the resulting system.

Given an 11-limit mapping matrix, akin to those specified in the existing presets, I have a MATLAB routine for calculating all of the values required for the preset text file. If you have a mapping matrix of interest, let me know and I can generate a corresponding preset.

In the synthesizers, how do I set tunings outside the tuning ranges defined in each temperament?

As above, you can customize that temperament preset. More simply, you can use the number box below the Tuning Slider to enter any generator size (in cents) you require. Similarly, the synths also contain a number box for the size of the period. Alternatively, all tuning values can be directly controlled by Hex or Relayer or any controller that sends appropriate MIDI CC messages (as detailed below).

How does Dynamic Tonality map MIDI note numbers and channels to microtonal pitches?

When the Tone Diamond is on the central horizontal line, every pitch is given by j × α + k × β, where α is the size in cents of the period, β is the size in cents of the generator, and j and k are the pair of integers that uniquely identify each different note. The mapping between (j, k) and MIDI note number and channel is given in either of two text files: ordered by (j, k) or ordered by MIDI note number and channel.

This mapping ensures that when the synth's Tuning Slider is set to 700 cents, MIDI notes on Channels 1–3 sent from a standard keyboard or sequencer will play as expected (and in non-12-TET fifth-based tunings, it is possible to switch between enharmonic equivalents like E-flat and D-sharp by switching between the first three MIDI channels). It also means that Hex can control any standard (even non-multi-timbral) synth in 12-TET.

How do I use MIDI CC to adjust the synths' DT controls?

The DT parameters use the following MIDI CC mappings, all of which are on MIDI Channel 1: α = CC50 × 96 + CC51 × 96/128 + CC52 × 96/(128 × 128); β = CC53 × 96 + CC54 × 96/128 + CC55 × 96/(128 × 128); timbral matching (horizontal axis of Tone Diamond) is controlled by CC56; vertical axis of the Tone Diamond is controlled by CC57.

How do I create new temperament and layout presets in Relayer?

The temperament and layout presets are stored in a text file, which can be customized. In OS X, go to the app, right click and Show Package Contents, go to contents folder, and edit the files called TemperamentPresets.txt or Layouts.txt. In Windows, go into Relayer folder then the support folder, and edit TemperamentPresets.txt or Layouts.txt.

Temperament presets use the following form: The first item on each line is the preset name followed by a comma then comes the period and generator tunings (cents) then the number of large and small steps in the MOS followed by a semicolon. If you want a space in the preset name use "\ ". All lines must end in a semicolon.

Layout presets use the following form: The first item on each line is the preset name followed by a comma then comes the period (if you want a space in the preset name use "\ "); the next four integers define the new layout in terms of the Wicki layout. For example, 5 -4 1 -1 means the period of the new layout is reached by adding 5 Wicki periods and subtracting 4 Wicki generators, and that the generator of the new layout is reached by 1 Wicki period minus 1 Wicki generator. Using transformations that are not unimodular (i.e., a layout defined by a b c d where ad-bc is not equal to +/-1) will result in gaps in the mapping so some notes will no longer play. All lines must end in a semicolon.

Can I get the DT apps to play in my arbitrarily designed microtonal scale?

The DT apps are designed to play in 2-D tunings—scales generated by two intervals (period and generator)—and related just intonations. Unless your scale can be closely approximated by such a tuning system, you probably need to look elsewhere.

How do I know if my arbitrary scale can be well approximated by a 2-D tuning system?

You can use the MATLAB routine BetaChainDist.m and function ExpectationMetrics.m available at http://www.dynamictonality.com/expectation_tensors_files/ and explained in Milne et al. (2011). Or email for further assistance.


Is Dynamic Tonality a business?

No. We have no formal structure. All the software is available on a freeware basis (though we do appreciate donations). We are simply a group of researchers, musicians, and developers interested in building a fun and useful set of apps to facilitate the exploration of the outer reaches of music.

Who are the Dynamic Tonality developers?

Currently active developers involved with Dynamic Tonality are Andrew Milne and Anthony Prechtl. In the past, Bill Sethares and Jim Plamondon have also played active roles and may do so again.

How can I get involved in Dynamic Tonality?

Please send us info about how you have used the software. Tell us what you like and don't like. Suggest cool new ideas. Offer help to develop the software or its surrounding documentation. Want to build your own DT synth? We can help. Email us.

Further Information

Where can I get more information?

The following papers provide some of the technical and theoretical details of Dynamic Tonality:

Alternatively, just send us an email.

Site design by Anthony Prechtl