We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.
31 edons, 31 octons
- This article is not detailed enough and needs to be expanded. Please help us by adding some more information.
| Designed by | User:miu |
|---|---|
| Appeared in | 2026 |
| Computational class | Unknown |
| Reference implementation | Unimplemented |
31 edons, 31 octons is an esoteric programming language whose architecture is based on 31‑EDO (31 equal divisions of the octave). Instead of bits and bytes, it uses edons (single EDO steps) and octons (full 31‑step cycles) as its fundamental units of memory and computation.
Concept
- Edon – one step of 31‑EDO (modulus 31).
- Octon – one full 31‑step cycle (the octave), i.e. the complete residue class modulo 31.
Memory and control flow are defined over the multiplicative unit group modulo 31 rather than linear addresses.
Architecture
Memory model
- Modulus: 31
- Valid addresses: all integers a with gcd(a, 31) = 1, i.e. 1–30.
- Memory forms a single cycle generated by multiplication by a primitive root (e.g. 3 or 11 mod 31).
Address traversal:
a_{k+1} = g * a_k (mod 31)
where g is a chosen primitive root (commonly 3).
Every valid cell is visited exactly once before returning to the start.
The “linear position” of a cell is its discrete logarithm base g modulo 31.
Programs are loaded along this cycle: instruction k lives at address:
g^k mod 31
Data units
- Edon value: integer in
[0,30], interpreted as a 31‑EDO pitch step or numeric value. - Octon: a full cycle of 31 edons; higher‑level structures (arrays, chords, registers) are defined over octons.
Instruction set (sketch)
Opcodes are defined as interval classes in 31‑EDO:
| Interval (steps) | Role | Opcode |
|---|---|---|
| 0 | Unison | NOP |
| 5 | Supermajor third | ADD |
| 11 | Perfect fifth | JMP |
| 18 | Ultramajor sixth | CMP |
| 25 | Supermajor seventh | HALT |
Each instruction:
- lives at a unit‑group address,
- advances the instruction pointer by multiplication (e.g.
IP = g * IP mod 31), - may modify registers interpreted as chords or pitches.
Execution model
- Program counter: walks the unit group via multiplication.
- Registers: represent tonic, dominant, mediant, etc., as edon offsets.
- Control flow: harmonic motion—interval opcodes move the state through 31‑EDO space.
- Programs: can be rendered both as numeric dumps and as musical scores in 31‑EDO.
Example (Hello World, concept)
A “Hello World” program in 31 edons, 31 octons:
- encodes the string as edon values
[0..30], - loads them along the multiplicative cycle
g^k mod 31, - steps through them by multiplying the instruction pointer,
- plays each edon as a 31‑EDO pitch while printing the corresponding character.
See also
- 9_trits,_19683_trytes — the mother architecture
- 19 edons, 19 octons — the 19‑EDO sister architecture.
- Жiжos — a tritriadic, DMT‑based harmonic language.
- 6 trits, 243 trytes — a balanced ternary language with multiplicative memory modulo 3^9.
- Eikosany — a 6‑dimensional harmonic polytope related to tritriadic scales.