Skip to content

The Module Library

RMT Compose ships 79 modules. Not one of their notes carries an absolute pitch.

That is the point. A module does not store "A4 = 440 Hz followed by C♯5". It stores a fifth above the root, a major third above the chord root, a fourth above the previous chord's root. Every note is written against the module's own base, and dropping the module throws that base away and substitutes the note you dropped on. So you get a real chord, in a real key, at a real pitch — the one that note is at. Drop the same module on a different note and you get the same shape somewhere else, with exactly the same ratios.

So the library is not a bag of samples to paste. It is a set of relationships you graft onto what you already have.

Module library tiles: coloured squares showing stacked fractions with cents for intervals, chord names with colon ratios, and wrapped names for melodies and scales

What ships

SectionModulesWhat's in it
Intervals46Every interval as a single note above the root, from the unison to the schisma
Chords11Triads and sevenths in just intonation, plus two RMT-native harmonic chords
Progressions8Four progressions and four cadences, each a chain of chord roots
Melodies7Public-domain tunes
Scale Systems612-, 19-, 31-TET, Bohlen–Pierce, Tesla, Mixed-Base
Custom1Where copied selections land, and the obvious home for your uploads

They live in the module bar under the top bar. Drag one out and drop it on a note.

How the catalog is built

Every module is a tree. The root of the tree is base — the module's own reference note — and everything else hangs off it, or off another note in the module. When you drop the module onto a note, base becomes that note, and the whole tree comes with it.

An interval is one note

The Perfect 5th module holds exactly one note (plus its own baseNote block and a colour):

json
{
  "id": 1,
  "startTime": "base.t",
  "duration": "beat(base)",
  "frequency": "(3/2) * base.f"
}

Drop it on a note and base.f becomes that note's frequency. You get a fifth above that note — exactly 3/2, not 700 cents of approximation. Drop it on a note that is itself a fifth above something, and you have stacked two exact fifths.

A chord is a root, with tones hanging off it

The Major chord, frequencies only (note 1 starts at base.t, notes 2 and 3 at [1].t, and all three last beat(base) * 2):

json
{ "id": 1, "frequency": "base.f" }
{ "id": 2, "frequency": "(5/4) * [1].f" }
{ "id": 3, "frequency": "(3/2) * [1].f" }

Note 1 is the root. Notes 2 and 3 are not independent pitches — they are defined as a major third and a fifth above note 1. Move note 1 and the third and the fifth follow it, still a third and a fifth.

This is the difference between a chord and three notes that happen to sound like a chord.

A progression is a chain of roots

This is where it gets interesting. Here is ii – V – I, stripped to its frequencies:

[1]  (9/8) * base.f      ← the ii root — the only note that touches base
[2]  (6/5) * [1].f       ← minor third of ii
[3]  (3/2) * [1].f       ← fifth of ii

[4]  (4/3) * [1].f       ← the V root, a fourth above the ii root
[5]  (5/4) * [4].f       ← third of V
[6]  (3/2) * [4].f       ← fifth of V
[7]  (7/4) * [4].f       ← harmonic seventh of V

[8]  (2/3) * [4].f       ← the I root, a fifth below the V root
[9]  (5/4) * [8].f       ← third of I
[10] (3/2) * [8].f       ← fifth of I
[11] (2/1) * [8].f       ← octave of I

Read down the roots: note 1 comes from base. Note 4 comes from note 1. Note 8 comes from note 4. The roots move by interval — up a fourth, then down a fifth — exactly as a musician would describe the progression. Nothing in the module is in any key. The absolute pitches only exist once you drop it somewhere.

Try this

Drop ii – V – I onto a note. Now open the ii chord's root — the first note — in the note widget and press the next to its frequency. That transposes it by the arrow interval, which is 2/1 until you change it in Settings → Arrows.

The entire progression goes with it. Every chord, every third, every seventh. The V root is still a fourth above the ii root, because that is literally what it says. You did not transpose eleven notes; you moved one note, and ten notes were defined relative to it.

Now try retuning instead of transposing: open that same root and multiply its frequency by 81/80, a syntonic comma. The whole progression shifts with it, still perfectly in tune with itself.

Cadences work the same way, with two chords instead of three or four.

Melodies and scales chain too

Melodies are written as scale degrees against base, with start times in beats: (5/4) * base.f, base.t + beat(base) * 3. Change the BaseNote and the whole tune transposes. Drop it on a note and it plays from there.

Scale systems are chained note to note — each step lifts off the one below it:

