Skip to content

nategarelik/ox-board

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

100 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

๐ŸŽ›๏ธ OX Board - Gesture-Controlled DJ Terminal

A revolutionary DJ platform with terminal aesthetics and gesture control via webcam hand tracking.

Version Next.js TypeScript License

โš ๏ธ Pre-MVP Status: OX Board is currently in active development (v0.9.0-pre-mvp). Some features are functional prototypes, while others use mock implementations. See Feature Status below.

๐Ÿš€ Quick Start

# Install dependencies
npm install

# Run development server
npm run dev

# Open http://localhost:3000

๐ŸŽจ Terminal UI - The Primary Interface

OX Board uses a retro terminal UI as its primary interface, featuring:

  • ๐Ÿ–ฅ๏ธ CRT Aesthetic: Green-on-black display with scanlines and flicker effects
  • ๐ŸŽน Full DJ Functionality: Dual decks, mixer, effects, stem separation
  • ๐Ÿ‘‹ Gesture Control: Control everything with hand gestures via webcam
  • ๐ŸŽต Professional Audio: Powered by Tone.js and Web Audio API

๐Ÿ“ Project Structure

ox-board/
โ”œโ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”œโ”€โ”€ terminal/          # ๐ŸŽฎ ACTIVE UI - Terminal interface
โ”‚   โ”‚   โ”œโ”€โ”€ offline/           # PWA & offline support
โ”‚   โ”‚   โ””โ”€โ”€ Camera/            # Gesture recognition
โ”‚   โ”œโ”€โ”€ lib/
โ”‚   โ”‚   โ”œโ”€โ”€ audio/            # Audio processing libraries
โ”‚   โ”‚   โ”œโ”€โ”€ gestures/         # Gesture detection & mapping
โ”‚   โ”‚   โ””โ”€โ”€ optimization/     # Performance utilities
โ”‚   โ”œโ”€โ”€ services/             # Core services
โ”‚   โ”‚   โ”œโ”€โ”€ audioService.ts   # Audio context management
โ”‚   โ”‚   โ”œโ”€โ”€ deckManager.ts    # Deck control system
โ”‚   โ”‚   โ””โ”€โ”€ aiStemService.ts  # AI-powered features
โ”‚   โ”œโ”€โ”€ stores/               # State management (Zustand)
โ”‚   โ””โ”€โ”€ hooks/                # React hooks
โ”œโ”€โ”€ backend/                  # Python FastAPI backend (planned - see specs/003)
โ”‚   โ”œโ”€โ”€ api/                  # API endpoints
โ”‚   โ”œโ”€โ”€ core/                 # Core backend logic
โ”‚   โ””โ”€โ”€ Dockerfile            # Container configuration
โ”œโ”€โ”€ docs/                     # ๐Ÿ“š Comprehensive documentation
โ”‚   โ”œโ”€โ”€ OPTIMAL-VISION.md     # Product roadmap & feature plan
โ”‚   โ”œโ”€โ”€ ANALYSIS-SUMMARY.md   # Codebase analysis
โ”‚   โ”œโ”€โ”€ domain/               # Business domain documentation
โ”‚   โ”œโ”€โ”€ architecture/         # System architecture
โ”‚   โ”œโ”€โ”€ patterns/             # Design patterns catalog
โ”‚   โ””โ”€โ”€ interfaces/           # API reference
โ”œโ”€โ”€ specs/                    # Feature specifications (001-004)
โ””โ”€โ”€ tests/                    # Test suites (113 tests, 85.8% passing)

๐ŸŽฏ Key Features

Terminal UI Navigation

  • Dashboard: System overview and quick stats
  • Studio: Main DJ interface with decks and mixer
  • Music Library: Track browser and management
  • Settings: Configuration and preferences

Audio Capabilities

  • ๐ŸŽš๏ธ Dual Deck System: A/B deck architecture
  • ๐ŸŽ›๏ธ Professional Mixer: EQ, filters, crossfader
  • ๐ŸŽต Stem Separation: Isolate drums, bass, vocals, other
  • ๐ŸŽน Effects Rack: Reverb, delay, filters, and more
  • ๐Ÿ“Š BPM Detection: Automatic tempo analysis
  • ๐Ÿ”Š Recording: Capture your mixes

Gesture Control

  • โœ‹ Hand Tracking: MediaPipe-powered detection
  • ๐ŸŽš๏ธ Volume Control: Vertical hand movement
  • โ†”๏ธ Crossfader: Horizontal hand position
  • ๐ŸŽ›๏ธ EQ Control: Pinch gestures for bands
  • โฏ๏ธ Playback: Open/closed hand for play/pause

