A beautiful, ad-free guitar tuner built with Flutter.
No ads, no subscriptions, just pure tuning perfection for musicians.
- β Real-time frequency detection using FFT + autocorrelation
- β Visual gauge with needle responsiveness and smooth animations
- β Color-coded feedback: Flat (β) = Red/Left, Sharp (β―) = Yellow/Right, In Tune = Green
- β Precision within Β±1.5 cents for perfect tuning
- β Automatic string detection with manual override option
- β Amplitude-based signal validation for clean readings
- β Subtle gradient tint shifts (red β orange β green) reinforce tuning status
- Guitar: Standard, Drop D, Drop C, Open G, DADGAD
- Bass Guitar: 4-string standard tuning
- Ukulele: Standard tuning (G C E A)
- Violin: Standard tuning (G D A E)
- Mandolin: Standard tuning (G D A E)
- Custom tuning creation and management
- Modern gradient design with smooth animations
- Dark/Light theme support for stage performance
- Intuitive string selection with visual feedback
- Responsive design for all screen sizes
- Haptic feedback when perfectly in tune
- Color-blind safe visual indicators
- High contrast ratios for visibility
- Voice-over support
- Reference frequency adjustment (A4 = 430-450 Hz in 0.5 Hz increments)
- Microphone sensitivity levels
- Theme selection (Light/Dark)
- Language selection (English/Portuguese)
- Haptic feedback toggle
- Keep screen on during tuning
| Main Tuner | Settings | Tunings |
|---|---|---|
![]() |
![]() |
![]() |
- Flutter 3.9.0 or higher
- Dart SDK 3.0.0 or higher
- Android Studio / VS Code with Flutter extension
- Physical device or emulator with microphone access
-
Clone the repository
git clone https://github.com/pbalduino/menio_tuner.git cd menio_tuner -
Install dependencies
flutter pub get
-
Run the app
flutter run
# Check Flutter installation
flutter doctor
# Run tests
flutter test
# Build for Android
flutter build apk
# Build for iOS
flutter build ioslib/
βββ main.dart # App entry point
βββ app.dart # App configuration
βββ screens/ # UI screens
β βββ tuner_screen.dart # Main tuning interface
β βββ settings_screen.dart # Settings and preferences
β βββ tunings_screen.dart # Tuning selection
βββ widgets/ # Reusable UI components
β βββ tuner_gauge.dart # Custom gauge widget
βββ services/ # Core business logic
β βββ audio_processor.dart # Audio input processing
β βββ signal_processing.dart # FFT and frequency analysis
βββ data/ # Data models and storage
βββ tunings.dart # Tuning definitions
- State Management: StatefulWidget (upgrading to Riverpod)
- Audio Processing: β
FFT + Autocorrelation via
flutter_audio_capture - UI Framework: Flutter Material Design
- Platform Integration: β
Native audio permissions via
permission_handler
- Buffer Size: 4096 samples @ 44.1 kHz (~93ms latency)
- Frequency Range: 80-2000 Hz (covers guitar fundamentals)
- Noise Filtering: Low-pass filter at 2 kHz
- Smoothing: Exponential moving average for stable readings
- β Audio processing pauses when app is backgrounded
- β Efficient memory management with proper disposal
- β Smooth 60fps animations with minimal jank
- β Battery-optimized microphone usage
- β Lifecycle-aware audio stream management
- β Permission-based audio access control
- β Optional debug mode with logging & diagnostics overlay
-
UI Design & Navigationβ -
Real-time Audio Input Processingβ (#1) -
Tuning Selection Navigationβ (#2)
-
Frequency Smoothingβ (#3) -
Fix Default String Selectionβ (#17) -
Debug Loggingβ (#18) - Internationalization (i18n) (#19)
- Haptic Feedback (#4)
- Color-blind Accessibility (#5)
- Dark/Light Theme Support (#7)
- State Management (Riverpod) (#9)
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests if applicable
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Dart Style Guide
- Use
flutter analyzeto check for issues - Format code with
dart format . - Write tests for new features
This project is licensed under the MIT License - see the LICENSE file for details.
- Flutter team for the amazing framework
- Open source audio processing libraries
- Musicians who provided feedback and testing
- Contributors who help make this project better
- π Bug Reports: Create an issue
- π‘ Feature Requests: Create an issue
- π¬ Questions: Start a discussion


