PHPackages                             jordanpartridge/conduit-dj - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. jordanpartridge/conduit-dj

ActiveLibrary[CLI &amp; Console](/categories/cli)

jordanpartridge/conduit-dj
==========================

Intelligent DJ automation for Conduit - beatmatching, smart queues, and AI-driven music curation

v0.1.0(9mo ago)06MITPHPPHP ^8.2

Since Jul 31Pushed 9mo agoCompare

[ Source](https://github.com/jordanpartridge/conduit-dj)[ Packagist](https://packagist.org/packages/jordanpartridge/conduit-dj)[ RSS](/packages/jordanpartridge-conduit-dj/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (10)Versions (2)Used By (0)

🎧 Conduit DJ
============

[](#-conduit-dj)

An intelligent DJ automation component for [Conduit](https://github.com/conduit-ui/conduit) that provides beatmatching, smart queue management, and AI-driven music curation powered by Laravel Prism.

[![Latest Version on Packagist](https://camo.githubusercontent.com/9920a168952abed520ea38830d0af2be052d39f18723d4df3851b4f2c84aa615/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a6f7264616e7061727472696467652f636f6e647569742d646a2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/jordanpartridge/conduit-dj)[![GitHub Tests Action Status](https://camo.githubusercontent.com/0da8492664bb796618f6cc01e4ef98c6732b6b12d8490ee7290112c455772a26/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6a6f7264616e7061727472696467652f636f6e647569742d646a2f74657374732e796d6c3f6272616e63683d6d6173746572266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/jordanpartridge/conduit-dj/actions?query=workflow%3Atests+branch%3Amaster)[![Total Downloads](https://camo.githubusercontent.com/f77bed557edcda07060601e2768352444a525507284b1790591765963739bf7f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6a6f7264616e7061727472696467652f636f6e647569742d646a2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/jordanpartridge/conduit-dj)

🚀 Features
----------

[](#-features)

- **🎵 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

📦 Installation
--------------

[](#-installation)

### Via Conduit (Recommended)

[](#via-conduit-recommended)

```
conduit install dj
```

### Via Composer

[](#via-composer)

```
composer global require jordanpartridge/conduit-dj
```

### Requirements

[](#requirements)

- PHP 8.2+
- Conduit 2.0+
- [conduit-spotify](https://github.com/jordanpartridge/conduit-spotify) (with event dispatching)
- [conduit-knowledge](https://github.com/jordanpartridge/conduit-knowledge)
- Spotify Premium account

🎮 Usage
-------

[](#-usage)

### Start DJ Session

[](#start-dj-session)

```
# 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
```

### Control Commands

[](#control-commands)

```
# Check current status
conduit dj status

# Analyze current track
conduit dj analyze

# View smart queue
conduit dj queue

# Stop session
conduit dj stop
```

### Auto-DJ Modes

[](#auto-dj-modes)

```
# 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
```

### Output Formats

[](#output-formats)

```
# JSON output for integration
conduit dj status --format=json

# Table format
conduit dj queue --format=table

# Markdown for documentation
conduit dj analyze --format=markdown
```

🧠 How It Works
--------------

[](#-how-it-works)

### Beatmatching Algorithm

[](#beatmatching-algorithm)

The 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

### AI-Powered Features (via Laravel Prism)

[](#ai-powered-features-via-laravel-prism)

- Analyzes track moods and emotional content
- Generates contextual track recommendations
- Creates natural language descriptions of music
- Learns from skip patterns and play duration

### Learning System

[](#learning-system)

- 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

🗺️ Roadmap
----------

[](#️-roadmap)

### Phase 1: Core Functionality (v1.0) 🚧

[](#phase-1-core-functionality-v10-)

- 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

### Phase 2: Intelligence Layer (v1.1) 🔮

[](#phase-2-intelligence-layer-v11-)

- 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

### Phase 3: Advanced Features (v1.2) 🚀

[](#phase-3-advanced-features-v12-)

- 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

### Phase 4: Professional Features (v2.0) 💫

[](#phase-4-professional-features-v20-)

- Live streaming integration
- DJ mix recording
- Advanced crossfading techniques
- Genre-specific mixing rules
- Collaborative playlists
- DJ battle mode
- Integration with DJ hardware

🔧 Configuration
---------------

[](#-configuration)

```
// 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,
    ],
];
```

🧪 Development
-------------

[](#-development)

```
# Install dependencies
composer install

# Run tests
composer test

# Code formatting
composer lint

# Static analysis
composer analyse

# Run all quality checks
composer quality
```

### Testing

[](#testing)

```
# Unit tests
./vendor/bin/pest --group=unit

# Feature tests
./vendor/bin/pest --group=feature

# Integration tests
./vendor/bin/pest --group=integration
```

🤝 Contributing
--------------

[](#-contributing)

Contributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details.

### Development Workflow

[](#development-workflow)

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Write tests for your feature
4. Implement your feature
5. Run quality checks (`composer quality`)
6. Commit your changes
7. Push to the branch
8. Create a Pull Request

🐛 Known Issues
--------------

[](#-known-issues)

- Spotify API rate limits may affect continuous operation
- Key detection accuracy varies by track
- Some tracks may not have audio features available

📚 Documentation
---------------

[](#-documentation)

- [Architecture Overview](CLAUDE.md)
- [API Reference](docs/api.md)
- [Configuration Guide](docs/config.md)
- [Event System](docs/events.md)

🔗 Related Projects
------------------

[](#-related-projects)

- [Conduit](https://github.com/conduit-ui/conduit) - The extensible CLI framework
- [conduit-spotify](https://github.com/jordanpartridge/conduit-spotify) - Spotify integration
- [conduit-knowledge](https://github.com/jordanpartridge/conduit-knowledge) - Knowledge system
- [Laravel Prism](https://github.com/echolabsdev/prism) - AI integration

📄 License
---------

[](#-license)

The MIT License (MIT). Please see [License File](LICENSE) for more information.

🙏 Credits
---------

[](#-credits)

- [Jordan Partridge](https://github.com/jordanpartridge)
- [All Contributors](../../contributors)

🎵 Fun Facts
-----------

[](#-fun-facts)

- 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

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance57

Moderate activity, may be stable

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

285d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a6bb27de88a541a632427686306c8fc56366d72582f6a3316d20500efe7971f3?d=identicon)[conduit-ui](/maintainers/conduit-ui)

---

Top Contributors

[![jordanpartridge](https://avatars.githubusercontent.com/u/9040417?v=4)](https://github.com/jordanpartridge "jordanpartridge (8 commits)")

---

Tags

cliconduitconduit-componentlaravellaravel-zerophpclilaravelautomationcomponentspotifymusicdjconduitconduit-componentbeatmatching

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/jordanpartridge-conduit-dj/health.svg)

```
[![Health](https://phpackages.com/badges/jordanpartridge-conduit-dj/health.svg)](https://phpackages.com/packages/jordanpartridge-conduit-dj)
```

###  Alternatives

[laravel-zero/framework

The Laravel Zero Framework.

3371.4M369](/packages/laravel-zero-framework)[nunomaduro/laravel-console-menu

Laravel Console Menu is an output method for your Laravel/Laravel Zero commands.

815412.0k48](/packages/nunomaduro-laravel-console-menu)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
