Skip to content

brendanciccone/tempotuner

Repository files navigation

TempoTuner

A tuner and metronome web application using the Web Audio API, built with Next.js.

πŸš€ Features

  • 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

πŸ› οΈ Tech Stack

  • 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

πŸ“¦ Prerequisites

  • Node.js 18+
  • PNPM 8+

πŸš€ Getting Started

Installation

# Clone the repository
git clone https://github.com/yourusername/tempotuner.git
cd tempotuner

# Install dependencies
pnpm install

Web Development

# Run local development server
pnpm dev

# Build for production
pnpm build

πŸ“ Available Scripts

  • pnpm dev - Start the development server with Turbo mode
  • pnpm build - Build the application for production
  • pnpm start - Start the production server
  • pnpm lint - Run ESLint for code linting

πŸ—οΈ Project Structure

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

πŸ“± Deployment

Web Deployment

Deploy the out directory to your favorite static hosting service.

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ™ Acknowledgments

License

MIT

About

Tuner, metronome, and tap tempo.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published