Craft killer guitar riffs and chord progressions in your browser. A powerful web-based music tool for musicians, producers, and songwriters.
π Live Demo: riffforge.thegridbase.com
- Interactive Chord Library - Browse and play hundreds of chord voicings
- Root Note Selection - Transpose chords to any key instantly
- Multiple Tuning Modes - Standard, Drop D, Open G, and more
- Vibe Modes - Switch between Melodic, Harmonic, and Rhythmic styles
- Real-time Audio Playback - Powered by Tone.js Web Audio API
- Distortion Switch - Add grit and character to your sound
- Chord Locking - Lock chord families while exploring variations
- Visual Feedback - Intuitive UI with chord cards and selectors
- Zero Latency - Optimized audio engine for smooth performance
- Responsive Design - Works on desktop and tablet devices
- Modern UI - Clean, musician-friendly interface
- Node.js 18+ and npm
- Modern web browser with Web Audio API support
-
Clone the repository
git clone https://github.com/cankilic-gh/RiffForge.git cd RiffForge -
Install dependencies
npm install
-
Run the development server
npm run dev
-
Open your browser
Navigate to http://localhost:5173
Note: Audio requires user interaction (click anywhere) to initialize due to browser autoplay policies.
RiffForge/
βββ components/ # React components
β βββ ChordCard.tsx # Individual chord display
β βββ DistortionSwitch.tsx # Audio effect toggle
β βββ RootSelector.tsx # Root note selector
β βββ TuningSelector.tsx # Guitar tuning selector
β βββ VibeSelector.tsx # Musical style selector
βββ services/ # Core services
β βββ audioEngine.ts # Tone.js audio engine
βββ utils/ # Utility functions
β βββ musicTheory.ts # Music theory calculations
βββ constants.ts # Chord library and constants
βββ types.ts # TypeScript type definitions
βββ App.tsx # Main application component
- Vite 6.2 - Next-generation build tool
- React 19.2 - UI library
- TypeScript 5.8 - Type safety
- Tone.js 15.1 - Web Audio API framework
- Synth engines
- Effects processing
- Audio scheduling
- Vite - Fast HMR and optimized builds
- Vercel - Deployment platform (configured)
- Click anywhere to initialize audio (browser requirement)
- Select a root note (E, A, D, G, B, etc.)
- Choose a tuning mode (Standard, Drop D, etc.)
- Pick a vibe (Melodic, Harmonic, Rhythmic)
- Click chord cards to hear them play
- Toggle distortion for a heavier sound
- Click a chord card to lock its family
- Locked chords remain active while you explore variations
- Change tuning or vibe to unlock automatically
- Experiment with different tunings - Each tuning mode offers unique chord voicings
- Combine vibe modes - Switch between melodic and rhythmic for dynamic progressions
- Use distortion sparingly - Great for rock/metal styles, but can mask chord clarity
RiffForge uses music theory to:
- Transpose chords to any root note
- Generate chord voicings based on tuning
- Filter chord families by vibe mode
- Calculate intervals for accurate playback
- Standard (E-A-D-G-B-E)
- Drop D (D-A-D-G-B-E)
- Open G (D-G-D-G-B-D)
- More coming soon...
# Development
npm run dev # Start development server with HMR
# Production
npm run build # Build for production
npm run preview # Preview production build locallyThe audio engine (services/audioEngine.ts) handles:
- Web Audio Context initialization
- Synth creation and management
- Effect routing (distortion)
- Audio scheduling and playback
Edit constants.ts to add chord definitions:
export const CHORD_LIBRARY: Chord[] = [
{
id: 'chord-id',
name: 'Chord Name',
intervals: [0, 4, 7], // Semitones from root
// ... other properties
},
];- Push your code to GitHub
- Import project in Vercel
- Deploy!
The project includes vercel.json for optimal configuration.
npm run buildOutputs to dist/ directory, ready for static hosting.
- β Chrome/Edge (recommended)
- β Firefox
- β Safari (with limitations)
β οΈ Mobile browsers (limited Web Audio support)
Note: Web Audio API requires user interaction to initialize. Always click/tap before playing audio.
This project is private and proprietary.
Can Kilic
- Portfolio: cankilic.com
- GitHub: @cankilic-gh
- More tuning modes (Open D, DADGAD, etc.)
- Chord progression builder
- MIDI export
- Recording functionality
- Metronome integration
- Scale visualization