A browser-based drum sequencer with AI-powered sound generation.
- Dynamic Drum Sequencer: Variable-length patterns with real-time editing
- AI Sound Generation: Create custom drum sounds using ElevenLabs text-to-speech
- Sample & Synthesis: Mix sample-based and synthesized drum sounds
- Real-time Playback: Low-latency audio using Tone.js
- Database-driven: SQLite backend with migration system
- Node.js (v18 or higher)
- npm
-
Clone the repository
-
Install dependencies:
npm install
-
Set up environment variables: Create a
.envfile in the root directory:ELEVENLABS_API_KEY=sk_your_api_key_hereGet your API key from ElevenLabs
-
Start the development server:
npm run dev
This will start both the frontend (Vite) and backend (Express) servers concurrently.
- Frontend: http://localhost:5173
- Backend API: http://localhost:3001
The app includes AI-powered sound generation using ElevenLabs:
- Click the "+" button to add a new track
- Select "Create a New Sound" in the sound selector
- Enter a text prompt describing the sound you want
- Adjust duration (0.5-1.5 seconds)
- Preview and accept the generated sound
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Generate coverage report
npm run test:coverage# Run linter
npm run lint
# Fix linting issues
npm run lint:fix
# Format code
npm run format
# Lint and format together
npm run lint:format- Frontend: React + Vite + Tone.js
- Backend: Express + SQLite
- State Management: Zustand
- Audio Engine: Tone.js with Web Audio API
- AI Integration: ElevenLabs Sound Generation API
The app uses SQLite with a migration system. The database is automatically initialized on first run with default sound packs and categories.
