Claude Skill

daw-cli

Instructs agents to control Stratawright DAW via the daw-cli command-line IPC interface. Covers session state, transport, track management, gain staging, VST3/AU plugin hosting, signal routing, clips, MIDI timeline editing, and non-visual DSP analysis & audio intelligence. Requir

LLM Mart · 0 points · 8 views 33 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download goldwaterfung-stratawright-skills_daw-cli-7e8ce06.zip · 13 KB

Install

skills CLI npx skills add https://github.com/Goldwaterfung/Stratawright/tree/master/skills/daw-cli
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install goldwaterfung-stratawright@llmmart
Git git clone https://github.com/Goldwaterfung/Stratawright.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole goldwaterfung/stratawright collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Stratawright DAW CLI Control

Overview

daw-cli is the command-line IPC client for Stratawright DAW, allowing AI agents and automation tools to query and mutate session state, manage tracks, perform gain-staging, host VST3/AU/CLAP plugins, configure signal routing & bus topology, execute clip and MIDI timeline edits, and perform non-visual DSP analysis & audio intelligence in real time.

All commands communicate with the running DAW application using a UNIX domain socket.

Binary location (if not installed on system PATH):

  • Quoted path: "./build/release/src/Agentic\ layer/daw-cli" (Release build)
  • Quoted path: "./build/debug/src/Agentic\ layer/daw-cli" (Debug build)
  • Standard executable name (if symlinked / on PATH): daw-cli

References Directory

  • error_codes.md: Detailed IPC error codes, trigger causes, and recovery actions.
  • command_schema.json: Machine-readable JSON schema defining all verbs, subcommands, flags, types, and defaults.

Prerequisites

  1. DAW Application Must Be Running: The GUI/Server application must be active before running daw-cli.
  2. UNIX Socket Path: The server listens on /tmp/daw_session.sock.
  3. Connectivity Check: Always verify connection state first before executing batch commands:
    daw-cli status
    
    If the DAW is not running, daw-cli will fail immediately with exit code 71 (DAW_NOT_RUNNING).

Output Formats & Parsing

By default, queries return TSV (Tab-Separated Values) for list commands and KV (Key-Value) for single-entity or status commands.

Agents can explicitly request machine-parsable formats using the --format flag:

daw-cli track list --format json

Supported formats:

  • --format json: Compact JSON string (Recommended for programmatic parsing).
  • --format tsv: Tab-Separated Values with header line (Default for lists).
  • --format kv: Key: Value line pairs (Default for inspect/status).
  • --format pretty: Human-readable structured block output.

Error Code Reference

When a command fails, daw-cli writes to stderr formatted as: ERROR <code> <SYMBOL> "<message>" and exits with the corresponding code.

Exit Code Symbol Cause Recommended Agent Recovery
0 OK Command completed cleanly Proceed to next step
70 INVALID_ARGS Missing required flag, bad value format, or unknown subcommand Check command syntax, required flags, and numeric value types
71 DAW_NOT_RUNNING Cannot connect to /tmp/daw_session.sock Prompt user to start Stratawright DAW
72 ENTITY_NOT_FOUND Track ID, plugin name, clip, or slot index missing Run track list or plugin list to verify exact identifiers
73 ENGINE_PLAYING_LOCKED Attempted structural edit restricted during playback Stop transport (daw-cli transport stop) before mutating topology
74 RESOURCE_BUSY_USER_TOUCH Destination slot is occupied or user is dragging control Add --overwrite flag for plugin slots or retry after user edit
75 PLUGIN_FAULT VST3/AU parameter out of bounds (0.0..1.0) or host crash Verify normalized parameter ranges
76 ASSET_I_O_ERROR Audio clip path unreadable or invalid file format Check file path existence and audio file permissions

Track Range Syntax

Commands accepting track parameters (--track, --tracks, --to-tracks) support integer ranges and comma-separated lists:

  • Single track: --track 1
  • Contiguous range: --track 1..4 (expands to tracks 1, 2, 3, 4)
  • Multi-range / list: --track 1..4,7..10 (expands to 1, 2, 3, 4, 7, 8, 9, 10)

Command Reference

1. Session State & Transport

Status Query

Returns current playback status, tempo, time signature, and playhead position.

daw-cli status
  • Success Symbol: STATUS_OK
  • Output Fields: TRANSPORT_STATE, TEMPO, TIME_SIGNATURE, POSITION_BARS, POSITION_SECONDS

Start Playback

daw-cli transport play
  • Success Symbol: PLAYBACK_STARTED

Stop Playback

daw-cli transport stop
  • Success Symbol: PLAYBACK_STOPPED

Set Tempo

daw-cli transport set-tempo --bpm 128.0
  • Success Symbol: TEMPO_UPDATED
  • Options: --bpm <float> (or --tempo <float>)

Set Time Signature

daw-cli transport set-time-signature --num 4 --den 4
  • Success Symbol: TIME_SIGNATURE_UPDATED
  • Options: --num <int>, --den <int>

2. Tracks & Gain-Staging

Create Track

daw-cli track create --name "Vocal Lead" --type audio --color yellow
  • Success Symbol: TRACK_CREATED
  • Options:
    • --name "<string>" (Default: "Untitled Track")
    • --type audio|midi|instrument|aux|folder (Default: "audio")
    • --color <red|blue|green|yellow|purple|orange|cyan|pink|white|grey|black|#HEX>

Create Tracks in Batch

daw-cli track create-batch --names "Kick,Snare,HH,Tom" --type audio
  • Success Symbol: BATCH_TRACKS_CREATED
  • Options: --names "<comma_separated_list>", --type audio|midi|instrument|aux|folder

List All Tracks

daw-cli track list [--format json]
  • Success Symbol: TRACK_LIST

Inspect Track Details

daw-cli track inspect --track 1
  • Success Symbol: TRACK_INSPECT

Set Track Gain (dB)

daw-cli track set-gain --track 1..4 --db -3.5
  • Success Symbol: TRACK_GAIN_UPDATED
  • Options: --track <range>, --db <float_in_dB>

Set Track Pan Position

daw-cli track set-pan --track 1 --value -0.25
  • Success Symbol: TRACK_PAN_UPDATED
  • Options: --track <range>, --value <float> (-1.0 Left to +1.0 Right)

Mute / Unmute Track

daw-cli track set-mute --track 2 --on
  • Success Symbol: TRACK_MUTE_UPDATED
  • Options: --track <range>, --on (omit --on to unmute)

Solo / Unsolo Track

daw-cli track set-solo --track 2 --on
  • Success Symbol: TRACK_SOLO_UPDATED
  • Options: --track <range>, --on (omit --on to unsolo)

Delete Tracks

daw-cli track delete --track 4
  • Success Symbol: TRACK_DELETED
  • Options: --track <range>

Set Track Color

daw-cli track set-color --track 1..4 --color red
  • Success Symbol: TRACK_COLOR_UPDATED

Auto-Color Tracks

Assigns semantic color palette based on instrument track names (e.g., Drums -> Red, Bass -> Purple, Vocals -> Yellow).

daw-cli track auto-color
  • Success Symbol: TRACKS_AUTO_COLORED

Sanitize Track Names

Trims whitespace, removes extensions (.wav, .mp3), and converts underscores to spaces across all tracks.

daw-cli track sanitize-names
  • Success Symbol: TRACK_NAMES_SANITIZED

3. Plugin Management

Scan Plugin Library

Triggers host scanner for installed VST3/AU plugins.

daw-cli plugin scan
  • Success Symbol: PLUGIN_SCAN_COMPLETED

List Discovered Plugins

daw-cli plugin list --filter "FabFilter" --category effect --head 10 --format json
  • Success Symbol: PLUGIN_LIST
  • Options:
    • --filter "<substring>": Case-insensitive search on name or vendor.
    • --category effect|instrument (or fx, synth).
    • --head <int> / --tail <int>: Limit output row count.

Add Plugin to Track Slot

daw-cli plugin add --track 1 --name "FabFilter Pro-Q 3" --slot 0
  • Success Symbol: PLUGIN_ADDED
  • Options:
    • --track <range>
    • --name "<exact_name>" (Must match exact case returned by plugin list) or --id <uint32>
    • --slot <0..7> (Default: 0)

Set Plugin Parameter Value

daw-cli plugin set-param --track 1 --plugin 0 --param 3 --val 0.75
  • Success Symbol: PLUGIN_PARAM_UPDATED
  • Options:
    • --track <uint32>
    • --plugin <slot_0..7> (or --slot)
    • --param <param_index>
    • --val <float_0.0_to_1.0> (Normalized range)

Copy Single Plugin to Other Tracks

daw-cli plugin copy --from-track 1 --slot 0 --to-tracks 2..5 --overwrite
  • Success Symbol: PLUGIN_COPIED
  • Options:
    • --from-track <uint32>
    • --slot <0..7>
    • --to-tracks <range>
    • --overwrite: Required if target slots are already occupied.

Copy Entire Plugin Insert Chain

daw-cli plugin copy-chain --from-track 1 --to-tracks 2..5 --overwrite
  • Success Symbol: PLUGIN_CHAIN_COPIED
  • Options:
    • --from-track <uint32>
    • --to-tracks <range>
    • --overwrite: Required if any target slot in 0..7 is occupied.

4. Session Preparation (prep)

Gain-Stage Track Headroom

Adjusts track fader gains to achieve requested target RMS headroom.

daw-cli prep gain-stage --track 1..8 --target-rms -18.0
  • Success Symbol: GAIN_STAGE_COMPLETED
  • Options: --track <range>, --target-rms <float_dB> (Default: -18.0)

5. Clips & Timeline Editing (clip, midi)

Add Audio Clip