๐Ÿ› ๏ธ Technology Stack

Frontend

  • Framework: Next.js 15 (App Router)
  • Language: TypeScript
  • UI: Custom Terminal UI with CSS
  • State: Zustand
  • Audio: Tone.js, Web Audio API
  • Gestures: MediaPipe, TensorFlow.js

Backend

  • Framework: FastAPI (Python)
  • Deployment: Railway
  • Audio Processing: Demucs (stem separation)
  • API: RESTful + WebSocket

Infrastructure

  • Hosting: Vercel (frontend) + Railway (backend)
  • CDN: Cloudflare
  • Database: PostgreSQL (planned)
  • Monitoring: Sentry

๐ŸŽฎ Using the Terminal UI

Keyboard Shortcuts

Space       - Play/Pause
โ† โ†’        - Navigate tabs
โ†‘ โ†“        - Adjust values
Enter      - Select/Confirm
Esc        - Cancel/Back
Tab        - Next field
Shift+Tab  - Previous field

Terminal Commands (Coming Soon)

/play deck:a              # Play deck A
/stop deck:b              # Stop deck B
/crossfade 50             # Set crossfader to center
/effect reverb amount:30  # Apply reverb effect
/bpm sync                 # Sync BPM between decks

๐Ÿ”ง Development

Available Scripts

npm run dev          # Start development server
npm run build        # Build for production
npm run start        # Run production server
npm test            # Run test suite
npm run lint        # Lint code
npm run type-check  # Check TypeScript types

Environment Variables

Create a .env.local file:

# Backend API
NEXT_PUBLIC_API_URL=https://your-railway-backend.railway.app
NEXT_PUBLIC_WEBSOCKET_URL=wss://your-railway-backend.railway.app

# Optional Services
SENTRY_DSN=your-sentry-dsn
GOOGLE_ANALYTICS_ID=your-ga-id

โœ… Feature Status

Working Features (Production-Ready)

  • โœ… Terminal UI with CRT aesthetic
  • โœ… Gesture recognition via MediaPipe
  • โœ… Audio playback with Tone.js
  • โœ… Dual deck system
  • โœ… Basic mixer controls
  • โœ… PWA support (offline capability)
  • โœ… Feature flag system (Terminal/Classic UI toggle)

Prototype Features (Functional but Limited)

  • ๐ŸŸก BPM detection (client-side only)
  • ๐ŸŸก Key detection (basic implementation)
  • ๐ŸŸก Effects rack (limited effects)
  • ๐ŸŸก Recording (browser-based)

Mock Implementations (UI Only)

  • ๐Ÿ”ด Stem separation (requires Demucs backend - see specs/003-self-hosted-demucs/)
  • ๐Ÿ”ด AI mixing suggestions (placeholder logic)
  • ๐Ÿ”ด Harmonic compatibility (basic algorithm)
  • ๐Ÿ”ด Music library management (local only)

Planned Features

  • ๐Ÿ“‹ Self-hosted Demucs backend (specs/003)
  • ๐Ÿ“‹ Real-time collaboration
  • ๐Ÿ“‹ Cloud sync for mixes
  • ๐Ÿ“‹ Mobile app (React Native)

๐Ÿ“– For complete roadmap, see docs/OPTIMAL-VISION.md

๐Ÿ—๏ธ Architecture Decisions

Why Terminal UI?

  1. Unique Identity: Stand out with retro aesthetics
  2. Performance: Lightweight, fast rendering
  3. Accessibility: Keyboard-first navigation
  4. Focus: Minimal distractions, maximum functionality

Archived UI Implementations

Previous UI implementations are preserved in ui-archive/ for:

  • Reference and learning
  • Future feature extraction
  • Design inspiration
  • Component reuse

Audio Architecture

User Input โ†’ Gesture/Keyboard โ†’ Store โ†’ Services โ†’ Audio Output
               โ†‘                    โ†“
            State โ†โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿงช Testing

# Run all tests
npm test

# Run with coverage
npm run test:coverage

# Run specific test file
npm test -- path/to/test.spec.ts

# Run in watch mode
npm run test:watch

๐Ÿ“ฆ Deployment

Frontend (Vercel)

# Automatic deployment on push to main
git push origin main

Backend (Railway)

# Deploy backend
cd backend/
railway up

๐Ÿค Contributing

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

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Tone.js - Web Audio framework
  • MediaPipe - Hand tracking technology
  • Demucs - Stem separation engine
  • Next.js - React framework
  • Railway - Backend hosting

๐Ÿ“ซ Support


Built with ๐Ÿ’š by the OX Board Team

Making DJing accessible through gesture control and terminal aesthetics

About

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors