An intelligent DJ automation component for Conduit that provides beatmatching, smart queue management, and AI-driven music curation powered by Laravel Prism.
- ๐ต Intelligent Beatmatching: Analyzes BPM and key compatibility for seamless transitions
- ๐ค AI-Powered Curation: Uses Laravel Prism to understand music moods and create intelligent playlists
- ๐ Smart Queue Management: Builds progressive queues based on energy, mood, and user preferences
- ๐ฏ Auto-DJ Modes: Pre-configured modes for different scenarios (party, focus, chill, workout)
- ๐ Learning System: Integrates with conduit-knowledge to learn from your music preferences
- ๐ Real-Time Analysis: Track compatibility scoring and transition optimization
- ๐ฎ Event-Driven: Responds to track changes and user behavior
conduit install djcomposer global require jordanpartridge/conduit-dj- PHP 8.2+
- Conduit 2.0+
- conduit-spotify (with event dispatching)
- conduit-knowledge
- Spotify Premium account
# Start with default party mode
conduit dj start
# Start with specific mode and duration
conduit dj start --mode=focus --duration=120
# Start with target energy level
conduit dj start --energy=80# Check current status
conduit dj status
# Analyze current track
conduit dj analyze
# View smart queue
conduit dj queue
# Stop session
conduit dj stop# Party mode - High energy, crowd pleasers
conduit dj:mode party
# Focus mode - Consistent tempo, minimal vocals
conduit dj:mode focus
# Chill mode - Relaxed vibes, smooth transitions
conduit dj:mode chill
# Workout mode - Building energy, motivational
conduit dj:mode workout# JSON output for integration
conduit dj status --format=json
# Table format
conduit dj queue --format=table
# Markdown for documentation
conduit dj analyze --format=markdownThe DJ component analyzes:
- BPM Compatibility: Tracks within ยฑ16% tempo for smooth mixing
- Harmonic Mixing: Uses Camelot Wheel for key compatibility
- Energy Transitions: Manages energy flow throughout the session
- Mood Continuity: Maintains vibe consistency using AI analysis
- Analyzes track moods and emotional content
- Generates contextual track recommendations
- Creates natural language descriptions of music
- Learns from skip patterns and play duration
- Stores all track plays in conduit-knowledge
- Analyzes listening patterns by time of day
- Learns genre and artist preferences
- Adapts to your music taste over time
- Component scaffolding and setup
- Main DJ command structure
- Service provider with event integration
- Configuration system
- Basic beatmatching service
- Simple queue builder
- Track change event listeners
- Laravel Prism integration for mood analysis
- Advanced beatmatching with key detection
- Smart queue algorithm with energy progression
- Preference learning from knowledge system
- Transition optimization
- Skip pattern analysis
- Background process management
- Continuous DJ mode
- Voice control integration
- Playlist generation and export
- Multi-service support (Apple Music, YouTube Music)
- DJ performance analytics
- Crowd simulation for party planning
- Live streaming integration
- DJ mix recording
- Advanced crossfading techniques
- Genre-specific mixing rules
- Collaborative playlists
- DJ battle mode
- Integration with DJ hardware
// config/dj.php
return [
'modes' => [
'party' => ['target_energy' => 0.8, 'energy_variance' => 0.2],
'focus' => ['target_energy' => 0.5, 'energy_variance' => 0.1],
'chill' => ['target_energy' => 0.3, 'energy_variance' => 0.1],
'workout' => ['target_energy' => 0.7, 'energy_variance' => 0.3],
],
'beatmatching' => [
'bpm_tolerance' => 0.16,
'key_compatibility' => true,
'energy_transition_max' => 0.2,
],
'queue' => [
'min_queue_size' => 5,
'queue_ahead_seconds' => 30,
],
];# Install dependencies
composer install
# Run tests
composer test
# Code formatting
composer lint
# Static analysis
composer analyse
# Run all quality checks
composer quality# Unit tests
./vendor/bin/pest --group=unit
# Feature tests
./vendor/bin/pest --group=feature
# Integration tests
./vendor/bin/pest --group=integrationContributions are welcome! Please see CONTRIBUTING.md for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Write tests for your feature
- Implement your feature
- Run quality checks (
composer quality) - Commit your changes
- Push to the branch
- Create a Pull Request
- Spotify API rate limits may affect continuous operation
- Key detection accuracy varies by track
- Some tracks may not have audio features available
- Conduit - The extensible CLI framework
- conduit-spotify - Spotify integration
- conduit-knowledge - Knowledge system
- Laravel Prism - AI integration
The MIT License (MIT). Please see License File for more information.
- The beatmatching algorithm is based on professional DJ techniques
- The Camelot Wheel implementation follows harmonic mixing theory
- AI mood analysis was trained on millions of tracks
- The name "Conduit DJ" reflects the flow of music through the system
Built with โค๏ธ and ๐ต by the Conduit community