[1]  base.f
[2]  [1].f * 2 ^ (1/12)
[3]  [2].f * 2 ^ (1/12)
...

Only the first note touches base. Lift note 5 and every note above it rises with it, because they are all defined as steps above their predecessor. This is what makes the scale modules useful for experimenting with tunings rather than only hearing them.

INFO

The scale systems are the only part of the catalog that deliberately makes notes irrational. 2 ^ (1/12) cannot be written as a fraction, so notes built on it are flagged as corrupted in the workspace — shown with a and a hatched fill. That is honest labelling, not an error. See Equal Temperament.

The Tesla scale is the exception: it is built entirely from whole-number ratios, so every note in it stays exact.

Intervals — 46 modules

Each is a single note, one beat long, at a fixed ratio above whatever you drop it on. The tile shows the ratio as a fraction with its size in cents underneath.

3-limit — built from 2s and 3s only. Pythagorean tuning.

NameRatioCents
Unison1/10
Major 2nd9/8203.910
Pythagorean minor 3rd32/27294.135
Pythagorean major 3rd81/64407.820
Perfect 4th4/3498.045
Pythagorean tritone729/512611.730
Perfect 5th3/2701.955
Pythagorean major 6th27/16905.865
Pythagorean minor 7th16/9996.090
Pythagorean major 7th243/1281109.775
Octave2/11200

5-limit — the classic just intervals, the ones that beat cleanly.

NameRatioCents
Just minor 2nd16/15111.731
Minor whole tone10/9182.404
Just minor 3rd6/5315.641
Just major 3rd5/4386.314
Just augmented 4th45/32590.224
Just diminished 5th64/45609.776
Just minor 6th8/5813.686
Just major 6th5/3884.359
Just minor 7th9/51017.596
Just major 7th15/81088.269

7-limit — septimal. The blues-adjacent territory that 12-TET cannot reach.

NameRatioCents
Septimal whole tone8/7231.174
Septimal minor 3rd7/6266.871
Septimal major 3rd9/7435.084
Septimal tritone7/5582.512
Septimal tritone (wide)10/7617.488
Septimal narrow 5th32/21729.219
Septimal minor 6th14/9764.916
Septimal major 6th12/7933.129
Harmonic 7th7/4968.826
Septimal major 7th63/321172.736

Higher limits — 11, 13, 17, 19 and 23. Neutral thirds and other intervals with no name in common practice.

NameRatioCents
17th harmonic17/16104.955
Tridecimal neutral 2nd13/12138.573
19th harmonic19/16297.513
Undecimal neutral 3rd11/9347.408
Undecimal tritone11/8551.318
23rd harmonic23/16628.274
Tridecimal diminished 5th13/9636.618
Tridecimal neutral 6th13/8840.528
Undecimal neutral 7th11/61049.363

Commas — the tiny discrepancies that tuning systems exist to hide. Drop one on a note and you get a second note a comma away from it. The two beat slowly against each other, which is what a comma actually sounds like.

NameRatioCents
Schisma32805/327681.954
Diaschisma2048/202519.553
Syntonic comma81/8021.506
Pythagorean comma531441/52428823.460
Septimal comma64/6327.264
Enharmonic diesis128/12541.059

Chords — 11 modules

Each is a root plus its tones, all starting together, two beats long. The tile shows the name with the chord's harmonic ratio underneath.

NameRatioTones above the root
Major4:5:61/1, 5/4, 3/2
Minor10:12:151/1, 6/5, 3/2
Diminished5:6:71/1, 6/5, 7/5
Augmented16:20:251/1, 5/4, 25/16
Sus46:8:91/1, 4/3, 3/2
Dominant 7th36:45:54:641/1, 5/4, 3/2, 16/9
Harmonic 7th4:5:6:71/1, 5/4, 3/2, 7/4
Minor 7th10:12:15:181/1, 6/5, 3/2, 9/5
Major 7th8:10:12:151/1, 5/4, 3/2, 15/8
Base-3 chord3:5:7:91/1, 5/3, 7/3, 3/1
Base-5 chord5:7:9:111/1, 7/5, 9/5, 11/5

Two of these deserve a note:

Dominant 7th and Harmonic 7th are not the same chord. The Dominant 7th takes its seventh from 16/9, which gives the classic 64/45 tritone against the 5/4 third — the tense, wants-to-resolve sound of functional harmony. The Harmonic 7th (4:5:6:7) takes 7/4 instead: four consecutive harmonics, and the flattest, sweetest seventh there is. It does not want to resolve. Play them back to back.

