Skip to content

Build a Major Scale

In this tutorial, you'll build a major scale using just intonation ratios - the exact fractions from the natural harmonic series.

Objective

Create an 8-note major scale (Do-Re-Mi-Fa-Sol-La-Ti-Do) using pure ratios.

Prerequisites

The Major Scale Ratios

DegreeNameRatioDecimal
1Do1/11.000
2Re9/81.125
3Mi5/41.250
4Fa4/31.333
5Sol3/21.500
6La5/31.667
7Ti15/81.875
8Do2/12.000

Step 1: Set Up the BaseNote

  1. Open RMT Compose
  2. Click the BaseNote (orange circle)
  3. In the Variable Widget, scroll down to the bottom and click "Clean Slate" to remove all notes except the BaseNote
  4. Verify the BaseNote settings are what you want:
    • frequency: e.g. 440 (A4)
    • tempo: e.g. 120 (120 BPM)

Step 2: Create the Root (Do)

  1. With the BaseNote selected
  2. In the Variable Widget, find "Add Note / Silence" section
  3. Select "Note", then click "Create Note"
  4. Select the new note
  5. Set its frequency:
base.f
Legacy JavaScript syntax
javascript
module.baseNote.getVariable('frequency')
  1. Set its duration to a quarter note:
beat(base)
Legacy JavaScript syntax
javascript
new Fraction(60).div(module.findTempo(module.baseNote))
  1. Click Save

Step 3: Create Re (9/8)

  1. Select the Do note you just created (Note 1)
  2. In "Add Note / Silence", keep "Note" and "At End" selected, click "Create Note"
  3. Select the new note (Note 2)
  4. Set its frequency:
base.f * (9/8)
Legacy JavaScript syntax
javascript
module.baseNote.getVariable('frequency').mul(new Fraction(9, 8))
  1. Click Save

Step 4: Create Mi (5/4)

  1. Select Note 2
  2. Click "Create Note" (in "Add Note / Silence" section)
  3. Select Note 3
  4. Set its frequency:
base.f * (5/4)
Legacy JavaScript syntax
javascript
module.baseNote.getVariable('frequency').mul(new Fraction(5, 4))
  1. Click Save

Step 5: Create Fa (4/3)

  1. Select Note 3
  2. Add a new note
  3. Set frequency:
base.f * (4/3)
Legacy JavaScript syntax
javascript
module.baseNote.getVariable('frequency').mul(new Fraction(4, 3))

Step 6: Create Sol (3/2)

  1. Add note after Fa
  2. Set frequency:
base.f * (3/2)
Legacy JavaScript syntax
javascript
module.baseNote.getVariable('frequency').mul(new Fraction(3, 2))

Step 7: Create La (5/3)

  1. Add note after Sol
  2. Set frequency:
base.f * (5/3)
Legacy JavaScript syntax
javascript
module.baseNote.getVariable('frequency').mul(new Fraction(5, 3))

Step 8: Create Ti (15/8)

  1. Add note after La
  2. Set frequency:
base.f * (15/8)
Legacy JavaScript syntax
javascript
module.baseNote.getVariable('frequency').mul(new Fraction(15, 8))

Step 9: Create High Do (2/1)

  1. Add note after Ti
  2. Set frequency:
base.f * 2
Legacy JavaScript syntax
javascript
module.baseNote.getVariable('frequency').mul(new Fraction(2))

Verification

  1. Click Play to hear your scale
  2. You should hear 8 notes ascending
  3. The last note (high Do) should sound like the first note, but higher

Check Your Work

Select each note and verify the frequency ratio in the Variable Widget:

Note IDExpected Ratio
11/1
29/8
35/4
44/3
53/2
65/3
715/8
82/1

Save Your Module

  1. Click Menu > Save Module
  2. Rename to major-scale-just.json

Exercises

Exercise 1: Descending Scale

Modify your scale to descend from high Do to low Do.

Hint: Change the order of start times, or create new notes in reverse order.

Exercise 2: Change the Root

  1. Click the BaseNote
  2. Change frequency to 330 (E4)
  3. Play - the scale is now in E major!

Exercise 3: Longer Notes

Change all durations to half notes:

beat(base) * 2
Legacy JavaScript syntax
javascript
new Fraction(60).div(module.findTempo(module.baseNote)).mul(new Fraction(2))

What You Learned

  • Major scale intervals as pure ratios
  • Creating sequential notes using "At End" positioning
  • How changing BaseNote transposes the entire scale
  • The relationship between tempo and duration

Next Steps

Released under the RMT Personal Non-Commercial License