# OPAL 2026 — surface card

*Generated by `tools/cheat-sheet.py` from `tools/lcxl_grid.py` + the
setlist. Do not hand-edit — regenerate.*

```
+----------------------------------------------------------------------------+
|  WHEN IT GOES WRONG                                                        |
+----------------------------------------------------------------------------+
|                                                                            |
|  EVERYTHING OFF          hush        (or CC93 = gPanic, global kill)       |
|  ONE ORBIT OFF           dN $ silence                                      |
|  SOUND BUT NO CONTROL    the desk is not seeding -> sweep the row,         |
|                          each knob wakes on its FIRST move                 |
|  LEDS DARK, KNOBS WORK   USB OUT endpoint stalled. REPLUG the LCXL.        |
|                          Input keeps working while output is dead,         |
|                          so 'it responds' does not mean it is fine.        |
|  A TRACK MAKES NO SOUND  it did not compile. One block, one error —        |
|                          check Pulsar's notification for EVAL ERROR.       |
|  AN ORBIT WILL NOT DIE   it is the PREVIOUS track's pattern still          |
|                          running (an orphan). dN $ silence, by hand.       |
|  MIXER SILENT, TIDAL OK  an Ardour fader is down. Faders are CC77-84       |
|                          and the desk wins on touch.                       |
|                                                                            |
+----------------------------------------------------------------------------+
```

## Before the first track

```
  tools/gig-up.sh          GO / NO-GO for the whole chain (cold, ~1 min)
  tools/gig-up.sh --audio  + boots every track and proves it sounds
```

A green `gig-up` proves the set **boots** correct. It does NOT prove the
mixer is correct — `check-mix` reads the SAVED Ardour session, and the
physical desk drifts from it in both directions. **Ctrl+S in Ardour**
before trusting a green fader line.

## The two groupings (they are NOT the same, on purpose)

```
  FILTERS group by BLOC              MUTES group by ROLE
  row C, knobs 1-3                   row F, buttons 1-3

  gF1 ^49   d1,d2,d3,d8
  gF2 ^50   d4
  gF3 ^51   d5,d6,d7,d9,d10,d11,d12

  gM1 ^73   d1
  gM2 ^74   d2,d3,d8
  gM3 ^75   d4,d5,d6,d7,d9,d10,d11,d12

  DJ filter: 0.5 = BYPASS (centre). 0.05 is a ~26 Hz lowpass = silence.
  So a filter knob left at zero is not neutral, it is off.
```

The kick sits alone on **gM1** so it can drop by itself, but filters with
the whole rhythm bloc on **gF1**. That asymmetry is deliberate: `gM<N>`
and `gF<N>` carrying different numbers on the same orbit is CORRECT.

## The surface, column by column

```
  col  1      2      3      4      5      6      7      8
  ------------------------------------------------------------
  A    ^13    ^14    ^15    ^16    ^17    ^18    ^19    ^20
  B    ^29    ^30    ^31    ^32    ^33    ^34    ^35    ^36
  C    ^49    ^50    ^51    ^52    ^53    ^54    ^55    ^56
  D    ^77    ^78    ^79    ^80    ^81    ^82    ^83    ^84
  E    ^41    ^42    ^43    ^44    ^57    ^58    ^59    ^60
  F    ^73    ^74    ^75    ^76    ^89    ^90    ^91    ^92
  ------------------------------------------------------------
  A  knob top  d9-d12 level (1-4) | d9-d12 fx (5-8)
  B  knob mid  per-orbit effect, column N = orbit N
  C  knob bot  1-3 FAMILY FILTER | 4-8 per-orbit fx2
  D  fader     orbit level  -- ARDOUR OWNS THESE (CC77-84)
  E  button    per-orbit gate, column N = orbit N
  F  button    1-3 FAMILY MUTE  | 4-8 per-orbit gate2

  NEVER send CC 77-84 from Tidal (Ardour track gains; 77 down = silence).
  NEVER sweep CC 93 (gPanic).
```

## The set, in play order

```
   #  track                            declares                    ghost risk
  --------------------------------------------------------------------------
   1  bombe_dj                         1,2,3,4,5,7,8,9             6,10,11,12
   2  wap                              1,2,3,4,5,7,8,9             6,10,11,12
   3  do_it_right                      1,2,3,4,5,6,8,10,12         7,9,11
   4  take_5_drops                     1,2,3,4,5,7,8,10,11,12      6,9
   5  piment_bresilien                 1,2,3,4,5,7,8,10            6,9,11,12
   6  perfect                          1,2,3,4,5,6,7,8,9,10,11,12  -
   7  gimme_acid                       1,2,3,4,5,8,9,10,11,12      6,7
   8  vague_de_crime                   1,2,3,4,5,6,7,8,10          9,11,12
   9  mafia_sans_serif                 1,2,3,4,5,7,8               6,9,10,11,12
  10  you_my_sunshine                  1,2,3,4,5,6,8,9,11          7,10,12
  11  desire                           1,2,3,4,5,6,7,8,9           10,11,12
  12  the_revolution_will_be_sampled   1,2,3,4,5,7,8,9,10,11,12    6
  13  electric_hammer                  1,2,3,4,5,9,11              6,7,8,10,12
```

An orbit a track does **not** declare is not silent by default — it keeps
playing whatever the previous track put there. When a transition sounds
wrong, that is the first thing to suspect.