daw-cli clip add-audio --track 1 --path "/audio/vocal.wav" --start 1.1.0
  • Success Symbol: CLIP_ADDED
  • Options: --track <uint32>, --path "<string>", --start <BBT>

Add MIDI Clip

daw-cli clip add-midi --track 1 --start 1.1.0 --dur 4.0.0
  • Success Symbol: CLIP_ADDED
  • Options: --track <uint32>, --start <BBT>, --dur <BBT>

Add MIDI Note Event

daw-cli midi add-note --track 1 --clip 1 --pitch C4 --velocity 100 --start 1.1.0 --dur 1.0.0
  • Success Symbol: MIDI_NOTE_ADDED
  • Options: --track <uint32>, --clip <uint32>, --pitch <musical_note, e.g. C4, A5, Db5 or integer 0..127>, --velocity <0..127>, --start <BBT>, --dur <BBT>

List Arrangement Clips

daw-cli clip list --track 1 [--bar 1-8]
  • Success Symbol: CLIP_LIST
  • Options: --track <uint32>, --bar <start_bar-end_bar>

Set Clip Gain (dB)

daw-cli clip set-gain --track 1 --clip 1 --db -3.0
  • Success Symbol: CLIP_GAIN_UPDATED
  • Options: --track <uint32>, --clip <uint32>, --db <float>

Mute / Unmute Clip

daw-cli clip set-mute --track 1 --clip 1 --on true
  • Success Symbol: CLIP_MUTE_UPDATED
  • Options: --track <uint32>, --clip <uint32>, --on <true|false>

Split Clip

daw-cli clip split --track 1 --clip 1 --at 2.1.0
  • Success Symbol: CLIP_SPLIT
  • Options: --track <uint32>, --clip <uint32>, --at <BBT>

Trim Silence

daw-cli clip trim-silence --track 1 --clip 1 --threshold -48.0 --fade-ms 5.0
  • Success Symbol: CLIP_SILENCE_TRIMMED
  • Options: --track <uint32>, --clip <uint32>, --threshold <float_dB>, --fade-ms <float>

Quantize Clip / MIDI

daw-cli clip quantize --track 1 --clip 1 --grid 1/16 --strength 1.0
  • Success Symbol: MIDI_CLIPS_QUANTIZED / CLIPS_QUANTIZED
  • Options: --track <uint32>, --clip <uint32>, --grid <grid_fraction>, --strength <float_0..1>

Merge Clips

daw-cli clip merge --track 1 --start 1.1.0 --end 5.1.0
  • Success Symbol: CLIPS_MERGED
  • Options: --track <uint32>, --start <BBT>, --end <BBT>, --clips "<list>"

Move Clip

daw-cli clip move --track 1 --clip 1 --to-pos 3.1.0 [--to-track 2]
  • Success Symbol: CLIP_MOVED
  • Options: --track <uint32>, --clip <uint32>, --to-pos <BBT>, --to-track <uint32>

Nudge Clip Position

daw-cli clip nudge --track 1 --clip 1 --by +1/16
  • Success Symbol: CLIP_NUDGED
  • Options: --track <uint32>, --clip <uint32>, --by <+|-grid_fraction>

6. Signal Routing & Topology (route)

Route Tracks to Bus / Folder

Routes source track outputs to a destination bus or folder track, updating both audio routing and parent folder hierarchy.

daw-cli route folder --track 1..4 --to 10
  • Success Symbol: ROUTE_FOLDER_UPDATED
  • Options: --track <range>, --to <bus_track_id>

Add Aux Send

Configures a pre-fader or post-fader send from source tracks to a target Aux track with gain level in dB.

daw-cli route send --from 1..4 --to 14 --db -12.0 --tap post
  • Success Symbol: ROUTE_SEND_ADDED
  • Options: --from <range>, --to <aux_track_id>, --db <float_dB> (Default: -12.0), --tap pre|post (Default: post)

Set Up Sidechain Connection

Links a trigger source track as a sidechain input into a target track's plugin or instrument slot.

daw-cli route sidechain --source 1 --to-track 9 --slot 0 --db 0.0
  • Success Symbol: ROUTE_SIDECHAIN_LINKED
  • Options: --source <track_id>, --to-track <track_id>, --slot <0..7> (Default: 0), --db <float_dB> (Default: 0.0)

List Routing Topology

Lists signal routing connections, main outputs, sends, and sidechains across all tracks.

daw-cli route list [--format tsv|kv|json|pretty]
  • Success Symbol: ROUTE_LIST

7. Non-Visual DSP Analysis & Audio Intelligence (analyze)

Domain 6 provides a non-visual DSP analysis and audio intelligence suite across 9 specialized subcommands, supporting both Short Frame (real-time telemetry) and Full Track (offline decoded asset) processing.

Frequency Masking & Collision Detection

Calculates psychoacoustic masking overlap and energy density collisions across 24 critical Bark bands between two tracks using Schroeder spreading functions.

daw-cli analyze masking --track 1 --vs 2 [--format json|tsv|kv|pretty]
  • Success Symbol: ANALYSIS_MASKING
  • Options: --track <uint32>, --vs <uint32>
  • Output Fields: PRIMARY_TRACK, VS_TRACK, OVERALL_MASKING_INDEX (\(C_{A,B} \in [0.0, 1.0]\)), COLLISION_RISK (LOW_MASKING, MODERATE_MASKING, HIGH_MASKING), MASKED_BAND_COUNT, BAND_1_RANGE_HZ, BAND_1_MASK_AMOUNT_DB, BAND_1_RECOMMENDED_ACTION (SIDECHAIN_DUCK_PRIMARY_LOWS, CUT_VS_TRACK_EQ_<freq>HZ), ...

Narrow-Q Resonance Peak Detection

Scans track audio spectrum with a 31-bin moving median spectral envelope filter to isolate harsh narrow-Q resonances, pitch note names, and Q-factor sharpness (\(Q \ge 8.0\)).

daw-cli analyze resonance --track 1 [--format json|tsv|kv|pretty]
  • Success Symbol: ANALYSIS_RESONANCE
  • Options: --track <uint32>
  • Output Fields: TRACK_ID, TOTAL_RESONANCES_FOUND, RESONANCE_1_FREQ_HZ, RESONANCE_1_NOTE (e.g. E4, A5), RESONANCE_1_PROMINENCE_DB, RESONANCE_1_Q_FACTOR, RESONANCE_1_SEVERITY (HIGH_SEVERITY_SURGICAL_CUT, MODERATE), RESONANCE_1_REC_NOTCH_DB

Multi-Track Pearson Phase Correlation Matrix

Computes an \(N \times N\) pairwise Pearson correlation matrix (\(r_{i,j}\)) across a list or range of tracks to flag phase cancellation risks and identify destructive anti-phase pairs.

daw-cli analyze phase-matrix --track 1..4 [--format json|tsv|kv|pretty]
  • Success Symbol: ANALYSIS_PHASE_MATRIX
  • Options: --track <range|list> (e.g. 1..4, 1,2,3,4)
  • Output Fields: TRACKS_ANALYZED, GLOBAL_GROUP_HEALTH (HEALTHY_MONO_COMPATIBLE, WARNING_SEVERE_CANCELLATION), WORST_PAIR_1, WORST_CORRELATION_1, REC_ACTION_1 (FLIP_POLARITY_TRACK_<id>, NUDGE_DELAY_TRACK_<id>), CORRELATION_MATRIX_FLAT

Cross-Correlation Phase Alignment

Calculates cross-correlation lag across \([-128, +128]\) sample offsets to recommend sample-accurate and millisecond time shifts (\(\Delta t_{\text{ms}} = \frac{\text{offset}}{f_s} \times 1000\)).

daw-cli analyze phase-align --track 1 --vs 2 [--format json|tsv|kv|pretty]
  • Success Symbol: ANALYSIS_PHASE_ALIGN
  • Options: --track <uint32>, --vs <uint32>
  • Output Fields: PRIMARY_TRACK, VS_TRACK, RECOMMENDED_SAMPLE_OFFSET, RECOMMENDED_TIME_OFFSET_MS, CURRENT_CORRELATION, IMPROVED_CORRELATION, RECOMMENDED_ACTION (e.g. NUDGE_REGION_TRACK_2_BY_-48_SAMPLES)

Window Offline Telemetry

Performs offline telemetry analysis over a specified timeline range for momentary/short-term EBU R128 BS.1770 LUFS, true-peak dBTP, crest factor, and safety gain trim.

daw-cli analyze window --track 1 --start 1.1.0 --dur 4.0.0 [--format json|tsv|kv|pretty]
  • Success Symbol: ANALYSIS_WINDOW_STREAM
  • Options: --track <uint32>, --start <BBT>, --dur <BBT>
  • Output Fields: TRACK_ID, START_POS, DUR_POS, MOMENTARY_LUFS, SHORT_TERM_LUFS, SAMPLE_PEAK_DBFS, TRUE_PEAK_DBTP, IS_CLIPPING, CLIPPING_EVENTS_COUNT, CREST_FACTOR_DB, SPECTRAL_CENTROID_HZ, STEREO_CORRELATION, SAFETY_STATUS (SAFE_NORMAL, VIOLATION_DANGER_REDUCE_GAIN), REC_GAIN_TRIM_DB

7-Band Spectral Energy Balance

Evaluates acoustic energy distribution across 7 standardized bands (Sub: 20-60Hz, Bass: 60-250Hz, Low-Mid: 250-500Hz, Mid: 500-2kHz, High-Mid: 2-4kHz, Highs: 4-8kHz, Air: 8-20kHz) alongside spectral centroid, 85% energy rolloff frequency, and spectral tilt (dB/octave).

