QuickTuner is a lightweight, multiscale guitar & bass chromatic tuner for MacOS. Designed with Apple's Liquid Glass aesthetic.
- String-by-String Workflow — One active string at a time. Navigate with
←→arrow keys, click a string pill, or swipe. Zero friction. - Chromatic Needle + Cents Readout — Large circular gauge with a floating glass needle. Locks center with a satisfying pulse animation when in tune (±2 cents).
- Adjustable Reference Pitch — Set A4 from 420–444 Hz. One-click presets for 440 Hz, 432 Hz, and 420 Hz.
- Multi-Instrument Support — 6, 7, and 8-string guitar; 4, 5, and 6-string bass.
- 30+ Preset Tunings — Standard, drop, open, and modal tunings. DADGAD, Drop D, Half-Step Down, and many more.
- Custom Tuning Creator — Build and save your own tunings. Persisted between launches.
- Audio Input Selector — Choose from any Core Audio input device (built-in mic, USB interface, Bluetooth). Selection persists.
- YIN Pitch Detection — Sub-cent accuracy using the YIN autocorrelation algorithm via Apple's Accelerate framework. No third-party dependencies.
- Universal Binary — Runs native on both Apple Silicon and Intel Macs.
- Liquid Glass Design — Full
NSVisualEffectViewvibrancy, layered frosted-glass cards, dark and light mode support.
| Requirement | Minimum |
|---|---|
| macOS | 15.0 Sequoia |
| Xcode | 15.0+ |
| Swift | 6.0+ |
| Architecture | arm64 (Apple Silicon) or x86_64 (Intel) |
Microphone permission is required for pitch detection. QuickTuner will prompt you on first launch.
Grab the latest notarized .dmg from the Releases page, mount it, and drag QuickTuner.app to your Applications folder.
1. Clone the repository
git clone https://github.com/User123331/quicktuner.git
cd quicktuner2. Open in Xcode
open Package.swiftXcode will resolve the Swift Package and open the project automatically.
3. Select a scheme and build
- Set the scheme to QuickTuner
- Set the destination to My Mac
- Press
⌘Rto build and run
Or build from the command line:
swift build -c releaseThe built binary will be at .build/release/QuickTuner.
4. Run tests
swift test- Grant microphone access when prompted on first launch.
- Select your instrument — Guitar or Bass, with string count.
- Pick a tuning — Standard or any alternate from the dropdown.
- Tune string by string — The lowest string is active by default. Play it, watch the needle center, then press
→to move to the next string. - All Tuned badge appears when every string shows a checkmark.
Keyboard shortcuts
| Key | Action |
|---|---|
← / → |
Previous / Next string |
Space |
Reset to first string |
Reference pitch
Open Settings (⌘,) to adjust the A4 reference frequency.
Available Presets: 440, 432, and 420 Hz
| Layer | Technology |
|---|---|
| UI | SwiftUI (macOS 15+) |
| Audio Capture | AVAudioEngine / Core Audio |
| Pitch Detection | Accelerate / vDSP — YIN autocorrelation |
| Persistence | UserDefaults + Codable + actor-isolated JSON |
| Build | Swift Package Manager (no external dependencies) |
quicktuner/
├── Source/
│ ├── App/ # Entry point, app lifecycle
│ ├── Audio/ # AVAudioEngine, RingBuffer, device management
│ ├── AudioBridge/ # Objective-C++ Core Audio bridge
│ ├── DSP/ # PitchDetector, YINConfig
│ ├── Models/ # Note, Tuning, InstrumentType, StringInfo
│ ├── Services/ # TuningLibrary, PersistenceService, PresetTunings
│ ├── ViewModels/ # TunerViewModel
│ └── Views/ # All SwiftUI views and components
├── Tests/ # Unit and integration tests
├── Resources/ # Asset catalogs
└── Package.swift
Contributions are welcome. Please open an issue first to discuss what you'd like to change.
- Fork the repo
- Create your feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -m 'feat: add my feature') - Push to the branch (
git push origin feature/my-feature) - Open a Pull Request
MIT — see LICENSE for details.
