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. Output 0.05 -> 2.5 works well.
- Clothing material param: item -> layer -> value, from the material Params tab (Alpha Adjust, Gloss,
  Specular Intensity, Specular Fresnel, bumpiness, texture offsets). Alpha Adjust with Output 0 -> -1 fades a garment.
- Hair alpha: one entry per worn hair part. Uses the hairstyle's Alpha Adjust param when it has one, otherwise
  writes alpha into that part's materials. Output min/max is your range - set it to the lowest/highest the value
  can go ("Use param range" fills it in for you).
- Hair colour: hair part + colour channel (Root, Tip, Specular, or All three) + "Colour intensity min/max".
  This scales the brightness of the colour you painted, keeping hue and saturation. 0 = black, 1 = as painted.
  Two instances = root and tip reacting independently.
- Iris material param: no setup. Finds the eye material and drives Specular Texture Offset and Specular Intensity
  together, each with its own min/max.
- Morph (favourites): only the morphs you marked as favourite in VaM's morph tab, for this person.
  Morph min/max are -1 to 1 by default.

NOTES
- Invert flips the mapping. 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.
- Timeline can keyframe the plugin's own controls, but do not animate the same value the plugin writes.
- "Log scan" writes what the plugin can see on the target atom (hair parts, colour params, morphs) into the VaM log.
- "Reload morph favourites" re-reads the .fav files after you star new morphs in VaM.

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.
