[ config ]
$ ./tuner --mode=violin
VIOLIN
TUNER
STATUS: NO_PERMISSION
Microphone access is required for the tuner to work. Click below to grant permission.
[ GRANT ACCESS ]
// powered by Web Audio API
FFT Size
512
1024
2048
4096
8192
16384
Higher values = better frequency resolution but slower
Smoothing Time Constant
0.80
0 = no smoothing, 1 = maximum smoothing
// Detection Thresholds
Clarity Threshold
0.9000
Threshold for selecting peaks. Higher values require stronger correlation for pitch detection
RMS Threshold
0.0009
Minimum signal strength to detect (lower = more sensitive)
Correlation Threshold
0.70
Minimum pitch clarity (lower = accepts noisier signals)
Cents Threshold
5 cents
Tolerance for pitch accuracy (lower = stricter tuning)
// Frequency Stabilization
Stabilizer Window Size
7
Number of readings for median filter (higher = more stable but slower)
Stabilizer Smoothing Factor
0.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 Count
2
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)