@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.
Files changed (42) hide show
  1. package/README.md +281 -0
  2. package/claude-rules/architecture.md +39 -0
  3. package/claude-rules/development.md +54 -0
  4. package/claude-rules/lua-bridge.md +50 -0
  5. package/claude-rules/testing.md +42 -0
  6. package/claude-skills/learn-plugin.md +123 -0
  7. package/knowledge/genres/_template.md +109 -0
  8. package/knowledge/genres/electronic.md +112 -0
  9. package/knowledge/genres/hip-hop.md +111 -0
  10. package/knowledge/genres/metal.md +136 -0
  11. package/knowledge/genres/orchestral.md +132 -0
  12. package/knowledge/genres/pop.md +108 -0
  13. package/knowledge/genres/rock.md +117 -0
  14. package/knowledge/plugins/_template.md +82 -0
  15. package/knowledge/plugins/fabfilter/pro-c-2.md +117 -0
  16. package/knowledge/plugins/fabfilter/pro-l-2.md +95 -0
  17. package/knowledge/plugins/fabfilter/pro-q-3.md +112 -0
  18. package/knowledge/plugins/neural-dsp/helix-native.md +104 -0
  19. package/knowledge/plugins/stock-reaper/js-1175-compressor.md +94 -0
  20. package/knowledge/plugins/stock-reaper/rea-comp.md +100 -0
  21. package/knowledge/plugins/stock-reaper/rea-delay.md +95 -0
  22. package/knowledge/plugins/stock-reaper/rea-eq.md +103 -0
  23. package/knowledge/plugins/stock-reaper/rea-gate.md +99 -0
  24. package/knowledge/plugins/stock-reaper/rea-limit.md +75 -0
  25. package/knowledge/plugins/stock-reaper/rea-verb.md +76 -0
  26. package/knowledge/reference/common-mistakes.md +307 -0
  27. package/knowledge/reference/compression.md +176 -0
  28. package/knowledge/reference/frequencies.md +154 -0
  29. package/knowledge/reference/metering.md +166 -0
  30. package/knowledge/workflows/drum-bus.md +211 -0
  31. package/knowledge/workflows/gain-staging.md +165 -0
  32. package/knowledge/workflows/low-end.md +261 -0
  33. package/knowledge/workflows/master-bus.md +204 -0
  34. package/knowledge/workflows/vocal-chain.md +246 -0
  35. package/main.js +755 -0
  36. package/package.json +44 -0
  37. package/reaper/install.sh +50 -0
  38. package/reaper/mcp_analyzer.jsfx +167 -0
  39. package/reaper/mcp_bridge.lua +1105 -0
  40. package/reaper/mcp_correlation_meter.jsfx +148 -0
  41. package/reaper/mcp_crest_factor.jsfx +108 -0
  42. 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.