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
- RMT Compose running
- Familiarity with the Variable Widget
- Understanding of Core Concepts
The Major Scale Ratios
| Degree | Name | Ratio | Decimal |
|---|---|---|---|
| 1 | Do | 1/1 | 1.000 |
| 2 | Re | 9/8 | 1.125 |
| 3 | Mi | 5/4 | 1.250 |
| 4 | Fa | 4/3 | 1.333 |
| 5 | Sol | 3/2 | 1.500 |
| 6 | La | 5/3 | 1.667 |
| 7 | Ti | 15/8 | 1.875 |
| 8 | Do | 2/1 | 2.000 |
Step 1: Start Fresh
- Open RMT Compose
- Click Menu (☰) > Load Module > Reset to Default Module
- Or load the "octave" interval module as a starting point
Step 2: Set Up the BaseNote
- Click the BaseNote (orange circle)
- In the Variable Widget, verify:
- frequency:
new Fraction(440)(A4, but any frequency works) - tempo:
new Fraction(120)(120 BPM)
- frequency:
Step 3: Create the Root (Do)
- Click the BaseNote
- Click "Add Note" > "Add at Start+Duration"
- Select the new note
- Set its frequency:
javascript
module.baseNote.getVariable('frequency')- Set its duration to a quarter note:
javascript
new Fraction(60).div(module.findTempo(module.baseNote))- Click Save
Step 4: Create Re (9/8)
- Select the Do note you just created (Note 1)
- Click "Add Note" > "Add at Start+Duration"
- Select the new note (Note 2)
- Set its frequency:
javascript
module.baseNote.getVariable('frequency').mul(new Fraction(9, 8))- Click Save
Step 5: Create Mi (5/4)
- Select Note 2
- Click "Add Note" > "Add at Start+Duration"
- Select Note 3
- Set its frequency:
javascript
module.baseNote.getVariable('frequency').mul(new Fraction(5, 4))- Click Save
Step 6: Create Fa (4/3)
- Select Note 3
- Add a new note
- Set frequency:
javascript
module.baseNote.getVariable('frequency').mul(new Fraction(4, 3))Step 7: Create Sol (3/2)
- Add note after Fa
- Set frequency:
javascript
module.baseNote.getVariable('frequency').mul(new Fraction(3, 2))Step 8: Create La (5/3)
- Add note after Sol
- Set frequency:
javascript
module.baseNote.getVariable('frequency').mul(new Fraction(5, 3))Step 9: Create Ti (15/8)
- Add note after La
- Set frequency:
javascript
module.baseNote.getVariable('frequency').mul(new Fraction(15, 8))Step 10: Create High Do (2/1)
- Add note after Ti
- Set frequency:
javascript
module.baseNote.getVariable('frequency').mul(new Fraction(2, 1))Or simply:
javascript
module.baseNote.getVariable('frequency').mul(new Fraction(2))Verification
- Click Play to hear your scale
- You should hear 8 notes ascending
- 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 ID | Expected Ratio |
|---|---|
| 1 | 1/1 |
| 2 | 9/8 |
| 3 | 5/4 |
| 4 | 4/3 |
| 5 | 3/2 |
| 6 | 5/3 |
| 7 | 15/8 |
| 8 | 2/1 |
Save Your Module
- Click Menu > Save Module
- 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
- Click the BaseNote
- Change frequency to
new Fraction(330)(E4) - Play - the scale is now in E major!
Exercise 3: Longer Notes
Change all durations to half notes:
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 "Add at Start+Duration"
- How changing BaseNote transposes the entire scale
- The relationship between tempo and duration
Next Steps
- Create a Major Triad - Build a chord
- Add Rhythm - Create varied rhythms
- Compare with 12-TET to hear the difference