A tuner and metronome web application using the Web Audio API, built with Next.js.
- Chromatic Tuner: Accurately detects instrument pitch in real-time
- Tap Tempo: Calculate BPM by tapping the screen
- Multiple Visual Styles: Choose from different UI themes
- Fully Responsive: Works on mobile and desktop devices
- Modern, responsive UI built with TailwindCSS and Shadcn/UI components
- Dark/Light mode support with next-themes
- Fully accessible components using Radix UI
- Framework: Next.js 15
- Language: TypeScript
- Styling: TailwindCSS
- UI Components: Shadcn/UI (Radix UI)
- Form Handling: React Hook Form + Zod
- Audio Processing: Web Audio API
- Package Manager: PNPM
- Analytics: Vercel Analytics
- Icons: Lucide React
- Node.js 18+
- PNPM 8+
# Clone the repository
git clone https://github.com/yourusername/tempotuner.git
cd tempotuner
# Install dependencies
pnpm install# Run local development server
pnpm dev
# Build for production
pnpm buildpnpm dev- Start the development server with Turbo modepnpm build- Build the application for productionpnpm start- Start the production serverpnpm lint- Run ESLint for code linting
tempotuner/
βββ app/ # Next.js app directory
β βββ layout.tsx # Root layout with theme provider
β βββ page.tsx # Main page component
β βββ globals.css # Global styles
βββ components/ # React components
β βββ tuner/ # Tuner components
β βββ ui/ # Shadcn UI components
βββ hooks/ # Custom React hooks
βββ utils/ # Helper functions (e.g., audio processing)
βββ public/ # Static assets
βββ styles/ # Global styles
Deploy the out directory to your favorite static hosting service.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request