Skip to content

Add new PTSL commands (PT 2025.06+): Import/Spot/CreateAudioClips/BounceTrack#2

Draft
Shimagon wants to merge 1 commit into
skrul:mainfrom
Shimagon:feat/new-ptsl-commands
Draft

Add new PTSL commands (PT 2025.06+): Import/Spot/CreateAudioClips/BounceTrack#2
Shimagon wants to merge 1 commit into
skrul:mainfrom
Shimagon:feat/new-ptsl-commands

Conversation

@Shimagon
Copy link
Copy Markdown

@Shimagon Shimagon commented May 7, 2026

TL;DR

Adds 4 new PTSL command IDs that became available in Pro Tools 2025.06+ to src/grpc/commands.ts — enum entries plus their permission-group mappings. Nothing else.

What's added

Command ID Group Purpose
ImportAudioToClipList 123 TRACK_STRUCTURE Import WAV/AIFF into the session Clip List without the import dialog
SpotClipsByID 124 TRACK_STRUCTURE Place clips on a track at a given timecode (by clip ID)
CreateAudioClips 127 TRACK_STRUCTURE Create audio clips from audio files (companion to SpotClipsByID)
BounceTrack 134 EXPORT Render a single track to a file (per-track stem export)

The three TRACK_STRUCTURE commands together unlock a programmatic "drop pre-rendered stems onto tracks at known timecodes" workflow, which is the bottleneck for any AI-assisted arrangement tooling on top of PTSL.

BounceTrack is grouped under EXPORT because it writes a new audio file to disk; it should be gated by the same ALLOW_WRITES=export flag as ExportMix / ExportClipsAsFiles.

Scope discipline

This PR is intentionally enum-only. The following are deferred to separate follow-up PRs so each can be reviewed independently:

  • The high-level bounce_track MCP tool wrapper (UX layer — name, args, error messages, ALLOW_WRITES gate test).
  • The streaming event-subscription commands SubscribeToEvents (132), PollEvents (135), UnsubscribeFromEvents (136) — these need streaming RPC plumbing and a subscribe_events / poll_events / unsubscribe_events MCP tool surface, which deserves its own review.
  • The error-payload sanitization work (drop session_id / file paths from surfaced PTSL errors) flagged in Critical: state-mutating commands wrongly classified as READ_ONLY (ALLOW_WRITES bypass) #1 as out-of-scope.

This PR also has zero overlap with #1 (the READ_ONLY_COMMANDS bypass fix); they touch different lines and can be merged in either order.

Verification

  • npm install && npm run build (tsc) passes cleanly on this branch.
  • Permission-group placement was sanity-checked against the existing groupings: ImportAudioToClipList / SpotClipsByID / CreateAudioClips mutate session structure (clip references in the .ptx), so they belong with CreateNewTracks under TRACK_STRUCTURE. BounceTrack writes a file to disk, so it belongs with ExportMix / ExportClipsAsFiles under EXPORT.
  • ID values come from the public PTSL.proto shipped with Pro Tools 2025.06; command_id numbers themselves are not copyrighted.

Marked draft because the maintainer may prefer a different grouping for ImportAudioToClipList (arguments could be made for a new IMPORT group, or for CLIPBOARD) — happy to rename / regroup before merge. Also waiting to confirm the maintainer wants the events-tool work as a separate follow-up vs. bundled.

…ByID, CreateAudioClips, BounceTrack

Adds command IDs for 4 new PTSL operations available in Pro Tools 2025.06+:

- ImportAudioToClipList (123) → TRACK_STRUCTURE: import WAV/AIFF directly
  into the session Clip List without dialog friction.
- SpotClipsByID (124) → TRACK_STRUCTURE: place clips on a track at a
  given timecode, by clip ID.
- CreateAudioClips (127) → TRACK_STRUCTURE: create audio clips from
  audio files (companion to SpotClipsByID for stem-based workflows).
- BounceTrack (134) → EXPORT: render a single track to a file
  (per-track stem export).

Scope is intentionally minimal — only the enum and permission map are
touched. The corresponding high-level MCP tools (e.g. bounce_track) and
the streaming event-subscription commands (SubscribeToEvents,
PollEvents, UnsubscribeFromEvents) will be sent in follow-up PRs so
each can be reviewed independently.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant