Generative harmonic instrument · 3.5" touch panel
Oráculo is not a sequencer that plays back what you program — it is an instrument that proposes its own harmony. You steer it (density, tension, mode, brain) and it dictates chords in real time, sounds them through its internal synthesizer, and sends them over MIDI to your rig. A harmonic companion that thinks outside your DAW.
Everything fits in a single view. The current chord rules the center; information lives in the corners.
A min) and its notes (A · C · E). The ringspulse with the beat; the orbs orbit (one per active voice).
MIDI, AUDIO, CLOCK and BRAIN.vel (bottom-right) — transport and MIDI velocity.Oráculo is played with four gestures. The screen splits into two zones: the body (the whole circle) and the preset strip (bottom edge).
┌───────────────────────────────────────────┐
│ STEP status TEMPO │
│ │
│ ╭───────────╮ │ BODY
│ │ │ ← swipe ← → │ tap = play / stop
│ swipe↑ │ CHORD │ = prev / next │ swipe ←→ = previous / next chord
│ tempo+ │ │ chord │ swipe ↑↓ = tempo ±5
│ swipe↓ ╰───────────╯ │ long-press = enter / exit EDIT
│ tempo- │
│ DENSITY PLAY │
│ ┌─────┬─────┬─────┬─────┬─────┬─────┬──┬──┐ │ PRESET STRIP (bottom edge)
│ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │7 │8 │ │ tap = load preset
│ └─────┴─────┴─────┴─────┴─────┴─────┴──┴──┘ │ long-press = save preset
└───────────────────────────────────────────┘
| Gesture | In the body | In the preset strip |
|---|---|---|
| Tap | Play / Stop | Load that preset |
| Swipe ← / → | Previous / next chord | — |
| Swipe ↑ / ↓ | Tempo +5 / −5 BPM | — |
| Long-press | Enter / exit EDIT | Save (overwrite) that preset |
Tip: play is triggered by tapping the center of the chord. The preset strip is only the bottom edge.
A long-press on the body opens EDIT. The panel is organized into 5 pages; the dots at the top show which one you are on.
>).alike: the position picks the value).
Page 1 · PERFORM — what you touch most while playing:
| Parameter | What it does |
|---|---|
| DENSITY | Number of voices sounding (0–100%). |
| TENSION | Harmonic restlessness: more sevenths, ninth color and borrowed chords; less resolution. |
| BALANCE | Voice spread / weighting. |
| TEMPO | 40–200 BPM. |
Page 2 · ENGINE — how the engine behaves:
| Parameter | What it does |
|---|---|
| MODE | Tonal · Modal · Markov (see §5). |
| BRAIN | Switches the harmonic brain (see §4). |
| TRANSPORT | Master · Slave · Internal (see §6). |
Page 3 · KEY — tonality:
| Parameter | What it does |
|---|---|
| ROOT | Tonic. AUTO = the brain's; pick a note (C…B) to lock the key (survives brain and preset changes). |
| SCALE | AUTO (the brain's scale) or one of 9: Maj, Min, Dor, Phr, Lyd, Mix, Loc, HMin (harmonic minor), MMin (melodic minor). |
Page 4 · PHRASE — rhythm and register:
| Parameter | What it does |
|---|---|
| RATE | Beats per chord: 1 · 2 · 4 · 8. The visual pulse stays per-beat; only the chord change slows down. |
| BASS | OFF / ON. Bass reinforcement (root −12) on the internal audio only; MIDI stays clean. |
| TRANSPOSE | Shifts everything: −24 · −12 · 0 · +12 semitones. Affects internal audio and MIDI. Does not change the harmony. |
Page 5 · EXPRESS — dynamics and voicing:
| Parameter | What it does |
|---|---|
| VOICE | Voicing: Close · Open · Wide (raises voices by octaves; same notes, harmony unchanged). |
| VELOCITY | Humanizes the attack: OFF · 4 · 8 · 14 of per-note variation (MIDI + audio). |
| RELEASE | Internal-audio tail: Short · Med · Long · Pad. Audio only. |
The vertical axis does not adjust values: within a page everything is adjusted by dragging horizontally. The vertical swipe (↑ / ↓) changes the page.
A brain is a rule set that defines the harmonic character. Oráculo ships 5, hot-swappable without cutting the sound: the current chord is kept and the change is heard on the next pulse. A flash confirms each switch.
To change it: EDIT → tap to the BRAIN target → drag horizontally.
| Brain | Character | Default mode |
|---|---|---|
| default | Balanced, functional tonal. | tonal |
| ambient | Floating dorian, sevenths, soft cadences that don't resolve abruptly. | modal |
| jazz | Rich sevenths, marked ii–V–I progressions. | markov |
| dark_modal | Natural minor, melancholic, centered on minor degrees. | modal |
| minimal | Pure triads, direct I–IV–V, no ornaments. | tonal |
Loading a brain also sets its default mode (but if you then load a preset, the mode saved in the preset wins).
Oráculo generates, it does not repeat. Three levers shape the result:
(modal-interchange chords: minor iv, bVII, bVI) and less direct resolution.
- Tonal — functional logic (tonic → predominant → dominant → tonic), biased by tension. - Modal — drifts by voice-leading proximity; more floating and modal. - Markov — the brain's transition weights (e.g. jazz's strong ii–V–I).
thirds *inside* that scale, so dark_modal is genuinely minor and ambient dorian, not a "major in disguise". On the KEY page you can lock root and scale by hand (ROOT/SCALE targets), which override the brain's until you return to AUTO.
Oráculo sends chords over MIDI and syncs to a clock. The transport mode (the TRANSPORT target in edit) decides who leads:
| Mode | Who leads the clock |
|---|---|
| Master | Oráculo leads: sends MIDI clock + start/stop to your rig. |
| Slave | Oráculo follows an external MIDI clock (shows the incoming BPM). If the clock is lost it freezes and holds the chord. |
| Internal | Runs free, without sending clock out. |
Chords go out as MIDI notes at the shown velocity (vel).
Oráculo sounds on its own, through its internal synthesizer (a separate audio process so there are no clicks). Waveform (sine / triangle / saw) and volume are saved and recalled with presets. The output goes to your audio interface.
The bottom strip has 8 slots, always visible. Each stores a complete state: density, balance, tempo, tension, mode, transport, waveform, volume, brain and every setting on the KEY/PHRASE/EXPRESS pages (key and scale, rate, bass, transpose, voice, velocity and release).
0.5 s flash confirms).
The label shows mode·tempo (e.g. ton·120). Presets survive reboots.
Oráculo starts on its own when the Raspberry Pi powers up (automatic service). Nothing to launch: power it on and within seconds the main view appears, ready to play.
PLAY/STOP ............ tap the center
Prev/next chord ...... swipe ← / →
Tempo ±5 ............. swipe ↑ / ↓
Edit ................. long-press (center) → tap cycles param · drag adjusts · swipe ↑↓ page
Change brain ......... EDIT → ENGINE → BRAIN → drag
Load preset .......... tap a bottom slot
Save preset .......... long-press a bottom slot
edge (that strip is for presets).
until it receives a clock. Switch to *Master* or *Internal* in EDIT → TRANSPORT.
audio interface.
*Oráculo — generative harmonic instrument. Enjoy it.*