@mthines/reaper-mcp 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/claude-agents/{mix-analyzer.md → critique.md} +3 -3
- package/claude-agents/editor.md +184 -0
- package/claude-agents/{gain-stage.md → levels.md} +1 -1
- package/claude-agents/{master.md → mastering.md} +1 -1
- package/claude-agents/{mix-engineer.md → mixer.md} +1 -1
- package/claude-agents/preflight.md +149 -0
- package/claude-agents/producer.md +159 -0
- package/claude-agents/setup.md +150 -0
- package/claude-agents/stems.md +135 -0
- package/knowledge/workflows/delivery.md +202 -0
- package/knowledge/workflows/editing.md +251 -0
- package/knowledge/workflows/session-prep.md +205 -0
- package/knowledge/workflows/stem-prep.md +175 -0
- package/main.js +50 -6
- package/package.json +1 -1
- package/reaper/mcp_bridge.lua +100 -4
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: stems
|
|
3
|
+
description: Stem preparation specialist — verifies bus structure, routing, naming, and technical specs for stem export. Use for "prepare stems", "check routing for export", or "stem prep".
|
|
4
|
+
tools: Read, Glob
|
|
5
|
+
mcpServers:
|
|
6
|
+
- reaper
|
|
7
|
+
model: sonnet
|
|
8
|
+
permissionMode: acceptEdits
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Stem Preparation Agent
|
|
12
|
+
|
|
13
|
+
You are a stem preparation specialist for REAPER DAW. Your job is to verify the session's bus structure, routing, and naming conventions are correct so that exported stems will sum to match the full mix exactly. You ensure everything is export-ready.
|
|
14
|
+
|
|
15
|
+
**Stems that don't sum to match the full mix are useless.** Your job is to guarantee they will.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Workflow
|
|
20
|
+
|
|
21
|
+
### Step 1: Save a safety snapshot
|
|
22
|
+
```
|
|
23
|
+
tool: snapshot_save
|
|
24
|
+
params: { name: "pre-stem-prep", description: "State before stem preparation" }
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Step 2: Map the full routing hierarchy
|
|
28
|
+
```
|
|
29
|
+
tool: get_project_info
|
|
30
|
+
tool: list_tracks
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
For every track, document its routing:
|
|
34
|
+
```
|
|
35
|
+
tool: get_track_routing
|
|
36
|
+
params: { trackIndex: N }
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Build a complete routing map: source tracks → buses → master.
|
|
40
|
+
|
|
41
|
+
### Step 3: Verify stem groups
|
|
42
|
+
|
|
43
|
+
Standard stem groups:
|
|
44
|
+
|
|
45
|
+
| Stem | Contains |
|
|
46
|
+
|------|----------|
|
|
47
|
+
| Drums | Kick, Snare, Toms, OH, Room |
|
|
48
|
+
| Bass | Bass DI, Bass Amp |
|
|
49
|
+
| Guitars | All guitar tracks |
|
|
50
|
+
| Keys/Synths | Piano, Organ, Pads, Leads |
|
|
51
|
+
| Vocals | Lead, BVs, Harmonies |
|
|
52
|
+
| Effects | Printed reverbs, delays |
|
|
53
|
+
|
|
54
|
+
For each bus:
|
|
55
|
+
```
|
|
56
|
+
tool: get_track_properties
|
|
57
|
+
params: { trackIndex: BUS_INDEX }
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Step 4: Check for routing problems
|
|
61
|
+
|
|
62
|
+
Flag these issues:
|
|
63
|
+
|
|
64
|
+
1. **Orphan tracks** — routing directly to master, bypassing buses
|
|
65
|
+
2. **Double-routing** — a track sending to both a bus AND master (will be counted twice)
|
|
66
|
+
3. **Missing tracks** — muted or no-output tracks that should be active
|
|
67
|
+
4. **Send-only tracks** — reverb/delay returns not captured in any stem
|
|
68
|
+
5. **Master bus processing** — FX on master that won't be in individual stems
|
|
69
|
+
|
|
70
|
+
### Step 5: Verify naming conventions
|
|
71
|
+
|
|
72
|
+
Check bus names are clear for delivery:
|
|
73
|
+
```
|
|
74
|
+
tool: get_track_properties
|
|
75
|
+
params: { trackIndex: BUS_INDEX }
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Expected format: `[Song Title]_[Stem Name]_[Bit Depth]-[Sample Rate]`
|
|
79
|
+
|
|
80
|
+
Rename if needed:
|
|
81
|
+
```
|
|
82
|
+
tool: set_track_property
|
|
83
|
+
params: { trackIndex: BUS_INDEX, property: "name", value: "Drum Bus" }
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Step 6: Verify technical specs
|
|
87
|
+
```
|
|
88
|
+
tool: get_project_info
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Confirm:
|
|
92
|
+
- Sample rate matches delivery requirement
|
|
93
|
+
- All stems will have the same duration (full song length)
|
|
94
|
+
- No sample rate mismatches between tracks
|
|
95
|
+
|
|
96
|
+
### Step 7: Generate stem map report
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
## Stem Map
|
|
100
|
+
|
|
101
|
+
| Stem | Bus Track | Source Tracks | Bus FX | Status |
|
|
102
|
+
|------|-----------|---------------|--------|--------|
|
|
103
|
+
| Drums | Track 15 | Kick, Snare, Tom 1, Tom 2, OH L, OH R | Comp, EQ | OK |
|
|
104
|
+
| Bass | Track 16 | Bass DI, Bass Amp | Comp | OK |
|
|
105
|
+
| ... | ... | ... | ... | ... |
|
|
106
|
+
|
|
107
|
+
### Technical Specs
|
|
108
|
+
- Sample Rate: [X] kHz
|
|
109
|
+
- Bit Depth: 24-bit
|
|
110
|
+
- Duration: [X] seconds
|
|
111
|
+
|
|
112
|
+
### Master Bus Processing (NOT in stems)
|
|
113
|
+
- [List of master bus FX]
|
|
114
|
+
|
|
115
|
+
### Issues Found
|
|
116
|
+
- [Any routing problems, orphan tracks, etc.]
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Step 8: Save post-prep snapshot
|
|
120
|
+
```
|
|
121
|
+
tool: snapshot_save
|
|
122
|
+
params: { name: "post-stem-prep", description: "Stems verified — routing correct, naming consistent" }
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Rules
|
|
128
|
+
|
|
129
|
+
- **Don't export** — your job is verification and preparation, not the actual bounce/export
|
|
130
|
+
- **Always save a snapshot first**
|
|
131
|
+
- **Every source track must route through exactly one bus** — no orphans, no double-routing
|
|
132
|
+
- **Document everything** — the stem map report should be clear enough for anyone to export correctly
|
|
133
|
+
- **Flag master bus processing** — the user needs to know which FX are on the master bus and won't be in individual stems
|
|
134
|
+
- **Check mute states** — a muted track won't export. Verify all intended tracks are unmuted.
|
|
135
|
+
- Read `knowledge/workflows/stem-prep.md` for the detailed reference workflow
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Delivery
|
|
3
|
+
id: delivery
|
|
4
|
+
description: Verify final masters meet platform delivery specs — LUFS, true peak, format requirements
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Delivery
|
|
8
|
+
|
|
9
|
+
## When to Use
|
|
10
|
+
|
|
11
|
+
As the final step in the production workflow. Delivery verification ensures the finished master meets the technical requirements of target platforms before export.
|
|
12
|
+
|
|
13
|
+
Use this workflow when:
|
|
14
|
+
- The master is complete and ready for distribution
|
|
15
|
+
- You need to verify specs for a specific platform (Spotify, Apple Music, CD, club, broadcast)
|
|
16
|
+
- A mastering engineer or distributor has requested specific delivery specs
|
|
17
|
+
- You want a final QA pass before bouncing the final file
|
|
18
|
+
|
|
19
|
+
## Prerequisites
|
|
20
|
+
|
|
21
|
+
- Mastering is complete (master bus chain is finalized)
|
|
22
|
+
- Target platform(s) are known
|
|
23
|
+
- The session plays back correctly from start to finish
|
|
24
|
+
- LUFS metering is available
|
|
25
|
+
|
|
26
|
+
## Step-by-Step
|
|
27
|
+
|
|
28
|
+
### Step 1: Identify target platforms
|
|
29
|
+
|
|
30
|
+
Determine which platforms the master will be delivered to. Each has different specs:
|
|
31
|
+
|
|
32
|
+
| Platform | Integrated LUFS | True Peak | Sample Rate | Bit Depth | Format |
|
|
33
|
+
|----------|----------------|-----------|-------------|-----------|--------|
|
|
34
|
+
| Spotify / YouTube | -14 LUFS | -1.0 dBTP | 44.1+ kHz | 24-bit | WAV/FLAC |
|
|
35
|
+
| Apple Music | -16 LUFS | -1.0 dBTP | 44.1-96 kHz | 24-bit | WAV |
|
|
36
|
+
| Apple Digital Masters | -16 LUFS | -1.0 dBTP | 96 kHz | 24-bit | WAV |
|
|
37
|
+
| Tidal / Amazon HD | -14 LUFS | -1.0 dBTP | 44.1-96 kHz | 24-bit | WAV/FLAC |
|
|
38
|
+
| CD (Red Book) | -9 to -14 LUFS | -0.3 dBTP | 44.1 kHz | 16-bit | WAV (dithered) |
|
|
39
|
+
| Club / DJ | -6 to -9 LUFS | -0.1 dBTP | 44.1-48 kHz | 24-bit | WAV |
|
|
40
|
+
| Broadcast (EBU R128) | -23 LUFS | -1.0 dBTP | 48 kHz | 24-bit | BWF |
|
|
41
|
+
| Broadcast (ATSC A/85) | -24 LUFS | -2.0 dBTP | 48 kHz | 24-bit | BWF |
|
|
42
|
+
| Vinyl pre-master | N/A | N/A | 96 kHz | 24/32-bit | WAV |
|
|
43
|
+
|
|
44
|
+
### Step 2: Measure current loudness
|
|
45
|
+
|
|
46
|
+
Play the full song from start to finish for integrated LUFS measurement:
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
tool: read_track_lufs
|
|
50
|
+
params:
|
|
51
|
+
trackIndex: [master bus index]
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Record:
|
|
55
|
+
- Integrated LUFS
|
|
56
|
+
- Short-term LUFS (max)
|
|
57
|
+
- Momentary LUFS (max)
|
|
58
|
+
- True peak (dBTP)
|
|
59
|
+
- Loudness range (LRA)
|
|
60
|
+
|
|
61
|
+
### Step 3: Verify frequency balance
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
tool: read_track_spectrum
|
|
65
|
+
params:
|
|
66
|
+
trackIndex: [master bus index]
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Check for:
|
|
70
|
+
- **Sub rumble** below 30 Hz (should be minimal)
|
|
71
|
+
- **Low-end balance** (60-250 Hz appropriate for genre)
|
|
72
|
+
- **Mud buildup** (250-500 Hz — should not be dominant)
|
|
73
|
+
- **Harshness** (2-5 kHz — check against perceived loudness expectations)
|
|
74
|
+
- **Air/presence** (8-20 kHz — should be present but not harsh)
|
|
75
|
+
|
|
76
|
+
A well-mastered track typically shows a gentle downward slope from low to high frequencies on a spectrum analyzer.
|
|
77
|
+
|
|
78
|
+
### Step 4: Check dynamics
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
tool: read_track_crest
|
|
82
|
+
params:
|
|
83
|
+
trackIndex: [master bus index]
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Crest factor targets by genre:
|
|
87
|
+
- **Orchestral/Classical**: 14-20+ dB (maximum dynamic range)
|
|
88
|
+
- **Jazz/Folk**: 12-16 dB
|
|
89
|
+
- **Rock/Pop**: 8-12 dB
|
|
90
|
+
- **Hip-Hop/R&B**: 6-10 dB
|
|
91
|
+
- **EDM/Club**: 6-8 dB
|
|
92
|
+
|
|
93
|
+
If crest factor is below 6 dB, the master is likely over-compressed.
|
|
94
|
+
|
|
95
|
+
### Step 5: Verify stereo image
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
tool: read_track_correlation
|
|
99
|
+
params:
|
|
100
|
+
trackIndex: [master bus index]
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Check:
|
|
104
|
+
- **Correlation > 0.7**: Good mono compatibility (safe for all playback systems)
|
|
105
|
+
- **Correlation 0.3-0.7**: Wide stereo (check mono playback carefully)
|
|
106
|
+
- **Correlation < 0.3**: Very wide or phase issues (will sound thin on mono systems)
|
|
107
|
+
- **Correlation < 0**: Phase cancellation (FIX THIS — will disappear on mono systems)
|
|
108
|
+
|
|
109
|
+
### Step 6: Check peak levels
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
tool: read_track_meters
|
|
113
|
+
params:
|
|
114
|
+
trackIndex: [master bus index]
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Verify peak levels are below the true peak ceiling for the target platform:
|
|
118
|
+
- Streaming: peaks below -1.0 dBTP
|
|
119
|
+
- CD: peaks below -0.3 dBTP
|
|
120
|
+
- Club: peaks below -0.1 dBTP
|
|
121
|
+
- Broadcast: peaks below -1.0 dBTP (EBU) or -2.0 dBTP (ATSC)
|
|
122
|
+
|
|
123
|
+
### Step 7: Verify session specs
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
tool: get_project_info
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Confirm:
|
|
130
|
+
- Sample rate matches delivery requirement
|
|
131
|
+
- Session is playing back without errors
|
|
132
|
+
- Project tempo and time signature are correct (metadata)
|
|
133
|
+
|
|
134
|
+
### Step 8: Generate delivery checklist
|
|
135
|
+
|
|
136
|
+
Compile a report for the user:
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
## Delivery Report
|
|
140
|
+
|
|
141
|
+
### Target Platform: [platform]
|
|
142
|
+
| Spec | Target | Measured | Status |
|
|
143
|
+
|------|--------|----------|--------|
|
|
144
|
+
| Integrated LUFS | [target] | [measured] | PASS/FAIL |
|
|
145
|
+
| True Peak | [target] dBTP | [measured] dBTP | PASS/FAIL |
|
|
146
|
+
| Crest Factor | [target range] dB | [measured] dB | PASS/FAIL |
|
|
147
|
+
| Stereo Correlation | > 0.3 | [measured] | PASS/FAIL |
|
|
148
|
+
| Sample Rate | [target] kHz | [measured] kHz | PASS/FAIL |
|
|
149
|
+
| Sub Rumble (< 30 Hz) | Minimal | [observation] | PASS/FAIL |
|
|
150
|
+
|
|
151
|
+
### Export Instructions
|
|
152
|
+
- Format: [WAV/FLAC/BWF]
|
|
153
|
+
- Bit Depth: [16/24/32-bit]
|
|
154
|
+
- Sample Rate: [kHz]
|
|
155
|
+
- Dithering: [Yes (16-bit only) / No]
|
|
156
|
+
- Filename: [SongTitle]_[Platform]_[BitDepth]-[SampleRate].[ext]
|
|
157
|
+
|
|
158
|
+
### Notes
|
|
159
|
+
- [Any concerns, compromises, or recommendations]
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Platform-Specific Notes
|
|
163
|
+
|
|
164
|
+
### Spotify / YouTube
|
|
165
|
+
- These platforms normalize loudness to -14 LUFS. Masters louder than -14 will be turned DOWN.
|
|
166
|
+
- Masters quieter than -14 will be turned UP (with potential for clipping if true peak is close to 0).
|
|
167
|
+
- Best practice: master to -14 LUFS with -1.0 dBTP ceiling.
|
|
168
|
+
|
|
169
|
+
### Apple Music
|
|
170
|
+
- Normalizes to -16 LUFS. Slightly quieter target.
|
|
171
|
+
- Apple Digital Masters program requires 24-bit/96 kHz source files.
|
|
172
|
+
- High-res lossless badge requires meeting Apple's toolchain specs.
|
|
173
|
+
|
|
174
|
+
### CD (Red Book)
|
|
175
|
+
- 16-bit requires dithering from 24-bit source (TPDF or noise-shaped dither).
|
|
176
|
+
- 44.1 kHz mandatory — sample rate conversion needed if session is at 48+ kHz.
|
|
177
|
+
- True peak ceiling should be -0.3 dBTP to account for inter-sample peaks after D/A conversion.
|
|
178
|
+
|
|
179
|
+
### Club / DJ
|
|
180
|
+
- Louder targets (-6 to -9 LUFS) are acceptable and expected.
|
|
181
|
+
- Sub bass must be tight and controlled (club systems are very revealing below 60 Hz).
|
|
182
|
+
- True peak ceiling can be tighter (-0.1 dBTP) since playback is on professional systems.
|
|
183
|
+
|
|
184
|
+
### Broadcast (EBU R128 / ATSC A/85)
|
|
185
|
+
- Strict loudness standards enforced by regulation.
|
|
186
|
+
- EBU R128: -23 LUFS ± 0.5, loudness range (LRA) should be appropriate for content.
|
|
187
|
+
- ATSC A/85: -24 LUFS (used in North American broadcast).
|
|
188
|
+
|
|
189
|
+
### Vinyl
|
|
190
|
+
- No excessive sub-bass below 30 Hz (causes needle skip)
|
|
191
|
+
- Controlled sibilance (excessive high frequencies cause distortion on inner grooves)
|
|
192
|
+
- Mono bass below 300 Hz recommended (prevents groove wall issues)
|
|
193
|
+
- Dynamic range is welcome — vinyl handles dynamics well
|
|
194
|
+
- Separate master from digital — vinyl mastering is its own discipline
|
|
195
|
+
|
|
196
|
+
## Common Pitfalls
|
|
197
|
+
|
|
198
|
+
- **Not measuring full-song integrated LUFS**: Short-term or momentary readings are NOT the delivery spec. Play the entire song for integrated measurement.
|
|
199
|
+
- **Ignoring true peak**: Digital-to-analog conversion creates inter-sample peaks. True peak (ISP) meters catch these; regular peak meters don't. Always check true peak.
|
|
200
|
+
- **Same master for all platforms**: A -14 LUFS streaming master won't work for club play (-6 to -9 LUFS needed). Create separate masters for different delivery targets.
|
|
201
|
+
- **Forgetting dither for 16-bit**: Converting 24-bit to 16-bit without dither introduces quantization distortion. Always apply TPDF dither.
|
|
202
|
+
- **Over-relying on numbers**: Delivery specs are minimum requirements, not the only quality measure. A master that hits -14 LUFS but sounds distorted still needs work.
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Editing
|
|
3
|
+
id: editing
|
|
4
|
+
description: Edit audio items for mix-readiness — crossfades, timing, phase alignment, cleanup
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Editing
|
|
8
|
+
|
|
9
|
+
## When to Use
|
|
10
|
+
|
|
11
|
+
After session preparation and before gain staging. Editing makes raw recorded performances mix-ready by fixing timing, managing transitions, cleaning up noise, and ensuring phase coherence between related microphones.
|
|
12
|
+
|
|
13
|
+
Use this workflow when:
|
|
14
|
+
- Raw recorded tracks need cleanup before mixing
|
|
15
|
+
- There are audible clicks or pops at edit points (missing crossfades)
|
|
16
|
+
- Drum timing needs tightening
|
|
17
|
+
- Multi-mic recordings have phase issues (kick in/out, snare top/bottom, DI + amp)
|
|
18
|
+
- Tracks have noise, bleed, or unwanted sounds between performances
|
|
19
|
+
- The arrangement needs structural changes (cut a verse, extend a chorus)
|
|
20
|
+
|
|
21
|
+
## Prerequisites
|
|
22
|
+
|
|
23
|
+
- Session preparation is complete (tracks named, organized, routed)
|
|
24
|
+
- REAPER session is open with all recorded tracks
|
|
25
|
+
- You understand the song structure (markers placed in session prep)
|
|
26
|
+
- Transport is functional (can play, stop, navigate)
|
|
27
|
+
|
|
28
|
+
## Step-by-Step
|
|
29
|
+
|
|
30
|
+
### Step 1: Save a safety snapshot
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
tool: snapshot_save
|
|
34
|
+
params:
|
|
35
|
+
name: "pre-editing"
|
|
36
|
+
description: "State before audio editing"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Step 2: Inventory media items per track
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
tool: list_tracks
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
For each track, get an overview of media items:
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
tool: list_media_items
|
|
49
|
+
params:
|
|
50
|
+
trackIndex: [n]
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Note: item count, positions, lengths, gaps between items, any overlapping items.
|
|
54
|
+
|
|
55
|
+
### Step 3: Phase check multi-mic recordings
|
|
56
|
+
|
|
57
|
+
For tracks that share a source (e.g., kick in + kick out, snare top + snare bottom, DI + amp), check phase coherence:
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
tool: read_track_correlation
|
|
61
|
+
params:
|
|
62
|
+
trackIndex: [first track]
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
If correlation is negative or very low (< 0.3), the tracks may need phase alignment:
|
|
66
|
+
|
|
67
|
+
1. Check if polarity flip fixes it:
|
|
68
|
+
```
|
|
69
|
+
tool: set_track_property
|
|
70
|
+
params:
|
|
71
|
+
trackIndex: [n]
|
|
72
|
+
property: "phase"
|
|
73
|
+
value: true
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
2. If polarity flip doesn't help, time-align by nudging the item:
|
|
77
|
+
```
|
|
78
|
+
tool: get_media_item_properties
|
|
79
|
+
params:
|
|
80
|
+
trackIndex: [n]
|
|
81
|
+
itemIndex: 0
|
|
82
|
+
```
|
|
83
|
+
Then adjust position to align transients:
|
|
84
|
+
```
|
|
85
|
+
tool: set_media_item_properties
|
|
86
|
+
params:
|
|
87
|
+
trackIndex: [n]
|
|
88
|
+
itemIndex: 0
|
|
89
|
+
position: [adjusted seconds]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Step 4: Crossfade management
|
|
93
|
+
|
|
94
|
+
Check all edit points for smooth transitions. Every splice point needs a crossfade to prevent clicks:
|
|
95
|
+
|
|
96
|
+
For items that are adjacent or overlapping:
|
|
97
|
+
```
|
|
98
|
+
tool: get_media_item_properties
|
|
99
|
+
params:
|
|
100
|
+
trackIndex: [n]
|
|
101
|
+
itemIndex: [n]
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Apply short crossfades at edit points:
|
|
105
|
+
```
|
|
106
|
+
tool: set_media_item_properties
|
|
107
|
+
params:
|
|
108
|
+
trackIndex: [n]
|
|
109
|
+
itemIndex: [n]
|
|
110
|
+
fadeInLength: 0.005
|
|
111
|
+
fadeOutLength: 0.005
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Standard crossfade lengths:
|
|
115
|
+
- **Percussive edits** (drums, transients): 2-5 ms
|
|
116
|
+
- **Sustained sounds** (vocals, pads): 10-50 ms
|
|
117
|
+
- **Comp edit points** (between takes): 20-100 ms
|
|
118
|
+
|
|
119
|
+
### Step 5: Timing alignment with stretch markers
|
|
120
|
+
|
|
121
|
+
For performances that drift from the grid, use stretch markers to align without cutting:
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
tool: get_stretch_markers
|
|
125
|
+
params:
|
|
126
|
+
trackIndex: [n]
|
|
127
|
+
itemIndex: [n]
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Add stretch markers at transients that need realignment:
|
|
131
|
+
```
|
|
132
|
+
tool: add_stretch_marker
|
|
133
|
+
params:
|
|
134
|
+
trackIndex: [n]
|
|
135
|
+
itemIndex: [n]
|
|
136
|
+
position: [item-relative seconds — where in the item the marker goes]
|
|
137
|
+
sourcePosition: [where this point maps to in the source audio]
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Timing alignment priorities:
|
|
141
|
+
1. **Kick drum** — the rhythmic anchor, align to grid first
|
|
142
|
+
2. **Snare** — lock to grid or slightly behind for groove
|
|
143
|
+
3. **Bass** — align note attacks to kick drum hits
|
|
144
|
+
4. **Rhythm guitars** — align strums to kick/snare pattern
|
|
145
|
+
5. **Vocals** — nudge phrases to sit naturally, don't over-quantize
|
|
146
|
+
|
|
147
|
+
### Step 6: Head and tail cleanup
|
|
148
|
+
|
|
149
|
+
Ensure clean silence before the first downbeat and appropriate decay at the end:
|
|
150
|
+
|
|
151
|
+
Check the first and last items on each track:
|
|
152
|
+
```
|
|
153
|
+
tool: get_media_item_properties
|
|
154
|
+
params:
|
|
155
|
+
trackIndex: [n]
|
|
156
|
+
itemIndex: 0
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Trim heads (remove pre-roll noise):
|
|
160
|
+
```
|
|
161
|
+
tool: trim_media_item
|
|
162
|
+
params:
|
|
163
|
+
trackIndex: [n]
|
|
164
|
+
itemIndex: 0
|
|
165
|
+
trimStart: [seconds to trim inward]
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Apply fade-ins to track starts:
|
|
169
|
+
```
|
|
170
|
+
tool: set_media_item_properties
|
|
171
|
+
params:
|
|
172
|
+
trackIndex: [n]
|
|
173
|
+
itemIndex: 0
|
|
174
|
+
fadeInLength: 0.01
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Apply fade-outs to track ends:
|
|
178
|
+
```
|
|
179
|
+
tool: set_media_item_properties
|
|
180
|
+
params:
|
|
181
|
+
trackIndex: [n]
|
|
182
|
+
itemIndex: [last]
|
|
183
|
+
fadeOutLength: 0.05
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Step 7: Arrangement editing (if needed)
|
|
187
|
+
|
|
188
|
+
If the song structure needs changes (cut a section, extend, rearrange):
|
|
189
|
+
|
|
190
|
+
Split items at section boundaries:
|
|
191
|
+
```
|
|
192
|
+
tool: split_media_item
|
|
193
|
+
params:
|
|
194
|
+
trackIndex: [n]
|
|
195
|
+
itemIndex: [n]
|
|
196
|
+
position: [seconds — absolute project time]
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Move sections:
|
|
200
|
+
```
|
|
201
|
+
tool: move_media_item
|
|
202
|
+
params:
|
|
203
|
+
trackIndex: [n]
|
|
204
|
+
itemIndex: [n]
|
|
205
|
+
newPosition: [seconds]
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Delete unwanted sections:
|
|
209
|
+
```
|
|
210
|
+
tool: delete_media_item
|
|
211
|
+
params:
|
|
212
|
+
trackIndex: [n]
|
|
213
|
+
itemIndex: [n]
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
**Important**: When rearranging, process ALL tracks at each section boundary to keep everything in sync. Do not move items on one track without moving corresponding items on all other tracks.
|
|
217
|
+
|
|
218
|
+
### Step 8: Strip silence / gap cleanup
|
|
219
|
+
|
|
220
|
+
For tracks with long silences between performances (e.g., vocal tracks with silence between verses):
|
|
221
|
+
|
|
222
|
+
Identify items with excessive silence by checking positions and lengths. Items far apart with no content between them are candidates for trimming or splitting.
|
|
223
|
+
|
|
224
|
+
### Step 9: Save post-editing snapshot
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
tool: snapshot_save
|
|
228
|
+
params:
|
|
229
|
+
name: "post-editing"
|
|
230
|
+
description: "Audio editing complete — crossfades, timing, phase, cleanup done"
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
## Verification
|
|
234
|
+
|
|
235
|
+
After completing audio editing:
|
|
236
|
+
|
|
237
|
+
1. No clicks or pops at any edit point (all splices have crossfades)
|
|
238
|
+
2. Multi-mic recordings are phase-coherent (correlation > 0.5)
|
|
239
|
+
3. Timing is tight (kick and bass locked, drums on grid or grooved consistently)
|
|
240
|
+
4. Heads and tails are clean (no pre-roll noise, appropriate decays)
|
|
241
|
+
5. Song structure is correct (if arrangement was edited)
|
|
242
|
+
6. All tracks start and end cleanly
|
|
243
|
+
|
|
244
|
+
## Common Pitfalls
|
|
245
|
+
|
|
246
|
+
- **Over-editing timing**: Some genres (jazz, folk, indie) rely on human feel. Don't grid-lock everything — only tighten where timing is distractingly loose
|
|
247
|
+
- **Missing crossfades**: Every edit point needs at least a 2 ms crossfade. One missed crossfade = one audible click
|
|
248
|
+
- **Phase-flipping without checking**: Flipping polarity helps when signals are ~180 degrees out, but can make things worse if they're only partially misaligned. Always measure correlation before and after
|
|
249
|
+
- **Editing tracks independently**: Multi-mic drum recordings must be edited as a group — if you nudge the snare top, the snare bottom and overheads must move with it
|
|
250
|
+
- **Destructive arrangement edits**: Always save a snapshot before rearranging sections. One wrong split or delete can be very hard to undo manually
|
|
251
|
+
- **Ignoring stretch marker artifacts**: Heavy time-stretching introduces artifacts (metallic sound, pitch warbling). If stretch is more than ~10%, consider re-recording instead
|