An interactive web application for visualizing and learning guitar scales across the entire fretboard. Master guitar scales with intuitive fretboard patterns, CAGED system visualization, realistic audio playback, and multiple learning modes. Built with Next.js, React, and TypeScript.
- Clickable Note Playback - Click any note on the fretboard to hear realistic guitar tones
- Authentic Guitar Sound - Multi-harmonic synthesis with proper filtering and envelope shaping
- Web Audio API - High-quality audio generation with plucked-string characteristics
- Natural Decay - Notes fade naturally like real guitar strings
- Authentic Fret Markers - Traditional guitar inlay dots on frets 3, 5, 7, 9, 12, 15, 17, 19, 21, 24
- Double Dots on 12th Fret - Properly spaced octave markers like real guitars
- String Names Display - Shows tuning (E-A-D-G-B-E) for easy reference
- Full-Width Mobile Layout - Always spans complete viewport width on mobile devices
- Responsive Sizing - Dynamic fret and note sizing for optimal touch interaction
- Major (Ionian) and Natural Minor (Aeolian) scales
- Harmonic Minor - Minor scale with natural 7th (1-2-♭3-4-5-♭6-7) - Available in 3NPS mode only
- Melodic Minor - Minor scale with natural 6th and 7th (1-2-♭3-4-5-6-7) - Available in 3NPS mode only
- Minor Pentatonic (5 boxes) with authentic note patterns
- Minor Hexatonic (Minor Pentatonic + 2nd degree)
- Multiple Viewing Modes:
- CAGED System - 5 chord shapes with triad chord tones highlighted over pentatonic patterns
- Pentatonic Boxes - 5 classic pentatonic positions
- 3 Notes Per String (3NPS) - 7 modal positions (Ionian through Locrian) + Harmonic/Melodic Minor
- Hexatonic Boxes - 5 pentatonic boxes with added 2nd degree
- Full Neck View - All notes in the scale across the entire fretboard (works with all scale types)
- 12 Musical Keys with enharmonic equivalents (C, C#/Db, D, etc.)
- Smart Notation Toggle - Automatically converts between sharps and flats
- Note Names vs Scale Degrees - Switch between absolute and relative notation
- Real-time Key Display - Shows current key and relative major/minor
- Responsive Design - Optimized for mobile, tablet, and desktop
- Scale Formulas - Shows interval patterns (1-2-♭3-4-5-♭6-♭7) for each mode
- Complete Note Display - All scale notes shown with root note highlighting
- Compact Desktop Layout - Efficient use of screen space with comprehensive information
- Mobile-First Design - Touch-optimized controls and full-width fretboard
- Visual Feedback - Hover effects and smooth transitions throughout
- Professional Styling - Modern dark theme with emerald accent colors
- 5 Classic Chord Shapes - E, D, C, A, G positions
- Triad Chord Tones - Root, 3rd, 5th highlighted within pentatonic patterns
- Visual Distinction - Clear separation between chord tones and scale tones
- Chord-Scale Relationships - Perfect for understanding how chords and scales connect
- Node.js 18.0 or later
- npm, yarn, or pnpm
-
Clone the repository:
git clone https://github.com/engageintellect/scale-ninja.git cd scale-ninja
-
Install dependencies:
npm install # or yarn install # or pnpm install
-
Run the development server:
npm run dev # or yarn dev # or pnpm dev
-
Open http://localhost:3000 in your browser.
- Select a Key: Choose from all 12 musical keys with enharmonic equivalents
- Choose a Scale:
- Major and Minor scales (available in all modes)
- Harmonic Minor and Melodic Minor (3NPS mode only)
- Select View Mode:
- 3NPS: Shows 3-notes-per-string patterns (7 positions) + supports all scale types
- Full Neck: Displays all notes in the scale across the entire fretboard
- Pentatonic: Shows 5 pentatonic box positions (Major/Minor only)
- Hexatonic: Shows pentatonic boxes with added 2nd degree (Major/Minor only)
- Customize Display:
- Toggle between note names and scale degrees
- Switch between sharp (#) and flat (♭) notation
The application is built with a modular component architecture for maintainability and reusability:
-
Components:
Header
- Application title and brandingControlPanel
- Interactive controls for key, scale, mode, and notation selectionKeyDisplay
- Real-time display of current key, relative key, and mode contextFretboard
- Dynamic SVG fretboard with responsive note bubble renderingField
- Reusable form field wrapper component
-
Core Logic:
ScaleEngine
- Scale generation algorithms for all modes (3NPS, pentatonic, hexatonic, full neck)types
- TypeScript definitions and musical constants
- Next.js 15 - React framework with App Router and Turbopack
- TypeScript - Type-safe JavaScript
- Tailwind CSS v4 - Utility-first CSS framework
- React 19 - UI library
- Iconify - Comprehensive icon library
- SVG - Scalable vector graphics for fretboard rendering
- Vercel - Deployment platform
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by various guitar scale visualization tools and music theory resources
- Built with the help of the amazing open-source community
Developed with ❤️ by @engageintellect You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.