Description
ReFret makes fretboard memorization genuinely fun. Unlike dry exercises or flashcards, this is an engaging game that you'll actually want to play. Best of all, you don't need your guitar — practice anywhere you have a spare moment, whether you're waiting in line, on a break, or relaxing at home. The bite-sized rounds fit perfectly into your schedule, letting you build skills gradually without pressure.
All premium features are unlockable by earning ReFret dollars through gameplay — no real money purchases required. Fully customize your practice by concentrating on any fret range for as long as necessary, tailoring the difficulty to your current skill level. ReFret's consistent representation of sharps and flats using piano key conventions provides excellent memory aids for learning which frets contain accidentals. Unlike most fret memory apps that overwhelm you with too many possible wrong answers, ReFret Maestro streamlines the process: you only see two choices at a time — one correct, one incorrect — keeping you focused and making steady progress.
TWO GAME MODES
Beginner Console — Perfect for building foundational skills
Six answer buttons, one per string, each showing a note name
Tap the correct note for the highlighted string
Notes are revealed progressively before each round begins
Builds confidence with clear visual feedback
Maestro Console — For serious players who demand precision
No note names shown — pure memorization challenge
Advanced gameplay with streak tracking and multipliers
2x multiplier at 25 correct answers, 3x at 50
Rolling 60-segment streak meter for motivation
KEY FEATURES
Comprehensive Neck Coverage — Learn notes from open strings to fret 19 across all six strings
Customizable Experience — Choose from Classic, Tweed, and Maple console skins
Flexible Learning — Set starting fret, repetitions, direction, and progression to match your skill level
Virtual Currency System — Earn points through gameplay to unlock premium features like High Frets (12+) and Landscape mode
Optimized for All Devices — Clean, intuitive interface designed for iPhone
PERFECT FOR
Guitar students learning note positions
Players wanting to break out of "box patterns"
Teachers looking for a practice tool for students
Anyone wanting to master the fretboard once and for all
Stop guessing notes. Start knowing them. Download ReFret and transform your guitar playing today.
What's new (v1.4)
Major Features
1. Speed Run Mode (New Maestro Lesson Style)
Races player through every fret 0→max→0 against the clock
Records best time per High Frets / Progression combo shown on HOME tab
Full scoring, streaks, and multipliers apply
35 unit tests added (SpeedRunTests)
Timer starts on first correct answer (not on game start)
Direction state (playDirectionRawValue) never mutated during Speed Run — only local isDescendingPhase flag changes
Key invariant: speedRunBestTime written to @AppStorage in advanceGame before speedRunFinished = true
2. BeginnerGameEngine Refactor
Extracted all logic from extension BeginnerGameplayView into standalone BeginnerGameEngine class
Uses @Observable pattern
View is now a thin coordinator
42 unit tests added (BeginnerGameEngineTests with MockAudioEngines)
Fixed Swift type-checker timeout during compilation
Bug Fixes
3. Runtime State Bugs
Fixed maestroUsesFlats to use isDescendingPhase (runtime state) instead of isPhaseDescending (stored setting)
Fixed Maestro neck slide positioning to use isDescendingPhase for correct vertical slide direction
Fixed Beginner lesson-style change to trigger handleRoundResetButton when switching Sequential ↔ Chord
Added guard to prevent reset during screensaver mode
Added reloadAndResume() method to SharedAudioEngine for Bluetooth route changes
Audio interruption observer now automatically restarts and resumes after phone calls, Siri, etc.
Unit tests added in RuntimeStateTests.swift
4. Picker Selection Fixes
Fixed Beginner Style picker to always show a valid selection
Fixed Maestro Style picker to always show a valid selection
Fixed Progression picker unlock in Speed Run mode
5. Note Name Unicode
All note name data now uses characters consistently across the codebase
UI Improvements
6. Button Readability
Control panel buttons: darker text on tweed (pure black vs 0.92 opacity)
Transport buttons: darker text on tweed (pure black vs 0.92 opacity)
Added dark groove line (1pt, 0.15 opacity) in middle of buttons for visual depth
Extracted background view to separate variable to fix Swift compiler timeout
7. Speed Run Layout
Streak meter moved behind clock digits for better landscape layout
Clock positioning improved for landscape orientation
Documentation & Testing
Added Shared State cross-cutting concerns section
Documented all v1.4 changes and invariants
Updated build status to "Ready for submission"
9. Test Coverage
77 new unit tests total across v1.4:
42 tests in BeginnerGameEngineTests
35 tests in SpeedRunTests
10 tests in RuntimeStateTests
Summary Statistics
12 commits since v1.3 (Build 6)
77 new unit tests
2 major features (Speed Run, BeginnerGameEngine refactor)
6 bug fixes (runtime state, pickers, unicode)
2 UI improvements (button readability, layout)