OTYPEroadmap4 october 2026OT1

roadmap · a scripting language for ot1 · ot cfw · command reference

OType is the scripting language of ot1: small functions that you write, run from a menu, and that change the pattern, the sample pool or the part in one gesture.

Everything on the computer side works: you can write a script, check it, and run it in a simulator on a copy of your own bank and card. The first milestone runs on a real machine: scripts from the menu pick files on the card, fill the sample pool, place trigs and set sample locks. Next come a page of encoders for scripts, then p-locks, the part and the trig word.

Where OType stands

  1. languagesyntax, checker, editor support, this reference
  2. simulatorrun a script on a copy of your bank and card, see the pattern before and after
  3. compiled tablethe form scripts take on the unit, and a reference machine that runs it
  4. firmware studyhow the unit writes trigs, locks and slots, read only
  5. first scripts on the unitmilestone M1, below: passed on a real machine
  6. the SCRIPT pageM2: a script on a page of six encoders, a layer you print or discard; works in the emulator, being built into the firmware
  7. p-locks, the part, the trig wordM3: p-locks and trigless locks, LFOs, effects, scenes, track init, trig conditions, micro timing, retrigs, velocity curves; done on the computer and in the unit's machine code, firmware side next
  8. thentempo, a slot for a track, messages on screen

Milestone M1

From the function menu, run a script that picks precise files on the card, fills the sample pool with them, places trigs and sets sample locks. Everything else comes after.

Each stage ends on a proof: the unit's result must equal the simulator's, byte for byte, before the next one starts.

stagewhatstateproof
E0the M1 profile on the computerdonethe three scripts below run in the simulator on a copy of a real card
E1the OType machine on the unitdonebuilt into the firmware module: same results as the reference machine on 27,192 runs, in the emulator
E2trigs and sample locksdonethe bank's bytes equal the simulator's, on the emulated machine, committed the way the unit's own keys do
E3files on the card and sample slotsdonesame file lists and slots as the simulator, on a FAT32 card
E3xthe compiler on the unitdonescripts are read as text from the card and compiled by the unit: same tables and same error report as the computer on 16,537 cases
E4a SCRIPTS row in the function menudonethe three scripts below ran on a real machine

the three M1 scripts

def kicks
  menu "POOL" >> "KICKS"
  confirm "fill free slots?"
  dir "AUDIO" deep
  ext wav
  match "bd*" "kick*"
  l 1 8:
    a slot.firstfree
    if a: slot.load a file.pick

def kit_lock
  menu "TRIGS" >> "KIT LOCK"
  dir "AUDIO/DRUMS/ELKA"
  match "*hat*"
  slots.none
  l 1 4:
    a slot.firstfree
    slot.load a file.pick
    slots.add a
  steps has.trig:
    each: smp.set i slots.rnd

def four
  menu "TRIGS" >> "FOUR"
  tr.clr
  l 1 16: if eq mod i 4 1: tr.add i
  prob 30: tr.add 15

Decided

  • scripts are plain text on the card — the unit compiles them itself: write a script on your computer, copy it, run it
  • one SCRIPTS row in the function menu — the arrows choose the script, a press runs it, YES/NO before anything destructive
  • file lists hold up to 4096 names — enough for a full sample library; names longer than 127 characters are skipped with a warning
  • paths start at the set — dir "AUDIO/DRUMS" reads the AUDIO folder of the current set
  • same result everywhere — the simulator, the reference machine and the unit give the same pattern for the same seed
  • the question asked before a destructive script is yours — confirm "CLEAR ALL?" is kept in the compiled table and shown by the confirmation box (else the function's name)
  • velocity curves — dr.v c s: eight curves of 16 steps (flat, beats, off-beats, ramps, eighths, tresillo, swell)
  • the sample pool in one press — pool.rnd fills every free slot with a random file of the list, never the same twice

Operations

131 operations are defined; 128 of them are in the unit's profile (M1, on the unit today, has 86; the rest arrives with M2 and M3). Each one needs either nothing from the firmware (the language itself) or a firmware routine, found or still to find.

familyopsfirmwarelanguagefoundto findunit profile
lang55005 / 5
math11110011 / 11
logic12120012 / 12
random55005 / 5
rhythm33003 / 3
state10100010 / 10
context11101011 / 11
trigs90639 / 9
locks301712130 / 30
trigword50235 / 5
part110929 / 11
card76107 / 7
slots1138011 / 11
ui1010–
total13182409128 / 131
language only routine found and used on the unit routine still to find