daw-cli analyze spectrum --track 1 [--format json|tsv|kv|pretty]
  • Success Symbol: ANALYSIS_SPECTRUM
  • Options: --track <uint32>
  • Output Fields: TRACK_ID, SPECTRAL_CENTROID_HZ, SPECTRAL_TILT_DB_OCT, SPECTRAL_ROLLOFF_HZ, SUB_BAND_DBFS, BASS_BAND_DBFS, LOW_MID_BAND_DBFS, MID_BAND_DBFS, HIGH_MID_BAND_DBFS, HIGHS_BAND_DBFS, AIR_BAND_DBFS

EBU R128 Loudness Audit (Full Track / Real-Time)

Performs ITU-R BS.1770-4 / EBU R128 integrated loudness, loudness range (LRA), short-term/momentary peak LUFS, sample peak, and crest factor.

daw-cli analyze loudness --track 1 [--format json|tsv|kv|pretty]
  • Success Symbol: ANALYSIS_LOUDNESS
  • Options: --track <uint32>
  • Output Fields: TRACK_ID, INTEGRATED_LUFS, SHORT_TERM_MAX_LUFS, MOMENTARY_MAX_LUFS, LRA_LU, CREST_FACTOR_DB, SAMPLE_PEAK_DBFS, TRUE_PEAK_DBTP

True-Peak Inter-Sample Clipping Audit

Performs 4x oversampled true-peak analysis to detect inter-sample clipping events and safety margin status (\(0.0\text{ dBTP}\) threshold).

daw-cli analyze true-peak --track 1 [--format json|tsv|kv|pretty]
  • Success Symbol: ANALYSIS_TRUE_PEAK
  • Options: --track <uint32>
  • Output Fields: TRACK_ID, MAX_TRUE_PEAK_DBTP, TOTAL_CLIPPING_EVENTS, SAFETY_STATUS (SAFE_NORMAL, VIOLATION_DANGER)

Mid/Side Stereo Width Audit

Measures Mid RMS (\(0.5(L+R)\)), Side RMS (\(0.5(L-R)\)), Mid-to-Side ratio in dB, stereo width percentage, and mono fold-down cancellation loss in dB.

daw-cli analyze stereo-width --track 1 [--format json|tsv|kv|pretty]
  • Success Symbol: ANALYSIS_STEREO_WIDTH
  • Options: --track <uint32>
  • Output Fields: TRACK_ID, MID_RMS_DBFS, SIDE_RMS_DBFS, MS_RATIO_DB, STEREO_WIDTH_PCT, MONO_FOLD_LOSS_DB

Common Workflows

Workflow A: Setting Up a 4-Track Drum Session

# 1. Verify DAW application connection
daw-cli status

# 2. Batch-create drum tracks
daw-cli track create-batch --names "Kick,Snare,HiHat,Tom" --type audio

# 3. Clean up track names and apply instrument colors
daw-cli track sanitize-names
daw-cli track auto-color

# 4. Gain stage all drum tracks to -18 dB RMS headroom
daw-cli prep gain-stage --track 1..4 --target-rms -18.0

Workflow B: Applying and Distributing an EQ Plugin Chain

# 1. Search for available EQ plugins
daw-cli plugin list --filter "EQ" --category effect --format json

# 2. Add EQ plugin to slot 0 of Vocal Lead (Track 1)
daw-cli plugin add --track 1 --name "FabFilter Pro-Q 3" --slot 0

# 3. Copy EQ plugin from Track 1 slot 0 to Backing Vocals (Tracks 2..5)
daw-cli plugin copy --from-track 1 --slot 0 --to-tracks 2..5 --overwrite

Workflow C: Submix Bus & Sidechain Setup

# 1. Route drum tracks 1..4 into Drums Bus (Track 10)
daw-cli route folder --track 1..4 --to 10

# 2. Add post-fader send from Snare (Track 2) to Reverb Aux (Track 14) at -12 dB
daw-cli route send --from 2 --to 14 --db -12.0 --tap post

# 3. Link Kick (Track 1) as sidechain trigger to Synth Bass (Track 9) slot 0
daw-cli route sidechain --source 1 --to-track 9 --slot 0 --db 0.0

# 4. Inspect session routing topology
daw-cli route list --format tsv

Workflow D: Acoustic Guitar & Vocal Masking Audit and Resonant Notch Fix

# 1. Analyze frequency masking between Vocal (Track 1) and Acoustic Guitar (Track 2)
daw-cli analyze masking --track 1 --vs 2

# 2. Detect harsh resonant peaks and Q-factors on Acoustic Guitar
daw-cli analyze resonance --track 2

# 3. Evaluate multi-mic phase alignment between Top Snare (Track 3) and Bottom Snare (Track 4)
daw-cli analyze phase-align --track 3 --vs 4

# 4. Perform offline windowed LUFS & True-Peak telemetry on Master Output (Track 10)
daw-cli analyze window --track 10 --start 1.1.0 --dur 4.0.0

Common Mistakes

  1. Plugin Name Case Sensitivity: daw-cli plugin add --name requires an exact case-sensitive match. plugin add --name "fabfilter pro-q 3" will fail with 72 ENTITY_NOT_FOUND. Always run plugin list --filter "FabFilter" first to copy the exact name string.

  2. Forgetting --overwrite on Occupied Plugin Slots: Copying plugins (plugin copy or plugin copy-chain) to tracks with existing plugins in target slots without --overwrite will fail with error 74 RESOURCE_BUSY_USER_TOUCH.

  3. Not Checking status Before Issuing Commands: Attempting to execute commands when Stratawright is closed returns error 71 DAW_NOT_RUNNING. Always run daw-cli status first to confirm connectivity.

  4. Missing Comparison Target for Pairwise Analysis: Commands like daw-cli analyze masking and daw-cli analyze phase-align require --vs <target_track_id>. Omitting --vs returns error 70 INVALID_ARGS.

