A modern web application for music analysis, visualization, and education built with Next.js and TypeScript.
Notalyzr is a powerful music analysis tool that combines modern web technologies with advanced music theory concepts. It provides a comprehensive platform for musicians, educators, and enthusiasts to analyze, visualize, and interact with musical content.
- Real-time music notation rendering
- Interactive music theory learning tools
- AI-powered music analysis and recommendations
- MIDI file processing and visualization
- Audio playback and analysis capabilities
- Customizable music theory visualizations
- Cloud-based collaboration features
- Music students and educators
- Music theorists and analysts
- Composers and songwriters
- Music technology enthusiasts
- Music educators
- Music notation visualization using OpenSheetMusicDisplay
- Interactive music theory components
- AI-powered music analysis
- Real-time audio playback using Web Audio API
- Music theory data visualization with Recharts
- Modern UI components using Mantine and Radix UI
- Cloudflare deployment support
- Firebase integration for backend services
- TypeScript for type safety and development efficiency
.
├── src/ # Source code
├── components.json # Component configuration
├── docs/ # Documentation
├── music_theory.json # Music theory data
├── next.config.ts # Next.js configuration
├── tailwind.config.ts # Tailwind CSS configuration
└── wrangler.jsonc # Cloudflare configuration
- Framework: Next.js 15.2.3
- Language: TypeScript
- UI Components: Mantine, Radix UI
- Styling: Tailwind CSS
- State Management: Zustand, Valtio
- Form Handling: React Hook Form
- Music Processing: Tone.js, WebAudioFont
- Data Visualization: Recharts
- AI Integration: OpenAI, Genkit
- Database: Firebase
- Deployment: Cloudflare Pages
- Authentication: Firebase Auth
- Cloud Functions: Firebase Functions
- Node.js (latest LTS version)
- npm or yarn
- Firebase CLI (for backend development)
- Cloudflare CLI (for deployment)
- Clone the repository
- Install dependencies:
npm install
- Create a
.env.local
file with required environment variables:
NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domain
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
# ... other required env variables
- Start the development server:
npm run dev
-
The application will be available at
http://localhost:9002
-
For AI development:
npm run genkit:dev
- For AI development with watch mode:
npm run genkit:watch
Build the application:
npm run build
Preview the build:
npm run preview
Deploy to Cloudflare:
npm run deploy
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, please:
- Check the documentation in the
docs
directory - Open an issue on the GitHub repository
- Contact the maintainers directly
- OpenSheetMusicDisplay for music notation rendering
- Tone.js for audio processing
- Firebase for backend services
- Cloudflare for deployment infrastructure
- All contributors and users who have helped shape this project