AudioReactiveDriver - by casual

Drive one thing with the music that is playing. One plugin instance per target.

QUICK START
1. Add Plugin > AudioReactiveDriver, on any atom (a SubScene or Empty is fine).
2. AUDIO column: set "Audio source atom" to the atom playing your music, keep the band on "Kick 40 - 120 Hz".
3. TARGET column: pick the target atom and the target type.
4. Press "Pulse test (1s)" to check the mapping without music.

TARGET TYPES
- Light intensity: a light atom's intensity parameter. Try Output 0.05 -> 2.5.
- Clothing material param: item -> layer -> value, taken from the material Params tab
  (Alpha Adjust, Gloss, Specular Intensity, Specular Fresnel, bumpiness, texture offsets).
  Fading a garment on the bass: value "Alpha Adjust", Output 0 -> -1 (or tick Invert).
- Iris material param: nothing to pick. The plugin finds the iris / eye material on the atom itself and
  moves TWO values at once, each with its own range:
      Spec texture offset  min -> max   (default 0 -> 1)
      Spec intensity       min -> max   (default 1 -> 10)
  Selected material is shown in the status line. "Use param range" pulls the real min/max of both params.

NOTES
- Invert flips the mapping (loud = less). Response curve shapes the hit: 2 is snappy, 0.5 is soft.
- Feel "EQ follow" is smooth (attack/release in seconds); "Kick punch" hits instantly and falls linearly.
- Every instance registers a float named "Level", so VaM triggers can be driven from the same beat.
- Multiple instances share one audio analysis per frame - many drivers cost one FFT.
- Timeline can keyframe Active, Gain, Noise gate, Attack, Release, Response curve, Output min/max and the
  iris ranges, but do not animate the same value the driver writes - the two fight per frame.

This package ships PRE-COMPILED (AudioReactiveDriver.dll). The C# sources are in the Source folder
for reading and rebuilding. They are outside the Custom folder on purpose: VaM's bundled Mono compiler
crashes on this source, so the plugin must be loaded as a DLL.