Base-3 and Base-5 are RMT's own chords. They are runs of consecutive odd harmonics stacked over an odd root: 3:5:7:9 and 5:7:9:11. There is no common-practice name for them because common practice was built on the octave, and these are not.

Progressions and cadences — 8 modules

Both live in the Progressions section. Every root is expressed as a move from the previous root, so the roots you see below are what the chain resolves to — not what is written in the file.

ModuleChordsRoots resolve to
V7 – IHarmonic 7th → Major (with octave)3/2 → 1/1
ii – V – IMinor → Harmonic 7th → Major (with octave)9/8 → 3/2 → 1/1
I – IV – V – IMajor → Major → Major → Major (with octave)1/1 → 4/3 → 3/2 → 1/1
I – vi – IV – VMajor → Minor → Major → Major1/1 → 5/3 → 4/3 → 3/2
Authentic (V–I)Major → Major (with octave)3/2 → 1/1
Plagal (IV–I)Major → Major (with octave)4/3 → 1/1
Deceptive (V–vi)Major → Minor3/2 → 5/3
Half (I–V)Major → Major1/1 → 3/2

Each chord lasts two beats; the resolving chord in ii – V – I lasts four.

Because the roots chain, a progression is a single object with a single handle. Grab the first root and the progression moves. That is not a feature that was added — it falls out of writing the music down honestly.

Melodies — 7 modules

Public-domain tunes, written as scale degrees against the BaseNote.

NameNotesTempoBeats/measure
Ode to Joy151204
Twinkle Twinkle141204
Frère Jacques321204
Amazing Grace321503
Greensleeves192003
Bach Minuet in G161503
Scarborough Fair151503

Drop one on a note and it plays from there, in tune with everything around it. Frère Jacques is a round: drop a second copy onto a note partway through the first and it sings against itself.

Scale Systems — 6 modules

Chained scales: each note is a step above the previous one, so the scale is a ladder, not a list. Each note starts when the one before it ends, and the note length is set per module — the wider the scale, the shorter the note, so a 31-note run does not take half a minute.

NameNotesStepNote lengthRepeats at
12-TET13× 2 ^ (1/12)¾ beatthe octave
19-TET20× 2 ^ (1/19)½ beatthe octave
31-TET32× 2 ^ (1/31)¼ beatthe octave
Bohlen–Pierce14× 3 ^ (1/13)½ beatthe tritave (3/1)
Tesla81odd harmonics — see below1 beatnever
Mixed-Base12mixed 2-, 3- and 5-based steps½ beatreturns to base.f

Each equal temperament runs one full period plus the note it started on, so you hear it close.

Bohlen–Pierce divides the tritave (3/1) into 13 equal steps instead of dividing the octave. It has no octave at all. It sounds like nothing else here, and it is the fastest way to hear that "the octave" is a choice.

The Tesla scale, honestly

Tesla is not an equal temperament, and it does not repeat at the octave — or anywhere. It is a construction, named for the 3-6-9 idea, not a historical tuning.

Here is exactly what it is: take the odd numbers from 9 to 169 and divide each by 9.

9/9, 11/9, 13/9, 15/9, 17/9, … 167/9, 169/9

That is 81 notes (81 = 3⁴), anchored on the 9th harmonic (9 = 3²). In the file it is written as a chain, so each step is the next odd harmonic over the current one — 11/9, then 13/11, then 15/13, all the way down to 169/167.

The consequence is the interesting part. The steps shrink as the scale climbs: the first step is 347 cents — a neutral third — and the last is 21 cents, barely a comma. It starts as a chord and ends as a shimmer. The whole thing spans 169/9, about 5077 cents, or 4.23 octaves, which is why its BaseNote is set an octave low (131.5 Hz) — otherwise the top of it would be out of hearing.

It is a harmonic series segment stretched over four octaves, not a scale in the usual sense. Play it and you will hear that immediately. And unlike the equal temperaments sitting beside it, every note in it is an exact ratio — nothing in Tesla is approximated.

Mixed-Base is an experiment: 12 notes whose steps mix octave-based, tritave-based and 5-based roots (2^(1/12), 3^(1/13), 5^(1/7), and some inverses), and whose final note jumps straight back to base.f. It goes wandering and comes home.

Custom — 1 module

Custom ships with canon base, a 74-note canon with four silences in it — a real composition to take apart. It is also where Copy to Modules files anything you build from a multi-note selection. Uploaded .json files land in whichever section's dashed + tile you clicked, so Custom is the obvious place to put them, not the only one.

Where to go next

Released under the MIT License