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

From Esolang
Jump to navigation Jump to search
This article is not detailed enough and needs to be expanded. Please help us by adding some more information.
31 edons, 31 octons
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:

31‑EDO Instruction Set (Sketch)
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