Takes — local notes and key analysis Meyda 5.6.3 (MIT), vendored unchanged from the verified npm package's dist/web/meyda.min.js. License: ./MEYDA-LICENSE.txt Official feature documentation: https://meyda.js.org/audio-features Source: https://github.com/meyda/meyda No uploads, accounts, external analysis requests or microphone access occur for the visualization. Analysis starts only after audio is loaded. Meyda extracts C-first chroma, RMS and spectral flatness using a 4096-sample Hanning window at the decoded buffer's sample rate. Pitch classes combine all octaves: these are neither individual sung notes nor fundamental pitch. The strongest channel in each window is used to avoid stereo cancellation. The perspective canvas shows measured framewise energy in 12 pitch-class lanes, with six seconds around the inspection time and future time receding into depth. It follows actual AudioContext playback at up to 20 Hz; hover previews a moment without seeking or starting playback. Slider, Shift-drag, double-click and arrow keys deliberately scrub; ordinary drag selects a range. Silent/noisy windows have no energy tiles. This is not transcription. Key estimation is a separate, approximate Krumhansl–Kessler profile matcher (Psychological Review 89, 1982, 334–368), Pearson correlation across 24 rotated major/minor profiles. It is NOT a built-in Meyda key classifier. Profiles and thresholds are explicit in key-profile.mjs. Scores are not probabilities. Source analysis samples about 12 windows/second, capped at 1800 evenly spaced windows across the entire source. Work runs in a worker in 12-window batches; only those PCM windows are copied. A replaced source cancels stale work. Cached frame results drive hover, playback and range-key estimates; none of those interactions reanalyzes the source. At most 120 sampled frames are drawn per view. Long-source temporal resolution is consequently coarse. Only the current source is cached in memory; no analysis is persisted. Frames require RMS >= .003 and spectral flatness < .35. An estimate requires at least 2 seconds, 16 qualifying frames, >=30% qualifying frames, at least 3 distinct strongest pitch classes, chroma coefficient of variation >= .35, correlation >= .65, and a >= .08 lead over the runner-up. Otherwise: Insufficient tonal evidence / Key uncertain. These are conservative heuristics, not a validated accuracy guarantee. Single tones, single chords, silence, noise, speech, changing keys, detuning, low bass, mixed genres, modes and relative major/minor ambiguity can defeat this method. Long recordings are sampled, not exhaustively analyzed. Use a sustained musical phrase and treat any named key as an estimate.