A ready-to-use feature extractor instance.
Ownership: the caller owns the returned instance and may call reset() as needed. This extractor
is purely in-memory (no WebAudio nodes); audio capture/cleanup is owned elsewhere (e.g. by an
AudioEngine).
Time units: internal tunings are expressed in milliseconds and Hz. Per-frame timing is
provided later to the extractor via step({ deltaSeconds, nowMs, audioState }).
Creates a MusicFeatureExtractor using the project’s default tuning.