@mthines/reaper-mcp 0.1.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/README.md +281 -0
- package/claude-rules/architecture.md +39 -0
- package/claude-rules/development.md +54 -0
- package/claude-rules/lua-bridge.md +50 -0
- package/claude-rules/testing.md +42 -0
- package/claude-skills/learn-plugin.md +123 -0
- package/knowledge/genres/_template.md +109 -0
- package/knowledge/genres/electronic.md +112 -0
- package/knowledge/genres/hip-hop.md +111 -0
- package/knowledge/genres/metal.md +136 -0
- package/knowledge/genres/orchestral.md +132 -0
- package/knowledge/genres/pop.md +108 -0
- package/knowledge/genres/rock.md +117 -0
- package/knowledge/plugins/_template.md +82 -0
- package/knowledge/plugins/fabfilter/pro-c-2.md +117 -0
- package/knowledge/plugins/fabfilter/pro-l-2.md +95 -0
- package/knowledge/plugins/fabfilter/pro-q-3.md +112 -0
- package/knowledge/plugins/neural-dsp/helix-native.md +104 -0
- package/knowledge/plugins/stock-reaper/js-1175-compressor.md +94 -0
- package/knowledge/plugins/stock-reaper/rea-comp.md +100 -0
- package/knowledge/plugins/stock-reaper/rea-delay.md +95 -0
- package/knowledge/plugins/stock-reaper/rea-eq.md +103 -0
- package/knowledge/plugins/stock-reaper/rea-gate.md +99 -0
- package/knowledge/plugins/stock-reaper/rea-limit.md +75 -0
- package/knowledge/plugins/stock-reaper/rea-verb.md +76 -0
- package/knowledge/reference/common-mistakes.md +307 -0
- package/knowledge/reference/compression.md +176 -0
- package/knowledge/reference/frequencies.md +154 -0
- package/knowledge/reference/metering.md +166 -0
- package/knowledge/workflows/drum-bus.md +211 -0
- package/knowledge/workflows/gain-staging.md +165 -0
- package/knowledge/workflows/low-end.md +261 -0
- package/knowledge/workflows/master-bus.md +204 -0
- package/knowledge/workflows/vocal-chain.md +246 -0
- package/main.js +755 -0
- package/package.json +44 -0
- package/reaper/install.sh +50 -0
- package/reaper/mcp_analyzer.jsfx +167 -0
- package/reaper/mcp_bridge.lua +1105 -0
- package/reaper/mcp_correlation_meter.jsfx +148 -0
- package/reaper/mcp_crest_factor.jsfx +108 -0
- package/reaper/mcp_lufs_meter.jsfx +301 -0
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Vocal Chain
|
|
3
|
+
id: vocal-chain
|
|
4
|
+
description: Build a complete processing chain for lead vocals
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Vocal Chain
|
|
8
|
+
|
|
9
|
+
## When to Use
|
|
10
|
+
|
|
11
|
+
When a lead vocal track needs a complete processing chain built from scratch or audited for problems. This workflow builds a professional vocal chain in the correct plugin order with genre-appropriate settings.
|
|
12
|
+
|
|
13
|
+
Use this workflow when:
|
|
14
|
+
- A new vocal track has been added with no processing
|
|
15
|
+
- The vocal is present but not cutting through the mix
|
|
16
|
+
- The vocal sounds harsh, muddy, or uncontrolled
|
|
17
|
+
- The user says "fix the vocals" or "make the vocals sound professional"
|
|
18
|
+
|
|
19
|
+
## Prerequisites
|
|
20
|
+
|
|
21
|
+
- Lead vocal track identified (track name should contain "voc", "lead", or similar)
|
|
22
|
+
- Gain staging already complete (-18 dBFS average on vocal track)
|
|
23
|
+
- Genre is known (settings vary significantly by genre)
|
|
24
|
+
- Track has audio playing — meters must be readable
|
|
25
|
+
|
|
26
|
+
## Step-by-Step
|
|
27
|
+
|
|
28
|
+
### Step 1: Save a snapshot
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
tool: snapshot_save
|
|
32
|
+
params:
|
|
33
|
+
name: "pre-vocal-chain"
|
|
34
|
+
description: "Before building vocal processing chain"
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Step 2: Identify the vocal track
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
tool: list_tracks
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Find the lead vocal track by name. Get its `trackIndex`.
|
|
44
|
+
|
|
45
|
+
### Step 3: Read the current vocal spectrum
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
tool: read_track_spectrum
|
|
49
|
+
params:
|
|
50
|
+
trackIndex: [vocal track index]
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Look for:
|
|
54
|
+
- Low-frequency buildup below 100 Hz (rumble, handling noise)
|
|
55
|
+
- Presence of 200–400 Hz (boxiness / proximity effect)
|
|
56
|
+
- Peak in 2–5 kHz (harshness zone — check if it's causing problems)
|
|
57
|
+
- Sibilance energy above 6 kHz (will need de-essing)
|
|
58
|
+
- Overall spectral tilt (too bright, too dark?)
|
|
59
|
+
|
|
60
|
+
### Step 4: Add EQ (first in chain)
|
|
61
|
+
|
|
62
|
+
Select EQ based on plugin resolver: prefer Pro-Q 3, fall back to ReaEQ.
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
tool: add_fx
|
|
66
|
+
params:
|
|
67
|
+
trackIndex: [vocal track index]
|
|
68
|
+
fxName: "Pro-Q3" # or "ReaEQ" if not available
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Set EQ parameters:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
tool: set_fx_parameter
|
|
75
|
+
params:
|
|
76
|
+
trackIndex: [vocal track index]
|
|
77
|
+
fxIndex: 0 # EQ is first FX
|
|
78
|
+
paramName: "Band 1 Shape"
|
|
79
|
+
value: [High Cut = 4] # HPF
|
|
80
|
+
|
|
81
|
+
tool: set_fx_parameter
|
|
82
|
+
params:
|
|
83
|
+
trackIndex: [vocal track index]
|
|
84
|
+
fxIndex: 0
|
|
85
|
+
paramName: "Band 1 Frequency"
|
|
86
|
+
value: [80 to 100 Hz — normalized to 0.0–1.0 range]
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Standard vocal EQ moves:
|
|
90
|
+
- Band 1: HPF at 80–100 Hz (slope: 24 dB/oct)
|
|
91
|
+
- Band 2: Bell cut at 300–400 Hz, -2 to -3 dB, Q=1.0 (proximity/boxiness)
|
|
92
|
+
- Band 3: Dynamic EQ or Bell cut at 7–9 kHz for sibilance (set dynamically if Pro-Q 3)
|
|
93
|
+
- Band 4: High shelf boost at 10–12 kHz, +1 to +2 dB (air)
|
|
94
|
+
|
|
95
|
+
### Step 5: Add first compressor (FET-style, for control and character)
|
|
96
|
+
|
|
97
|
+
Select compressor: prefer Pro-C 2 in FET mode, fall back to JS 1175, fall back to ReaComp.
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
tool: add_fx
|
|
101
|
+
params:
|
|
102
|
+
trackIndex: [vocal track index]
|
|
103
|
+
fxName: "Pro-C2"
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Set parameters for FET style (generic genre settings; adjust for genre from genre file):
|
|
107
|
+
- Style: FET
|
|
108
|
+
- Ratio: 4:1
|
|
109
|
+
- Attack: 10–15 ms
|
|
110
|
+
- Release: 50–80 ms
|
|
111
|
+
- Threshold: Set for 4–6 dB GR while playing chorus
|
|
112
|
+
- Knee: 2–4 dB
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
tool: read_track_meters
|
|
116
|
+
params:
|
|
117
|
+
trackIndex: [vocal track index]
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Play chorus and adjust Threshold until GR meter shows 4–6 dB.
|
|
121
|
+
|
|
122
|
+
### Step 6: Add second compressor (Opto-style, for smoothing)
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
tool: add_fx
|
|
126
|
+
params:
|
|
127
|
+
trackIndex: [vocal track index]
|
|
128
|
+
fxName: "Pro-C2" # second instance
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Set parameters for Opto style:
|
|
132
|
+
- Style: Opto
|
|
133
|
+
- Ratio: 3:1–4:1
|
|
134
|
+
- Attack: 30–50 ms
|
|
135
|
+
- Release: Auto
|
|
136
|
+
- Threshold: Set for 2–3 dB GR
|
|
137
|
+
- Knee: 8–10 dB (very soft)
|
|
138
|
+
|
|
139
|
+
### Step 7: Add de-esser (if sibilance is a problem)
|
|
140
|
+
|
|
141
|
+
If spectrum analysis in Step 3 showed prominent 6–9 kHz energy, or if sibilance is audible:
|
|
142
|
+
|
|
143
|
+
Option A: Use Pro-Q 3 dynamic EQ band (set up in Step 4 above, Band 3 dynamic cut at 7–9 kHz).
|
|
144
|
+
|
|
145
|
+
Option B: Dedicated de-esser plugin if available:
|
|
146
|
+
```
|
|
147
|
+
tool: add_fx
|
|
148
|
+
params:
|
|
149
|
+
trackIndex: [vocal track index]
|
|
150
|
+
fxName: "ReaXcomp" # or any de-esser plugin
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Target: 6500–9000 Hz, threshold set so it only triggers on harsh S sounds.
|
|
154
|
+
|
|
155
|
+
### Step 8: Set up reverb send/return
|
|
156
|
+
|
|
157
|
+
Reverb should be on a dedicated return bus (send/return architecture), not as an insert.
|
|
158
|
+
|
|
159
|
+
If no reverb bus exists:
|
|
160
|
+
- Ask user to create one or use `add_track` if available
|
|
161
|
+
- Alternatively, add reverb as an insert with Dry signal at -inf dB (pure send simulation)
|
|
162
|
+
|
|
163
|
+
Reverb settings (genre-specific; these are neutral defaults):
|
|
164
|
+
- Pre-delay: 20–30 ms (separates vocal from reverb onset)
|
|
165
|
+
- RT60 / Size: 1.5–2.0s (medium hall or chamber)
|
|
166
|
+
- High-frequency damping: Moderate (reverb should be darker than the dry vocal)
|
|
167
|
+
- Mix: 100% wet on the return bus
|
|
168
|
+
|
|
169
|
+
Adjust send level from vocal to reverb bus:
|
|
170
|
+
- Dry/intimate genres: -20 to -24 dB send (reverb barely audible)
|
|
171
|
+
- Wet/ambient genres: -12 to -15 dB send (reverb is part of the sound)
|
|
172
|
+
|
|
173
|
+
### Step 9: Set up delay send (optional but recommended)
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
tool: add_fx
|
|
177
|
+
params:
|
|
178
|
+
trackIndex: [reverb return / delay return track]
|
|
179
|
+
fxName: "ReaDelay"
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Settings:
|
|
183
|
+
- Tempo-sync: 1/4 note (classic) or 1/8 note (modern)
|
|
184
|
+
- Feedback: 20–40%
|
|
185
|
+
- LPF: 6000 Hz (dark repeats, don't compete with dry)
|
|
186
|
+
- HPF: 200 Hz (keep delay from muddying bass)
|
|
187
|
+
- Send level from vocal: -12 to -20 dB
|
|
188
|
+
|
|
189
|
+
### Step 10: Final level check
|
|
190
|
+
|
|
191
|
+
Play the mix with the vocal chain active.
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
tool: read_track_meters
|
|
195
|
+
params:
|
|
196
|
+
trackIndex: [vocal track index]
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
After the compressors, the vocal output should:
|
|
200
|
+
- Average: -18 to -15 dBFS (slightly hotter than raw input to account for GR recovery)
|
|
201
|
+
- Peak: Not exceeding -6 dBFS
|
|
202
|
+
|
|
203
|
+
Adjust output gain on the second compressor if needed.
|
|
204
|
+
|
|
205
|
+
### Step 11: Save post-vocal snapshot
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
tool: snapshot_save
|
|
209
|
+
params:
|
|
210
|
+
name: "post-vocal-chain"
|
|
211
|
+
description: "Vocal chain complete: EQ + FET comp + Opto comp + reverb/delay sends"
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## FX Chain Order
|
|
215
|
+
|
|
216
|
+
The correct insert order for vocal processing:
|
|
217
|
+
|
|
218
|
+
1. **Pitch correction** (if needed — not covered by this workflow; manual setup)
|
|
219
|
+
2. **EQ** — Corrective EQ first (HPF, problem frequencies)
|
|
220
|
+
3. **FET compressor** — First compression stage; character and control
|
|
221
|
+
4. **Opto compressor** — Second stage; smoothing and transparency
|
|
222
|
+
5. **De-esser** — After compression (compression can make sibilance worse)
|
|
223
|
+
6. **Saturation** (optional — adds warmth, presence)
|
|
224
|
+
7. **EQ (optional second EQ)** — Additive EQ after dynamics if needed
|
|
225
|
+
8. **Output trim** — Level matching after chain
|
|
226
|
+
|
|
227
|
+
Sends go to: Reverb bus, Delay bus (post-fader sends by default in REAPER).
|
|
228
|
+
|
|
229
|
+
## Verification
|
|
230
|
+
|
|
231
|
+
After building the chain, verify:
|
|
232
|
+
|
|
233
|
+
1. Vocal sits above the mix in the 1–4 kHz presence range without harshness
|
|
234
|
+
2. No audible compression pumping or breathing on sustained notes
|
|
235
|
+
3. Sibilant S sounds are controlled but not lispy
|
|
236
|
+
4. Reverb adds space without washing the vocal into the mix
|
|
237
|
+
5. Vocal cuts through when listening at low monitoring levels
|
|
238
|
+
|
|
239
|
+
## Common Pitfalls
|
|
240
|
+
|
|
241
|
+
- **Reversing compressor order**: FET first (character), then Opto (smoothing). Not the other way.
|
|
242
|
+
- **De-esser before compression**: Compression amplifies sibilance; de-ess after the compressors.
|
|
243
|
+
- **Reverb as insert**: Always use send/return for reverb. Insert reverb doubles the dry signal internally and causes comb filtering.
|
|
244
|
+
- **Too much attack time on FET comp**: If the attack is slow (>30 ms), the compressor catches the middle of the word, not the consonant. Vocals need 10–15 ms attack.
|
|
245
|
+
- **Not checking sibilance after compression**: A vocal that sounds fine raw may have harsh S sounds after 6+ dB of compression. Always check sibilance with the chain active.
|
|
246
|
+
- **Long reverb pre-delay causing rhythmic issues**: If the reverb onset is delayed 50+ ms, it can sound like an echo rather than space. 20–30 ms is the sweet spot.
|