+
+ {pitchData ? (
+ {pitchData.note}
+ ) : (
+ —
+ )}
+
+
+
+
+
+
+ {fretted && currentTuning && (
+
+
+
+ )}
+
+ {!pitchData && (
+
+ Play a note — it shows here. Mic is{' '}
+ {settings.showTuningMeter ? 'on' : 'controlled by the mic button below'}.
+
+ )}
+
+ );
+};
diff --git a/src/hooks/usePitchDetector.ts b/src/hooks/usePitchDetector.ts
index da65228..cb9478a 100644
--- a/src/hooks/usePitchDetector.ts
+++ b/src/hooks/usePitchDetector.ts
@@ -9,7 +9,7 @@ import {
NOTE_DISPLAY_STABLE_FRAMES,
} from '../AppConfig';
-interface PitchData {
+export interface PitchData {
frequency: number;
midi: number;
note: string;
diff --git a/src/types/SettingsTypes.ts b/src/types/SettingsTypes.ts
index e13e347..203285e 100644
--- a/src/types/SettingsTypes.ts
+++ b/src/types/SettingsTypes.ts
@@ -134,7 +134,7 @@ export interface AppSettings {
instrument: string;
rhythm: RhythmSettings;
zenMode: boolean;
- gameMode: 'sight_reading' | 'ear_training' | 'phrase';
+ gameMode: 'sight_reading' | 'ear_training' | 'phrase' | 'assist';
customMinFret?: number;
customMaxFret?: number;
autoPlaySightReading?: boolean;