Files (stratawright)
  • references
    • command_schema.json 20.4 KB
      {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "title": "Stratawright DAW CLI Command Schema",
        "description": "Machine-readable definition of all verbs, subcommands, flags, option types, and output symbols in daw-cli.",
        "socketPath": "/tmp/daw_session.sock",
        "outputFormats": ["tsv", "kv", "json", "pretty"],
        "verbs": {
          "status": {
            "description": "Queries current transport state, tempo, time signature, and playhead position.",
            "subcommands": {},
            "options": {
              "--format": { "type": "string", "enum": ["tsv", "kv", "json", "pretty"], "default": "kv" }
            },
            "successSymbol": "STATUS_OK"
          },
          "transport": {
            "description": "Controls audio playback and timeline settings.",
            "subcommands": {
              "play": {
                "description": "Starts transport audio playback.",
                "options": {},
                "successSymbol": "PLAYBACK_STARTED"
              },
              "stop": {
                "description": "Stops transport audio playback.",
                "options": {},
                "successSymbol": "PLAYBACK_STOPPED"
              },
              "set-tempo": {
                "description": "Sets session tempo in BPM.",
                "options": {
                  "--bpm": { "type": "number", "required": true, "alias": ["--tempo"], "description": "Tempo value in BPM (e.g., 120.0)" }
                },
                "successSymbol": "TEMPO_UPDATED"
              },
              "set-time-signature": {
                "description": "Sets time signature numerator and denominator.",
                "options": {
                  "--num": { "type": "integer", "default": 4, "description": "Time signature numerator (1..32)" },
                  "--den": { "type": "integer", "default": 4, "description": "Time signature denominator (2, 4, 8, 16, 32)" }
                },
                "successSymbol": "TIME_SIGNATURE_UPDATED"
              }
            }
          },
          "track": {
            "description": "Manages track layout, channels, gain, pan, mute, solo, and coloring.",
            "subcommands": {
              "create": {
                "description": "Creates a new track.",
                "options": {
                  "--name": { "type": "string", "default": "Untitled Track" },
                  "--type": { "type": "string", "enum": ["audio", "midi", "instrument", "aux", "folder"], "default": "audio" },
                  "--color": { "type": "string", "default": "blue", "description": "Color name or #HEX string" }
                },
                "successSymbol": "TRACK_CREATED"
              },
              "create-batch": {
                "description": "Creates multiple tracks in batch.",
                "options": {
                  "--names": { "type": "string", "required": true, "description": "Comma-separated list of track names" },
                  "--type": { "type": "string", "enum": ["audio", "midi", "instrument", "aux", "folder"], "default": "audio" }
                },
                "successSymbol": "BATCH_TRACKS_CREATED"
              },
              "list": {
                "description": "Lists all tracks in the session.",
                "options": {
                  "--format": { "type": "string", "enum": ["tsv", "kv", "json", "pretty"], "default": "tsv" }
                },
                "successSymbol": "TRACK_LIST"
              },
              "inspect": {
                "description": "Inspects detailed parameters for a track.",
                "options": {
                  "--track": { "type": "integer", "default": 1, "description": "Track ID" }
                },
                "successSymbol": "TRACK_INSPECT"
              },
              "set-gain": {
                "description": "Sets volume gain in dB.",
                "options": {
                  "--track": { "type": "string", "default": "1", "description": "Track ID or range (e.g. 1..4)" },
                  "--db": { "type": "number", "required": true, "description": "Fader gain level in dB" }
                },
                "successSymbol": "TRACK_GAIN_UPDATED"
              },
              "set-pan": {
                "description": "Sets track pan position.",
                "options": {
                  "--track": { "type": "string", "default": "1", "description": "Track ID or range" },
                  "--value": { "type": "number", "required": true, "description": "Pan position (-1.0 Left to +1.0 Right)" }
                },
                "successSymbol": "TRACK_PAN_UPDATED"
              },
              "set-mute": {
                "description": "Mutes or unmutes tracks.",
                "options": {
                  "--track": { "type": "string", "default": "1" },
                  "--on": { "type": "boolean", "default": false, "description": "Pass flag to mute, omit to unmute" }
                },
                "successSymbol": "TRACK_MUTE_UPDATED"
              },
              "set-solo": {
                "description": "Solos or unsolos tracks.",
                "options": {
                  "--track": { "type": "string", "default": "1" },
                  "--on": { "type": "boolean", "default": false, "description": "Pass flag to solo, omit to unsolo" }
                },
                "successSymbol": "TRACK_SOLO_UPDATED"
              },
              "delete": {
                "description": "Deletes track(s) from session.",
                "options": {
                  "--track": { "type": "string", "required": true, "description": "Track ID or range to delete" }
                },
                "successSymbol": "TRACK_DELETED"
              },
              "set-color": {
                "description": "Sets track color.",
                "options": {
                  "--track": { "type": "string", "default": "1" },
                  "--color": { "type": "string", "required": true, "description": "Semantic color name or #HEX" }
                },
                "successSymbol": "TRACK_COLOR_UPDATED"
              },
              "auto-color": {
                "description": "Automatically colors tracks based on instrument family keywords.",
                "options": {},
                "successSymbol": "TRACKS_AUTO_COLORED"
              },
              "sanitize-names": {
                "description": "Cleans track names by removing file extension artifacts and underscores.",
                "options": {},
                "successSymbol": "TRACK_NAMES_SANITIZED"
              }
            }
          },
          "prep": {
            "description": "Session preparation utilities.",
            "subcommands": {
              "gain-stage": {
                "description": "Normalizes track gain to target RMS headroom in dB.",
                "options": {
                  "--track": { "type": "string", "default": "1..8" },
                  "--target-rms": { "type": "number", "default": -18.0 }
                },
                "successSymbol": "GAIN_STAGE_COMPLETED"
              }
            }
          },
          "plugin": {
            "description": "Hosts and manipulates VST3/AU/CLAP plugins.",
            "subcommands": {
              "scan": {
                "description": "Scans host system for installed audio plugins.",
                "options": {},
                "successSymbol": "PLUGIN_SCAN_COMPLETED"
              },
              "list": {
                "description": "Lists discovered plugins.",
                "options": {
                  "--filter": { "type": "string", "description": "Substring filter on name or vendor" },
                  "--category": { "type": "string", "enum": ["effect", "fx", "instrument", "synth"] },
                  "--head": { "type": "integer", "description": "Limit output to first N results" },
                  "--tail": { "type": "integer", "description": "Limit output to last N results" },
                  "--format": { "type": "string", "enum": ["tsv", "kv", "json", "pretty"], "default": "tsv" }
                },
                "successSymbol": "PLUGIN_LIST"
              },
              "add": {
                "description": "Inserts a plugin into a track slot.",
                "options": {
                  "--track": { "type": "string", "default": "1" },
                  "--name": { "type": "string", "description": "Exact case-sensitive plugin name" },
                  "--id": { "type": "integer", "description": "Numeric plugin ID" },
                  "--slot": { "type": "integer", "default": 0, "description": "Insert slot index (0..7)" }
                },
                "successSymbol": "PLUGIN_ADDED"
              },
              "set-param": {
                "description": "Sets a normalized parameter value on an inserted plugin.",
                "options": {
                  "--track": { "type": "integer", "required": true },
                  "--plugin": { "type": "integer", "default": 0, "alias": ["--slot"], "description": "Slot index (0..7)" },
                  "--param": { "type": "integer", "required": true, "description": "Parameter index" },
                  "--val": { "type": "number", "required": true, "description": "Normalized float value (0.0..1.0)" }
                },
                "successSymbol": "PLUGIN_PARAM_UPDATED"
              },
              "copy": {
                "description": "Copies a single plugin slot from one track to other tracks.",
                "options": {
                  "--from-track": { "type": "integer", "default": 1 },
                  "--slot": { "type": "integer", "default": 0 },
                  "--to-tracks": { "type": "string", "required": true, "description": "Target track range" },
                  "--overwrite": { "type": "boolean", "default": false, "description": "Overwrite target slots if occupied" }
                },
                "successSymbol": "PLUGIN_COPIED"
              },
              "copy-chain": {
                "description": "Copies all 8 insert plugin slots from source track to destination tracks.",
                "options": {
                  "--from-track": { "type": "integer", "default": 1 },
                  "--to-tracks": { "type": "string", "required": true },
                  "--overwrite": { "type": "boolean", "default": false }
                },
                "successSymbol": "PLUGIN_CHAIN_COPIED"
              }
            }
          },
          "clip": {
            "description": "Manages arrangement timeline clips, trimming, gain, mute, split, and quantization.",
            "subcommands": {
              "add-audio": {
                "description": "Imports an audio clip onto a track timeline.",
                "options": {
                  "--track": { "type": "integer", "required": true, "description": "Target track ID" },
                  "--path": { "type": "string", "required": true, "description": "Absolute filesystem path to audio file" },
                  "--start": { "type": "string", "required": true, "description": "BBT position (e.g. 1.1.0)" }
                },
                "successSymbol": "CLIP_ADDED"
              },
              "add-midi": {
                "description": "Inserts a new MIDI clip region on a track.",
                "options": {
                  "--track": { "type": "integer", "required": true, "description": "Target track ID" },
                  "--start": { "type": "string", "required": true, "description": "BBT start position (e.g. 1.1.0)" },
                  "--dur": { "type": "string", "required": true, "description": "BBT duration string (e.g. 4.0.0)" }
                },
                "successSymbol": "CLIP_ADDED"
              },
              "list": {
                "description": "Lists arrangement clips.",
                "options": {
                  "--track": { "type": "integer", "required": true, "description": "Track ID" },
                  "--bar": { "type": "string", "description": "Bar range filter (e.g. 1-8)" }
                },
                "successSymbol": "CLIP_LIST"
              },
              "set-gain": {
                "description": "Sets region gain in dB.",
                "options": {
                  "--track": { "type": "integer", "required": true },
                  "--clip": { "type": "integer", "required": true },
                  "--db": { "type": "number", "required": true }
                },
                "successSymbol": "CLIP_GAIN_UPDATED"
              },
              "set-mute": {
                "description": "Mutes or unmutes a clip.",
                "options": {
                  "--track": { "type": "integer", "required": true },
                  "--clip": { "type": "integer", "required": true },
                  "--on": { "type": "boolean", "required": true }
                },
                "successSymbol": "CLIP_MUTE_UPDATED"
              },
              "split": {
                "description": "Splits a clip into two regions at position.",
                "options": {
                  "--track": { "type": "integer", "required": true },
                  "--clip": { "type": "integer", "required": true },
                  "--at": { "type": "string", "required": true }
                },
                "successSymbol": "CLIP_SPLIT"
              },
              "trim-silence": {
                "description": "Trims lead and tail silence on a clip.",
                "options": {
                  "--track": { "type": "integer", "required": true },
                  "--clip": { "type": "integer", "required": true },
                  "--threshold": { "type": "number", "required": true, "description": "Silence threshold in dB (e.g. -48.0)" },
                  "--fade-ms": { "type": "number", "required": true, "description": "Micro-fade duration in ms (e.g. 5.0)" }
                },
                "successSymbol": "CLIP_SILENCE_TRIMMED"
              },
              "quantize": {
                "description": "Quantizes notes or clip start positions to grid.",
                "options": {
                  "--track": { "type": "integer", "required": true },
                  "--clip": { "type": "integer", "description": "Clip ID (0 for all)" },
                  "--grid": { "type": "string", "required": true, "description": "Grid division (1/1, 1/4, 1/16, 1/8T)" },
                  "--strength": { "type": "number", "required": true, "description": "Quantize strength (0.0..1.0)" }
                },
                "successSymbol": "CLIPS_QUANTIZED"
              },
              "merge": {
                "description": "Merges pattern clips.",
                "options": {
                  "--track": { "type": "integer", "required": true },
                  "--start": { "type": "string", "description": "BBT start position" },
                  "--end": { "type": "string", "description": "BBT end position" },
                  "--clips": { "type": "string", "description": "Comma-separated clip ID list" }
                },
                "successSymbol": "CLIPS_MERGED"
              },
              "move": {
                "description": "Relocates a clip to a target position.",
                "options": {
                  "--track": { "type": "integer", "required": true },
                  "--clip": { "type": "integer", "required": true },
                  "--to-pos": { "type": "string", "required": true },
                  "--to-track": { "type": "integer", "description": "Target track ID" }
                },
                "successSymbol": "CLIP_MOVED"
              },
              "nudge": {
                "description": "Nudges clip position by grid fraction.",
                "options": {
                  "--track": { "type": "integer", "required": true },
                  "--clip": { "type": "integer", "required": true },
                  "--by": { "type": "string", "required": true, "description": "Grid offset (e.g. +1/16, -1/8)" }
                },
                "successSymbol": "CLIP_NUDGED"
              }
            }
          },
          "midi": {
            "description": "MIDI editor note manipulation commands.",
            "subcommands": {
              "add-note": {
                "description": "Adds a MIDI note event to a clip.",
                "options": {
                  "--track": { "type": "integer", "required": true },
                  "--clip": { "type": "integer", "description": "Clip ID" },
                  "--pitch": { "type": "string", "required": true, "description": "Musical note pitch (e.g. C4, A5, Db5, F#-1, G9 or integer 0..127)" },
                  "--velocity": { "type": "integer", "required": true, "description": "MIDI velocity (0..127)" },
                  "--start": { "type": "string", "required": true, "description": "BBT start position" },
                  "--dur": { "type": "string", "required": true, "description": "BBT duration string" }
                },
                "successSymbol": "MIDI_NOTE_ADDED"
              }
            }
          },
          "route": {
            "description": "Manages signal routing, submix folders, aux sends, and sidechain connections.",
            "subcommands": {
              "folder": {
                "description": "Routes source track outputs to a destination folder/bus track.",
                "options": {
                  "--track": { "type": "string", "required": true, "description": "Source track ID or range (e.g. 1..4)" },
                  "--to": { "type": "string", "required": true, "description": "Destination folder/bus track ID" }
                },
                "successSymbol": "ROUTE_FOLDER_UPDATED"
              },
              "send": {
                "description": "Configures a pre/post-fader send from source tracks to a target Aux track.",
                "options": {
                  "--from": { "type": "string", "required": true, "description": "Source track ID or range" },
                  "--to": { "type": "string", "required": true, "description": "Target Aux track ID" },
                  "--db": { "type": "number", "default": -12.0, "description": "Send level gain in dB" },
                  "--tap": { "type": "string", "enum": ["pre", "post"], "default": "post", "description": "Send tap point position" }
                },
                "successSymbol": "ROUTE_SEND_ADDED"
              },
              "sidechain": {
                "description": "Links a trigger source track as sidechain input to a target plugin or instrument.",
                "options": {
                  "--source": { "type": "string", "required": true, "description": "Trigger source track ID or range" },
                  "--to-track": { "type": "string", "required": true, "description": "Target track ID" },
                  "--slot": { "type": "integer", "default": 0, "description": "Target plugin slot index (0..7)" },
                  "--db": { "type": "number", "default": 0.0, "description": "Sidechain gain in dB" }
                },
                "successSymbol": "ROUTE_SIDECHAIN_LINKED"
              },
              "list": {
                "description": "Lists signal routing topology across all tracks.",
                "options": {
                  "--format": { "type": "string", "enum": ["tsv", "kv", "json", "pretty"], "default": "tsv" }
                },
                "successSymbol": "ROUTE_LIST"
              }
            }
          },
          "analyze": {
            "description": "Non-visual DSP analysis and audio intelligence.",
            "subcommands": {
              "masking": {
                "description": "Calculates psychoacoustic frequency masking and collision index across 24 Bark bands.",
                "options": {
                  "--track": { "type": "integer", "required": true, "description": "Primary track ID" },
                  "--vs": { "type": "integer", "required": true, "description": "Comparison target track ID" }
                },
                "successSymbol": "ANALYSIS_MASKING"
              },
              "resonance": {
                "description": "Detects harsh narrow-Q spectral resonances and Q-factors using moving median filtering.",
                "options": {
                  "--track": { "type": "integer", "required": true, "description": "Track ID" }
                },
                "successSymbol": "ANALYSIS_RESONANCE"
              },
              "phase-matrix": {
                "description": "Computes N x N pairwise Pearson phase correlation matrix across tracks.",
                "options": {
                  "--track": { "type": "string", "required": true, "description": "Track range or list (e.g. 1..4, 1,2,3)" }
                },
                "successSymbol": "ANALYSIS_PHASE_MATRIX"
              },
              "phase-align": {
                "description": "Calculates cross-correlation lag and recommends sample-accurate alignment offsets.",
                "options": {
                  "--track": { "type": "integer", "required": true, "description": "Primary reference track ID" },
                  "--vs": { "type": "integer", "required": true, "description": "Target track ID to align" }
                },
                "successSymbol": "ANALYSIS_PHASE_ALIGN"
              },
              "window": {
                "description": "Performs offline telemetry analysis over a specified timeline range.",
                "options": {
                  "--track": { "type": "integer", "required": true, "description": "Track ID" },
                  "--start": { "type": "string", "required": true, "description": "BBT start position" },
                  "--dur": { "type": "string", "required": true, "description": "BBT duration string" }
                },
                "successSymbol": "ANALYSIS_WINDOW_STREAM"
              },
              "spectrum": {
                "description": "Evaluates 7-band spectral energy balance, centroid, and spectral tilt.",
                "options": {
                  "--track": { "type": "integer", "required": true, "description": "Track ID" }
                },
                "successSymbol": "ANALYSIS_SPECTRUM"
              },
              "loudness": {
                "description": "Performs EBU R128 integrated loudness, momentary/short-term peak LUFS, and LRA audit.",
                "options": {
                  "--track": { "type": "integer", "required": true, "description": "Track ID" }
                },
                "successSymbol": "ANALYSIS_LOUDNESS"
              },
              "true-peak": {
                "description": "Audits 4x oversampled true-peak dBTP and inter-sample clipping events.",
                "options": {
                  "--track": { "type": "integer", "required": true, "description": "Track ID" }
                },
                "successSymbol": "ANALYSIS_TRUE_PEAK"
              },
              "stereo-width": {
                "description": "Evaluates Mid/Side RMS balance, stereo width percentage, and mono-fold loss.",
                "options": {
                  "--track": { "type": "integer", "required": true, "description": "Track ID" }
                },
                "successSymbol": "ANALYSIS_STEREO_WIDTH"
              }
            }
          }
        }
      }
      
    • error_codes.md 3 KB
      # Stratawright DAW IPC Protocol Error Code Reference
      
      Extracted from `src/Agentic layer/common/ipc_protocol.h` and `src/Agentic layer/client/main_client.cpp`.
      
      ## Socket Details
      - **Default Socket Path**: `/tmp/daw_session.sock`
      - **Output Format on Error**: `ERROR <code> <SYMBOL> "<message>"`
      
      ## Error Registry
      
      ### Error 0: `OK`
      - **Description**: Command executed cleanly without errors.
      - **Client Action**: Proceed to next step in workflow.
      
      ### Error 70: `INVALID_ARGS`
      - **Description**: Command line grammar error, missing required flag, unknown verb/subcommand, or invalid number format.
      - **Common Trigger**: Omitting required flags (e.g. `--val` without argument or `--name` missing), passing non-numeric text to numeric float flags, or out-of-range slot indices (`> 7`).
      - **Client Action**: Inspect command grammar and required options against `references/command_schema.json`.
      
      ### Error 71: `DAW_NOT_RUNNING`
      - **Description**: IPC socket connection to `/tmp/daw_session.sock` failed. The Stratawright DAW main process is not active or server daemon failed to bind socket.
      - **Common Trigger**: Launching `daw-cli` when Stratawright is closed.
      - **Client Action**: Inform user to launch Stratawright GUI application before proceeding.
      
      ### Error 72: `ENTITY_NOT_FOUND`
      - **Description**: Target entity (Track ID, Plugin Name/ID, Clip, or Marker) does not exist in the session.
      - **Common Trigger**: Using mismatched plugin name string in `plugin add --name` (requires exact case match) or target track ID out of bounds.
      - **Client Action**: Execute `track list` or `plugin list` to verify exact identifiers.
      
      ### Error 73: `ENGINE_PLAYING_LOCKED`
      - **Description**: Real-time audio engine transport is currently active (`PLAYING`), locking structural DAW session topology mutations.
      - **Common Trigger**: Attempting graph dynamic updates or heavy track structural deletions during playback.
      - **Client Action**: Call `daw-cli transport stop` first before applying session graph changes.
      
      ### Error 74: `RESOURCE_BUSY_USER_TOUCH`
      - **Description**: Resource is occupied or locked by active user interaction in GUI (e.g., parameter slider drag) or target plugin slot already contains an inserted plugin.
      - **Common Trigger**: Running `plugin copy` or `plugin copy-chain` to target tracks with occupied slots without passing `--overwrite`.
      - **Client Action**: Pass `--overwrite` flag to replace existing plugins, or wait for user drag to finish.
      
      ### Error 75: `PLUGIN_FAULT`
      - **Description**: VST3/AU/CLAP plugin host error, or parameter value outside normalized bounds `[0.0, 1.0]`.
      - **Common Trigger**: Passing `--val` values `< 0.0` or `> 1.0` in `plugin set-param`.
      - **Client Action**: Clamp parameter values to `[0.0, 1.0]` before calling `plugin set-param`.
      
      ### Error 76: `ASSET_I_O_ERROR`
      - **Description**: Audio clip asset file unreadable, unmapped, or corrupt format on disk.
      - **Common Trigger**: Referencing missing `.wav` file path on filesystem.
      - **Client Action**: Verify local filesystem path validity and read permissions.
      
  • SKILL.md 21.9 KB
    ---
    name: daw-cli
    description: >-
      Instructs agents to control Stratawright DAW via the daw-cli command-line
      IPC interface. Covers session state, transport, track management, gain
      staging, VST3/AU plugin hosting, signal routing, clips, MIDI timeline editing, and non-visual DSP analysis & audio intelligence. Requires the DAW application to be running.
    ---
    
    # Stratawright DAW CLI Control
    
    ## Overview
    
    `daw-cli` is the command-line IPC client for **Stratawright DAW**, allowing AI agents and automation tools to query and mutate session state, manage tracks, perform gain-staging, host VST3/AU/CLAP plugins, configure signal routing & bus topology, execute clip and MIDI timeline edits, and perform non-visual DSP analysis & audio intelligence in real time.
    
    All commands communicate with the running DAW application using a UNIX domain socket.
    
    Binary location (if not installed on system PATH):
    - Quoted path: `"./build/release/src/Agentic\ layer/daw-cli"` (Release build)
    - Quoted path: `"./build/debug/src/Agentic\ layer/daw-cli"` (Debug build)
    - Standard executable name (if symlinked / on PATH): `daw-cli`
    
    ## References Directory
    - [error_codes.md](file:///Users/goldenfung/Documents/agent-based-daw/skills/daw-cli/references/error_codes.md): Detailed IPC error codes, trigger causes, and recovery actions.
    - [command_schema.json](file:///Users/goldenfung/Documents/agent-based-daw/skills/daw-cli/references/command_schema.json): Machine-readable JSON schema defining all verbs, subcommands, flags, types, and defaults.
    
    ---
    
    ## Prerequisites
    
    1. **DAW Application Must Be Running**: The GUI/Server application must be active before running `daw-cli`.
    2. **UNIX Socket Path**: The server listens on `/tmp/daw_session.sock`.
    3. **Connectivity Check**: Always verify connection state first before executing batch commands:
       ```bash
       daw-cli status
       ```
       If the DAW is not running, `daw-cli` will fail immediately with exit code `71` (`DAW_NOT_RUNNING`).
    
    ---
    
    ## Output Formats & Parsing
    
    By default, queries return `TSV` (Tab-Separated Values) for list commands and `KV` (Key-Value) for single-entity or status commands.
    
    Agents can explicitly request machine-parsable formats using the `--format` flag:
    
    ```bash
    daw-cli track list --format json
    ```
    
    Supported formats:
    - `--format json`: Compact JSON string (Recommended for programmatic parsing).
    - `--format tsv`: Tab-Separated Values with header line (Default for lists).
    - `--format kv`: `Key: Value` line pairs (Default for inspect/status).
    - `--format pretty`: Human-readable structured block output.
    
    ---
    
    ## Error Code Reference
    
    When a command fails, `daw-cli` writes to `stderr` formatted as: `ERROR <code> <SYMBOL> "<message>"` and exits with the corresponding code.
    
    | Exit Code | Symbol | Cause | Recommended Agent Recovery |
    | :--- | :--- | :--- | :--- |
    | `0` | `OK` | Command completed cleanly | Proceed to next step |
    | `70` | `INVALID_ARGS` | Missing required flag, bad value format, or unknown subcommand | Check command syntax, required flags, and numeric value types |
    | `71` | `DAW_NOT_RUNNING` | Cannot connect to `/tmp/daw_session.sock` | Prompt user to start Stratawright DAW |
    | `72` | `ENTITY_NOT_FOUND` | Track ID, plugin name, clip, or slot index missing | Run `track list` or `plugin list` to verify exact identifiers |
    | `73` | `ENGINE_PLAYING_LOCKED` | Attempted structural edit restricted during playback | Stop transport (`daw-cli transport stop`) before mutating topology |
    | `74` | `RESOURCE_BUSY_USER_TOUCH` | Destination slot is occupied or user is dragging control | Add `--overwrite` flag for plugin slots or retry after user edit |
    | `75` | `PLUGIN_FAULT` | VST3/AU parameter out of bounds (`0.0`..`1.0`) or host crash | Verify normalized parameter ranges |
    | `76` | `ASSET_I_O_ERROR` | Audio clip path unreadable or invalid file format | Check file path existence and audio file permissions |
    
    ---
    
    ## Track Range Syntax
    
    Commands accepting track parameters (`--track`, `--tracks`, `--to-tracks`) support integer ranges and comma-separated lists:
    
    - Single track: `--track 1`
    - Contiguous range: `--track 1..4` (expands to tracks 1, 2, 3, 4)
    - Multi-range / list: `--track 1..4,7..10` (expands to 1, 2, 3, 4, 7, 8, 9, 10)
    
    ---
    
    ## Command Reference
    
    ### 1. Session State & Transport
    
    #### Status Query
    Returns current playback status, tempo, time signature, and playhead position.
    ```bash
    daw-cli status
    ```
    - **Success Symbol**: `STATUS_OK`
    - **Output Fields**: `TRANSPORT_STATE`, `TEMPO`, `TIME_SIGNATURE`, `POSITION_BARS`, `POSITION_SECONDS`
    
    #### Start Playback
    ```bash
    daw-cli transport play
    ```
    - **Success Symbol**: `PLAYBACK_STARTED`
    
    #### Stop Playback
    ```bash
    daw-cli transport stop
    ```
    - **Success Symbol**: `PLAYBACK_STOPPED`
    
    #### Set Tempo
    ```bash
    daw-cli transport set-tempo --bpm 128.0
    ```
    - **Success Symbol**: `TEMPO_UPDATED`
    - **Options**: `--bpm <float>` (or `--tempo <float>`)
    
    #### Set Time Signature
    ```bash
    daw-cli transport set-time-signature --num 4 --den 4
    ```
    - **Success Symbol**: `TIME_SIGNATURE_UPDATED`
    - **Options**: `--num <int>`, `--den <int>`
    
    ---
    
    ### 2. Tracks & Gain-Staging
    
    #### Create Track
    ```bash
    daw-cli track create --name "Vocal Lead" --type audio --color yellow
    ```
    - **Success Symbol**: `TRACK_CREATED`
    - **Options**:
      - `--name "<string>"` (Default: "Untitled Track")
      - `--type audio|midi|instrument|aux|folder` (Default: "audio")
      - `--color <red|blue|green|yellow|purple|orange|cyan|pink|white|grey|black|#HEX>`
    
    #### Create Tracks in Batch
    ```bash
    daw-cli track create-batch --names "Kick,Snare,HH,Tom" --type audio
    ```
    - **Success Symbol**: `BATCH_TRACKS_CREATED`
    - **Options**: `--names "<comma_separated_list>"`, `--type audio|midi|instrument|aux|folder`
    
    #### List All Tracks
    ```bash
    daw-cli track list [--format json]
    ```
    - **Success Symbol**: `TRACK_LIST`
    
    #### Inspect Track Details
    ```bash
    daw-cli track inspect --track 1
    ```
    - **Success Symbol**: `TRACK_INSPECT`
    
    #### Set Track Gain (dB)
    ```bash
    daw-cli track set-gain --track 1..4 --db -3.5
    ```
    - **Success Symbol**: `TRACK_GAIN_UPDATED`
    - **Options**: `--track <range>`, `--db <float_in_dB>`
    
    #### Set Track Pan Position
    ```bash
    daw-cli track set-pan --track 1 --value -0.25
    ```
    - **Success Symbol**: `TRACK_PAN_UPDATED`
    - **Options**: `--track <range>`, `--value <float>` (`-1.0` Left to `+1.0` Right)
    
    #### Mute / Unmute Track
    ```bash
    daw-cli track set-mute --track 2 --on
    ```
    - **Success Symbol**: `TRACK_MUTE_UPDATED`
    - **Options**: `--track <range>`, `--on` (omit `--on` to unmute)
    
    #### Solo / Unsolo Track
    ```bash
    daw-cli track set-solo --track 2 --on
    ```
    - **Success Symbol**: `TRACK_SOLO_UPDATED`
    - **Options**: `--track <range>`, `--on` (omit `--on` to unsolo)
    
    #### Delete Tracks
    ```bash
    daw-cli track delete --track 4
    ```
    - **Success Symbol**: `TRACK_DELETED`
    - **Options**: `--track <range>`
    
    #### Set Track Color
    ```bash
    daw-cli track set-color --track 1..4 --color red
    ```
    - **Success Symbol**: `TRACK_COLOR_UPDATED`
    
    #### Auto-Color Tracks
    Assigns semantic color palette based on instrument track names (e.g., Drums -> Red, Bass -> Purple, Vocals -> Yellow).
    ```bash
    daw-cli track auto-color
    ```
    - **Success Symbol**: `TRACKS_AUTO_COLORED`
    
    #### Sanitize Track Names
    Trims whitespace, removes extensions (`.wav`, `.mp3`), and converts underscores to spaces across all tracks.
    ```bash
    daw-cli track sanitize-names
    ```
    - **Success Symbol**: `TRACK_NAMES_SANITIZED`
    
    ---
    
    ### 3. Plugin Management
    
    #### Scan Plugin Library
    Triggers host scanner for installed VST3/AU plugins.
    ```bash
    daw-cli plugin scan
    ```
    - **Success Symbol**: `PLUGIN_SCAN_COMPLETED`
    
    #### List Discovered Plugins
    ```bash
    daw-cli plugin list --filter "FabFilter" --category effect --head 10 --format json
    ```
    - **Success Symbol**: `PLUGIN_LIST`
    - **Options**:
      - `--filter "<substring>"`: Case-insensitive search on name or vendor.
      - `--category effect|instrument` (or `fx`, `synth`).
      - `--head <int>` / `--tail <int>`: Limit output row count.
    
    #### Add Plugin to Track Slot
    ```bash
    daw-cli plugin add --track 1 --name "FabFilter Pro-Q 3" --slot 0
    ```
    - **Success Symbol**: `PLUGIN_ADDED`
    - **Options**:
      - `--track <range>`
      - `--name "<exact_name>"` (Must match exact case returned by `plugin list`) or `--id <uint32>`
      - `--slot <0..7>` (Default: 0)
    
    #### Set Plugin Parameter Value
    ```bash
    daw-cli plugin set-param --track 1 --plugin 0 --param 3 --val 0.75
    ```
    - **Success Symbol**: `PLUGIN_PARAM_UPDATED`
    - **Options**:
      - `--track <uint32>`
      - `--plugin <slot_0..7>` (or `--slot`)
      - `--param <param_index>`
      - `--val <float_0.0_to_1.0>` (Normalized range)
    
    #### Copy Single Plugin to Other Tracks
    ```bash
    daw-cli plugin copy --from-track 1 --slot 0 --to-tracks 2..5 --overwrite
    ```
    - **Success Symbol**: `PLUGIN_COPIED`
    - **Options**:
      - `--from-track <uint32>`
      - `--slot <0..7>`
      - `--to-tracks <range>`
      - `--overwrite`: Required if target slots are already occupied.
    
    #### Copy Entire Plugin Insert Chain
    ```bash
    daw-cli plugin copy-chain --from-track 1 --to-tracks 2..5 --overwrite
    ```
    - **Success Symbol**: `PLUGIN_CHAIN_COPIED`
    - **Options**:
      - `--from-track <uint32>`
      - `--to-tracks <range>`
      - `--overwrite`: Required if any target slot in 0..7 is occupied.
    
    ---
    
    ### 4. Session Preparation (prep)
    
    #### Gain-Stage Track Headroom
    Adjusts track fader gains to achieve requested target RMS headroom.
    ```bash
    daw-cli prep gain-stage --track 1..8 --target-rms -18.0
    ```
    - **Success Symbol**: `GAIN_STAGE_COMPLETED`
    - **Options**: `--track <range>`, `--target-rms <float_dB>` (Default: `-18.0`)
    
    ---
    
    ### 5. Clips & Timeline Editing (clip, midi)
    
    #### Add Audio Clip
    ```bash
    daw-cli clip add-audio --track 1 --path "/audio/vocal.wav" --start 1.1.0
    ```
    - **Success Symbol**: `CLIP_ADDED`
    - **Options**: `--track <uint32>`, `--path "<string>"`, `--start <BBT>`
    
    #### Add MIDI Clip
    ```bash
    daw-cli clip add-midi --track 1 --start 1.1.0 --dur 4.0.0
    ```
    - **Success Symbol**: `CLIP_ADDED`
    - **Options**: `--track <uint32>`, `--start <BBT>`, `--dur <BBT>`
    
    #### Add MIDI Note Event
    ```bash
    daw-cli midi add-note --track 1 --clip 1 --pitch C4 --velocity 100 --start 1.1.0 --dur 1.0.0
    ```
    - **Success Symbol**: `MIDI_NOTE_ADDED`
    - **Options**: `--track <uint32>`, `--clip <uint32>`, `--pitch <musical_note, e.g. C4, A5, Db5 or integer 0..127>`, `--velocity <0..127>`, `--start <BBT>`, `--dur <BBT>`
    
    #### List Arrangement Clips
    ```bash
    daw-cli clip list --track 1 [--bar 1-8]
    ```
    - **Success Symbol**: `CLIP_LIST`
    - **Options**: `--track <uint32>`, `--bar <start_bar-end_bar>`
    
    #### Set Clip Gain (dB)
    ```bash
    daw-cli clip set-gain --track 1 --clip 1 --db -3.0
    ```
    - **Success Symbol**: `CLIP_GAIN_UPDATED`
    - **Options**: `--track <uint32>`, `--clip <uint32>`, `--db <float>`
    
    #### Mute / Unmute Clip
    ```bash
    daw-cli clip set-mute --track 1 --clip 1 --on true
    ```
    - **Success Symbol**: `CLIP_MUTE_UPDATED`
    - **Options**: `--track <uint32>`, `--clip <uint32>`, `--on <true|false>`
    
    #### Split Clip
    ```bash
    daw-cli clip split --track 1 --clip 1 --at 2.1.0
    ```
    - **Success Symbol**: `CLIP_SPLIT`
    - **Options**: `--track <uint32>`, `--clip <uint32>`, `--at <BBT>`
    
    #### Trim Silence
    ```bash
    daw-cli clip trim-silence --track 1 --clip 1 --threshold -48.0 --fade-ms 5.0
    ```
    - **Success Symbol**: `CLIP_SILENCE_TRIMMED`
    - **Options**: `--track <uint32>`, `--clip <uint32>`, `--threshold <float_dB>`, `--fade-ms <float>`
    
    #### Quantize Clip / MIDI
    ```bash
    daw-cli clip quantize --track 1 --clip 1 --grid 1/16 --strength 1.0
    ```
    - **Success Symbol**: `MIDI_CLIPS_QUANTIZED` / `CLIPS_QUANTIZED`
    - **Options**: `--track <uint32>`, `--clip <uint32>`, `--grid <grid_fraction>`, `--strength <float_0..1>`
    
    #### Merge Clips
    ```bash
    daw-cli clip merge --track 1 --start 1.1.0 --end 5.1.0
    ```
    - **Success Symbol**: `CLIPS_MERGED`
    - **Options**: `--track <uint32>`, `--start <BBT>`, `--end <BBT>`, `--clips "<list>"`
    
    #### Move Clip
    ```bash
    daw-cli clip move --track 1 --clip 1 --to-pos 3.1.0 [--to-track 2]
    ```
    - **Success Symbol**: `CLIP_MOVED`
    - **Options**: `--track <uint32>`, `--clip <uint32>`, `--to-pos <BBT>`, `--to-track <uint32>`
    
    #### Nudge Clip Position
    ```bash
    daw-cli clip nudge --track 1 --clip 1 --by +1/16
    ```
    - **Success Symbol**: `CLIP_NUDGED`
    - **Options**: `--track <uint32>`, `--clip <uint32>`, `--by <+|-grid_fraction>`
    
    ---
    
    ### 6. Signal Routing & Topology (route)
    
    #### Route Tracks to Bus / Folder
    Routes source track outputs to a destination bus or folder track, updating both audio routing and parent folder hierarchy.
    ```bash
    daw-cli route folder --track 1..4 --to 10
    ```
    - **Success Symbol**: `ROUTE_FOLDER_UPDATED`
    - **Options**: `--track <range>`, `--to <bus_track_id>`
    
    #### Add Aux Send
    Configures a pre-fader or post-fader send from source tracks to a target Aux track with gain level in dB.
    ```bash
    daw-cli route send --from 1..4 --to 14 --db -12.0 --tap post
    ```
    - **Success Symbol**: `ROUTE_SEND_ADDED`
    - **Options**: `--from <range>`, `--to <aux_track_id>`, `--db <float_dB>` (Default: `-12.0`), `--tap pre|post` (Default: `post`)
    
    #### Set Up Sidechain Connection
    Links a trigger source track as a sidechain input into a target track's plugin or instrument slot.
    ```bash
    daw-cli route sidechain --source 1 --to-track 9 --slot 0 --db 0.0
    ```
    - **Success Symbol**: `ROUTE_SIDECHAIN_LINKED`
    - **Options**: `--source <track_id>`, `--to-track <track_id>`, `--slot <0..7>` (Default: `0`), `--db <float_dB>` (Default: `0.0`)
    
    #### List Routing Topology
    Lists signal routing connections, main outputs, sends, and sidechains across all tracks.
    ```bash
    daw-cli route list [--format tsv|kv|json|pretty]
    ```
    - **Success Symbol**: `ROUTE_LIST`
    
    ---
    
    ### 7. Non-Visual DSP Analysis & Audio Intelligence (analyze)
    
    Domain 6 provides a non-visual DSP analysis and audio intelligence suite across 9 specialized subcommands, supporting both **Short Frame** (real-time telemetry) and **Full Track** (offline decoded asset) processing.
    
    #### Frequency Masking & Collision Detection
    Calculates psychoacoustic masking overlap and energy density collisions across 24 critical Bark bands between two tracks using Schroeder spreading functions.
    ```bash
    daw-cli analyze masking --track 1 --vs 2 [--format json|tsv|kv|pretty]
    ```
    - **Success Symbol**: `ANALYSIS_MASKING`
    - **Options**: `--track <uint32>`, `--vs <uint32>`
    - **Output Fields**: `PRIMARY_TRACK`, `VS_TRACK`, `OVERALL_MASKING_INDEX` ($C_{A,B} \in [0.0, 1.0]$), `COLLISION_RISK` (`LOW_MASKING`, `MODERATE_MASKING`, `HIGH_MASKING`), `MASKED_BAND_COUNT`, `BAND_1_RANGE_HZ`, `BAND_1_MASK_AMOUNT_DB`, `BAND_1_RECOMMENDED_ACTION` (`SIDECHAIN_DUCK_PRIMARY_LOWS`, `CUT_VS_TRACK_EQ_<freq>HZ`), ...
    
    #### Narrow-Q Resonance Peak Detection
    Scans track audio spectrum with a 31-bin moving median spectral envelope filter to isolate harsh narrow-Q resonances, pitch note names, and Q-factor sharpness ($Q \ge 8.0$).
    ```bash
    daw-cli analyze resonance --track 1 [--format json|tsv|kv|pretty]
    ```
    - **Success Symbol**: `ANALYSIS_RESONANCE`
    - **Options**: `--track <uint32>`
    - **Output Fields**: `TRACK_ID`, `TOTAL_RESONANCES_FOUND`, `RESONANCE_1_FREQ_HZ`, `RESONANCE_1_NOTE` (e.g. `E4`, `A5`), `RESONANCE_1_PROMINENCE_DB`, `RESONANCE_1_Q_FACTOR`, `RESONANCE_1_SEVERITY` (`HIGH_SEVERITY_SURGICAL_CUT`, `MODERATE`), `RESONANCE_1_REC_NOTCH_DB`
    
    #### Multi-Track Pearson Phase Correlation Matrix
    Computes an $N \times N$ pairwise Pearson correlation matrix ($r_{i,j}$) across a list or range of tracks to flag phase cancellation risks and identify destructive anti-phase pairs.
    ```bash
    daw-cli analyze phase-matrix --track 1..4 [--format json|tsv|kv|pretty]
    ```
    - **Success Symbol**: `ANALYSIS_PHASE_MATRIX`
    - **Options**: `--track <range|list>` (e.g. `1..4`, `1,2,3,4`)
    - **Output Fields**: `TRACKS_ANALYZED`, `GLOBAL_GROUP_HEALTH` (`HEALTHY_MONO_COMPATIBLE`, `WARNING_SEVERE_CANCELLATION`), `WORST_PAIR_1`, `WORST_CORRELATION_1`, `REC_ACTION_1` (`FLIP_POLARITY_TRACK_<id>`, `NUDGE_DELAY_TRACK_<id>`), `CORRELATION_MATRIX_FLAT`
    
    #### Cross-Correlation Phase Alignment
    Calculates cross-correlation lag across $[-128, +128]$ sample offsets to recommend sample-accurate and millisecond time shifts ($\Delta t_{\text{ms}} = \frac{\text{offset}}{f_s} \times 1000$).
    ```bash
    daw-cli analyze phase-align --track 1 --vs 2 [--format json|tsv|kv|pretty]
    ```
    - **Success Symbol**: `ANALYSIS_PHASE_ALIGN`
    - **Options**: `--track <uint32>`, `--vs <uint32>`
    - **Output Fields**: `PRIMARY_TRACK`, `VS_TRACK`, `RECOMMENDED_SAMPLE_OFFSET`, `RECOMMENDED_TIME_OFFSET_MS`, `CURRENT_CORRELATION`, `IMPROVED_CORRELATION`, `RECOMMENDED_ACTION` (e.g. `NUDGE_REGION_TRACK_2_BY_-48_SAMPLES`)
    
    #### Window Offline Telemetry
    Performs offline telemetry analysis over a specified timeline range for momentary/short-term EBU R128 BS.1770 LUFS, true-peak dBTP, crest factor, and safety gain trim.
    ```bash
    daw-cli analyze window --track 1 --start 1.1.0 --dur 4.0.0 [--format json|tsv|kv|pretty]
    ```
    - **Success Symbol**: `ANALYSIS_WINDOW_STREAM`
    - **Options**: `--track <uint32>`, `--start <BBT>`, `--dur <BBT>`
    - **Output Fields**: `TRACK_ID`, `START_POS`, `DUR_POS`, `MOMENTARY_LUFS`, `SHORT_TERM_LUFS`, `SAMPLE_PEAK_DBFS`, `TRUE_PEAK_DBTP`, `IS_CLIPPING`, `CLIPPING_EVENTS_COUNT`, `CREST_FACTOR_DB`, `SPECTRAL_CENTROID_HZ`, `STEREO_CORRELATION`, `SAFETY_STATUS` (`SAFE_NORMAL`, `VIOLATION_DANGER_REDUCE_GAIN`), `REC_GAIN_TRIM_DB`
    
    #### 7-Band Spectral Energy Balance
    Evaluates acoustic energy distribution across 7 standardized bands (Sub: 20-60Hz, Bass: 60-250Hz, Low-Mid: 250-500Hz, Mid: 500-2kHz, High-Mid: 2-4kHz, Highs: 4-8kHz, Air: 8-20kHz) alongside spectral centroid, 85% energy rolloff frequency, and spectral tilt (dB/octave).
    ```bash
    daw-cli analyze spectrum --track 1 [--format json|tsv|kv|pretty]
    ```
    - **Success Symbol**: `ANALYSIS_SPECTRUM`
    - **Options**: `--track <uint32>`
    - **Output Fields**: `TRACK_ID`, `SPECTRAL_CENTROID_HZ`, `SPECTRAL_TILT_DB_OCT`, `SPECTRAL_ROLLOFF_HZ`, `SUB_BAND_DBFS`, `BASS_BAND_DBFS`, `LOW_MID_BAND_DBFS`, `MID_BAND_DBFS`, `HIGH_MID_BAND_DBFS`, `HIGHS_BAND_DBFS`, `AIR_BAND_DBFS`
    
    #### EBU R128 Loudness Audit (Full Track / Real-Time)
    Performs ITU-R BS.1770-4 / EBU R128 integrated loudness, loudness range (LRA), short-term/momentary peak LUFS, sample peak, and crest factor.
    ```bash
    daw-cli analyze loudness --track 1 [--format json|tsv|kv|pretty]
    ```
    - **Success Symbol**: `ANALYSIS_LOUDNESS`
    - **Options**: `--track <uint32>`
    - **Output Fields**: `TRACK_ID`, `INTEGRATED_LUFS`, `SHORT_TERM_MAX_LUFS`, `MOMENTARY_MAX_LUFS`, `LRA_LU`, `CREST_FACTOR_DB`, `SAMPLE_PEAK_DBFS`, `TRUE_PEAK_DBTP`
    
    #### True-Peak Inter-Sample Clipping Audit
    Performs 4x oversampled true-peak analysis to detect inter-sample clipping events and safety margin status ($0.0\text{ dBTP}$ threshold).
    ```bash
    daw-cli analyze true-peak --track 1 [--format json|tsv|kv|pretty]
    ```
    - **Success Symbol**: `ANALYSIS_TRUE_PEAK`
    - **Options**: `--track <uint32>`
    - **Output Fields**: `TRACK_ID`, `MAX_TRUE_PEAK_DBTP`, `TOTAL_CLIPPING_EVENTS`, `SAFETY_STATUS` (`SAFE_NORMAL`, `VIOLATION_DANGER`)
    
    #### Mid/Side Stereo Width Audit
    Measures Mid RMS ($0.5(L+R)$), Side RMS ($0.5(L-R)$), Mid-to-Side ratio in dB, stereo width percentage, and mono fold-down cancellation loss in dB.
    ```bash
    daw-cli analyze stereo-width --track 1 [--format json|tsv|kv|pretty]
    ```
    - **Success Symbol**: `ANALYSIS_STEREO_WIDTH`
    - **Options**: `--track <uint32>`
    - **Output Fields**: `TRACK_ID`, `MID_RMS_DBFS`, `SIDE_RMS_DBFS`, `MS_RATIO_DB`, `STEREO_WIDTH_PCT`, `MONO_FOLD_LOSS_DB`
    
    ---
    
    ## Common Workflows
    
    ### Workflow A: Setting Up a 4-Track Drum Session
    ```bash
    # 1. Verify DAW application connection
    daw-cli status
    
    # 2. Batch-create drum tracks
    daw-cli track create-batch --names "Kick,Snare,HiHat,Tom" --type audio
    
    # 3. Clean up track names and apply instrument colors
    daw-cli track sanitize-names
    daw-cli track auto-color
    
    # 4. Gain stage all drum tracks to -18 dB RMS headroom
    daw-cli prep gain-stage --track 1..4 --target-rms -18.0
    ```
    
    ### Workflow B: Applying and Distributing an EQ Plugin Chain
    ```bash
    # 1. Search for available EQ plugins
    daw-cli plugin list --filter "EQ" --category effect --format json
    
    # 2. Add EQ plugin to slot 0 of Vocal Lead (Track 1)
    daw-cli plugin add --track 1 --name "FabFilter Pro-Q 3" --slot 0
    
    # 3. Copy EQ plugin from Track 1 slot 0 to Backing Vocals (Tracks 2..5)
    daw-cli plugin copy --from-track 1 --slot 0 --to-tracks 2..5 --overwrite
    ```
    
    ### Workflow C: Submix Bus & Sidechain Setup
    ```bash
    # 1. Route drum tracks 1..4 into Drums Bus (Track 10)
    daw-cli route folder --track 1..4 --to 10
    
    # 2. Add post-fader send from Snare (Track 2) to Reverb Aux (Track 14) at -12 dB
    daw-cli route send --from 2 --to 14 --db -12.0 --tap post
    
    # 3. Link Kick (Track 1) as sidechain trigger to Synth Bass (Track 9) slot 0
    daw-cli route sidechain --source 1 --to-track 9 --slot 0 --db 0.0
    
    # 4. Inspect session routing topology
    daw-cli route list --format tsv
    ```
    
    ### Workflow D: Acoustic Guitar & Vocal Masking Audit and Resonant Notch Fix
    ```bash
    # 1. Analyze frequency masking between Vocal (Track 1) and Acoustic Guitar (Track 2)
    daw-cli analyze masking --track 1 --vs 2
    
    # 2. Detect harsh resonant peaks and Q-factors on Acoustic Guitar
    daw-cli analyze resonance --track 2
    
    # 3. Evaluate multi-mic phase alignment between Top Snare (Track 3) and Bottom Snare (Track 4)
    daw-cli analyze phase-align --track 3 --vs 4
    
    # 4. Perform offline windowed LUFS & True-Peak telemetry on Master Output (Track 10)
    daw-cli analyze window --track 10 --start 1.1.0 --dur 4.0.0
    ```
    
    ---
    
    ## Common Mistakes
    
    1. **Plugin Name Case Sensitivity**:
       `daw-cli plugin add --name` requires an **exact case-sensitive match**. `plugin add --name "fabfilter pro-q 3"` will fail with `72 ENTITY_NOT_FOUND`. Always run `plugin list --filter "FabFilter"` first to copy the exact name string.
    
    2. **Forgetting `--overwrite` on Occupied Plugin Slots**:
       Copying plugins (`plugin copy` or `plugin copy-chain`) to tracks with existing plugins in target slots without `--overwrite` will fail with error `74 RESOURCE_BUSY_USER_TOUCH`.
    
    3. **Not Checking `status` Before Issuing Commands**:
       Attempting to execute commands when Stratawright is closed returns error `71 DAW_NOT_RUNNING`. Always run `daw-cli status` first to confirm connectivity.
    
    4. **Missing Comparison Target for Pairwise Analysis**:
       Commands like `daw-cli analyze masking` and `daw-cli analyze phase-align` require `--vs <target_track_id>`. Omitting `--vs` returns error `70 INVALID_ARGS`.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related