Skip to content
Back to skills

Digico

ASecurity

Read, build and edit DiGiCo SD and Quantum sessions (.ses) by bytes, on a baseline saved by the DiGiCo offline editor - build a new session from an input list or a plain description (channel count, order, stereo, names, per-instrument starting processing, buses, SD FX units, IEM and wedge mixes, sends, input patch and preamps), edit any session (processing, names, moves, stereo, patch, sends, FX, buses) from edit ops or plain-English commands, check a session (what console and software it loa...

  • 8 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 24, 2026
developmentpythongo

Security analysis

A100/100

Pro scans all 18 files and shows the line behind each finding

Scanned November 11, 2026

npx -y skills add michaelkeithlewis/show-file-skills --skill digico --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Digico?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Digico
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/michaelkeithlewis-digico/badge)](https://www.skillsdirectory.com/skills/michaelkeithlewis-digico)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: digico-session
description: Read, build and edit DiGiCo SD and Quantum sessions (.ses) by bytes, on a baseline saved by the DiGiCo offline editor - build a new session from an input list or a plain description (channel count, order, stereo, names, per-instrument starting processing, buses, SD FX units, IEM and wedge mixes, sends, input patch and preamps), edit any session (processing, names, moves, stereo, patch, sends, FX, buses) from edit ops or plain-English commands, check a session (what console and software it loads on, structure, problems). Built for agents creating session files from the command line. Trigger on "DiGiCo", ".ses", "Quantum", "SD12", "SD9", "Q225", "Q338", "session file", "build a DiGiCo session from this input list", "check this session", "Mustard", "Spice Rack", or any request to make or change a DiGiCo show file.
---

# DiGiCo sessions

DiGiCo sessions are always patched in place on a **baseline**: a session the DiGiCo offline editor saved for the
console and software build you will load it on. The tools never write a session from nothing. The console rebuilds
its caches on load.

## Safety rules

1. Write new files only. Never overwrite the baseline or the engineer's session.
2. Open every generated session in the DiGiCo offline editor for that console and build, check it, then
   **Files > Save As** a new file. Only the editor's save goes to a console.
3. First load on a real console happens at prep or rehearsal, never at the show.
4. Read the report next to the output (`<out>.md`). Every approximation and warning is listed.
5. A session saved by a newer build does not load on an older console. Build on the console's own build.

## Set up once

- Baselines: `references/baselines.md`. Default sessions go in `scripts/baselines/<key>_v<build>.ses`
  (or the folder `SM_BASELINES` names).
- Python 3.9+, standard library only. Run everything from `scripts/`.

## Tools

| Command (from `scripts/`) | Does |
|---|---|
| `python3 ses.py <file.ses>` | Summary: console, build, inputs, stereo, auxes, groups. `ses.py` is also the reader/writer library: slots by (module, param, band), renames every name copy in place, strip views. |
| `python3 -m sessionmaker.inspect <file.ses>` | Checker: what it loads on, channels, patch, mixes, FX, structure problems. `--json` for the full model. |
| `python3 -m sessionmaker.consoles` | Consoles and builds the baselines folder supports. |
| `python3 -m sessionmaker.listparse <list> --table` | Read an input list (CSV, XLSX, XLS, DOCX, PDF, HTML, text). |
| `python3 -m sessionmaker.intake <list or "description">` | Channel plan with instrument categories. |
| `python3 -m sessionmaker.build <req.json> <out.ses>` | New session from a request. Writes `<out>.md` (report) and `<out>.json` (read-back, checks). |
| `python3 -m sessionmaker.edit <in.ses> '<ops json>' <out.ses>` | Apply edit ops. Refused ops say why and leave the file as it was. |
| `python3 -m sessionmaker.commands <in.ses> "<text>"` | Turn plain English into edit ops (prints them; apply with `edit`). |
| `python3 -m sessionmaker.validate <file.ses>` | Structural invariants. Run after every write. |

The request format is in the `build.py` docstring, the op format in `edit.py`. Overview: `references/sessionmaker.md`.

## New session from an input list (the recipe)

1. `intake` the list. Check every category and stereo pair against the list; fix names to 8 characters.
2. Write the request: console key, build, channels, `processing: templates` (or `none`), and the option blocks you
   need (`mixes`, `fx`, `sends`, `buses`, `patch`). See `examples/build_request.json`.
3. `build`. Read the report and the warnings. `validate` and `inspect` the result.
4. Changes: `commands` to draft ops, read them, then `edit`. Validate again.
5. Open in the editor, check, Save As.

## Levels and filters (read before writing values by hand)

- Thresholds are dBFS and stop at 0.
- The strip shows the -3 dB cutoff. Stored HPF = shown / 1.25, stored LPF = shown / 0.8. EQ is stored as shown.
- Times are stored in seconds.
Details: `references/filters-and-thresholds.md`.

## Format notes

`references/FORMAT.md` (container, section table, module records, slot keys, stereo, Mustard, Spice Rack, FX units,
sends, buses, patch, surface banks), `references/CHANNEL_MODEL.md` (the input channel signal flow and what is
mapped), `references/engine-findings.md` (editor-proven limits, load rules and the guards these scripts still lack),
`references/scope-and-recall.md` (snapshot scope, Global Scope, safes, and what a recall changes and leaves).
Key by (module, param, band), never by offset: the channel stride changes with the session structure.

`references/snapshots.md`: the snapshot pool, the snapshot record and its options, snapshot groups, setlists, and how
to add, update and delete a snapshot by bytes.
The same file has the settings of one snapshot, the editor's own Delete and Insert New, and what a Restructure does to
section 210 (editor-verified on the Quantum 225 and the SD12).

`references/session-structure.md`: header, sections, objects, strip kinds, ports, and the 48kHz and 96kHz keys (header
0x77 and 0x87, the I/O device table and the Copy Audio prompt).
`references/io-patch.md`: racks (add, swap, remove), the input patch with gain, 48V and pad, the output patch, and what a
recall does to a patch change.
`references/bus-processing.md`: the EQ, compressor, gate, delay, trim and insert switch of aux, group and matrix output
strips, with the editor's clamps.

Files in this skill

  • .gitignore126 B
  • README.md4.2 KB
  • SKILL.md4.4 KB
  • examples/build_request.json2.2 KB
  • examples/input_list.csv506 B
  • references/CHANNEL_MODEL.md5.9 KB
  • references/FORMAT.md14.1 KB
  • references/baselines.md2.7 KB
  • references/filters-and-thresholds.md1.3 KB
  • references/sessionmaker.md4.1 KB
  • scripts/keys_from_offsets.json19.2 KB
  • scripts/ses.py16.3 KB
  • scripts/sesproc.py4 KB
  • scripts/sessionmaker/__init__.py784 B
  • scripts/sessionmaker/build.py23.3 KB
  • scripts/sessionmaker/buses.py41.1 KB
  • scripts/sessionmaker/busside.py32.7 KB
  • scripts/sessionmaker/consoles.py10.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in development →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.