$ ./tuner --mode=violin
VIOLIN TUNER
STATUS: NO_PERMISSION
Microphone access is required for the tuner to work. Click below to grant permission.
// powered by Web Audio API
FFT Size
Higher values = better frequency resolution but slower
Smoothing Time Constant0.80
0 = no smoothing, 1 = maximum smoothing

// Detection Thresholds
Clarity Threshold0.9000
Threshold for selecting peaks. Higher values require stronger correlation for pitch detection
RMS Threshold0.0009
Minimum signal strength to detect (lower = more sensitive)
Correlation Threshold0.70
Minimum pitch clarity (lower = accepts noisier signals)
Cents Threshold5 cents
Tolerance for pitch accuracy (lower = stricter tuning)

// Frequency Stabilization
Stabilizer Window Size7
Number of readings for median filter (higher = more stable but slower)
Stabilizer Smoothing Factor0.30
EMA smoothing (lower = smoother, 1.0 = disabled)
String Change Threshold (cents)200 cents
Cents deviation to trigger string-change detection (~2 semitones = 200)
String Change Confirm Count2
Consecutive "far" readings needed to confirm a string change
Snap Threshold (cents)1.5
If output changes less than this, hold previous value (reduces jitter)

// Frequency Range
Min Detection Frequency (Hz)130 Hz
Lowest frequency to detect (e.g., 80 Hz for bass)
Max Detection Frequency (Hz)1100 Hz
Highest frequency to detect (e.g., 2000 Hz for violin)
Output Min Frequency (Hz)130 Hz
Filter out frequencies below this (sanity check)
Output Max Frequency (Hz)1100 Hz
Filter out frequencies above this (sanity check)