agentleFS
michaelkeithlewismichaelkeithlewis/show-file-skills/digico/SKILL.md

digico-session

Skill8 starsChanged 13 days agoMITView on GitHub

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.

The file

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Write new files only. Never overwrite the baseline or the engineer's session.

    line 14
  2. Very specific:

    Read the report next to the output (<out>.md).

    line 18
  3. Very specific:

    Write the request: console key, build, channels, processing: templates (or none), and the option blocks you need (mixes, fx, sends, buses, …

    line 46

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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.consolesConsoles and builds the baselines folder supports.
python3 -m sessionmaker.listparse <list> --tableRead 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.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.