Skip to content
Back to skills

Liveprofessor

ASecurity

Read, dump and generate LiveProfessor 2 sessions (.rack2, a JUCE binary ValueTree) without opening LiveProfessor - audio device and channel labels, chains and their plugins, the hardware-in to chain to hardware-out routing - and build a pre-routed insert session (one chain per console channel over Dante or MADI) from a JSON channel list, copying plugin chains from an existing session. Trigger on "LiveProfessor", "LP session", ".rack2", "plugin host session", "build the LP inserts", "route Dan...

  • 8 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added October 24, 2026
toolspythongo

Security analysis

A100/100

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

Scanned October 24, 2026

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

Installs into .claude/skills of the current project.

Are you the author of Liveprofessor?

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

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

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: liveprofessor-session
description: Read, dump and generate LiveProfessor 2 sessions (.rack2, a JUCE binary ValueTree) without opening LiveProfessor - audio device and channel labels, chains and their plugins, the hardware-in to chain to hardware-out routing - and build a pre-routed insert session (one chain per console channel over Dante or MADI) from a JSON channel list, copying plugin chains from an existing session. Trigger on "LiveProfessor", "LP session", ".rack2", "plugin host session", "build the LP inserts", "route Dante into LiveProfessor", or "what plugins are on this chain". NOT for Waves SuperRack, Gig Performer, or DAW sessions.
---

# LiveProfessor 2 sessions

A `.rack2` file is a JUCE binary ValueTree. `scripts/vt.py` reads and writes it byte for
byte. The other scripts sit on top of it. Format notes: `references/FORMAT.md`.
Requires Python 3.8 or later and nothing else.

## Safety rules

1. Write new files only. Never overwrite the base session.
2. The base must be a session that LiveProfessor saved, with one empty mono chain and one
   empty stereo chain to clone. Chains with plugins are copied from it by name.
3. Run `check_derive.py` on the base first. If it reports a mismatch, the generator's
   current-state rule may not hold for that LiveProfessor version. Stop and compare dumps.
4. Open the output from inside LiveProfessor (on macOS, `open -a` does not load it), check routing and plugins, pass audio,
   and save it from LiveProfessor before the show.

## Commands

```
python3 scripts/vt.py SESSION.rack2 > dump.txt            # full tree, after a round-trip check
python3 scripts/summary.py SESSION.rack2                  # device, chains, plugins, routing
python3 scripts/check_derive.py SESSION.rack2             # current-state rule holds?
python3 scripts/lp_generate.py BASE.rack2 channels.json OUT.rack2
```

`examples/channels.json` shows the channel list. Chain names in it (`BLANK MONO`,
`VOCAL CHAIN` ...) are placeholders. Replace them with chain names from your base (see
`summary.py`).

## New insert session (the recipe)

1. Run `summary.py` on the base. Note an empty mono chain, an empty stereo chain, and the
   chains whose plugins you want to reuse.
2. Write `channels.json` from the console input list: one chain per insert, `inputs` = the
   Dante or MADI channel the console sends, `outputs` = the channel it returns on
   (default: same). Stereo = two channels.
3. Run `check_derive.py` on the base, then `lp_generate.py`.
4. Run `summary.py` on the output and compare it to the input list.
5. Open it in LiveProfessor, check, save.

## Gotchas

- A template chain with plugins can be used once per run. A second use would duplicate
  plugin ids. Duplicate the chain in LiveProfessor first, save, and use the copy.
- The generator removes song snapshots, because each one stores its own routing. Make
  new snapshots in LiveProfessor after you check the file.
- Hardware labels default to the chain name without its channel-number prefix. Override
  them with `labels`.
- Keep each value's type (int vs int64) when you edit with `vt.py`.

Files in this skill

  • README.md2.7 KB
  • SKILL.md3 KB
  • examples/channels.json1.1 KB
  • references/FORMAT.md5.2 KB
  • scripts/check_derive.py2.8 KB
  • scripts/lp_generate.py11.8 KB
  • scripts/summary.py2.2 KB
  • scripts/vt.py4.2 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 tools →

Comments

Loading comments…

Newsletter

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