Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Releases: GizzZmo/DJ

1.2

31 Mar 00:48
@GizzZmo GizzZmo
9109cf8
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

What's Changed

  • ci(deps): bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #24
  • Ensure security workflow installs portaudio headers for pyaudio build by @Copilot in #25
  • Add GUI screenshots to README by @Copilot in #26
  • Refresh screenshots and document capture tooling by @Copilot in #27

Full Changelog: 1.1.0...1.2

Contributors

dependabot
Assets 2
Loading

1.1.0

07 Dec 16:42
@GizzZmo GizzZmo
e216f54
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

What's Changed

  • ci(deps): bump actions/checkout from 5 to 6 by @dependabot[bot] in #10
  • Fix CI failures: Remove Python 3.7, add virtual display support, enable artifacts by @Copilot in #11
  • Implement advanced DJ mixer features: real-time effects, MIDI, recording, web interface, beat detection, playlists, waveforms, device routing by @Copilot in #12
  • Fix security vulnerabilities: localhost-only default binding and bandit severity filtering by @Copilot in #13
  • Add GitHub Copilot instructions for repository by @Copilot in #15
  • Fix Python 3.8 incompatibility and code formatting issues by @Copilot in #16
  • Fix test assertion for AI-Powered window title by @Copilot in #17
  • Fix Unicode encoding error in test_mixer.py for Windows compatibility by @Copilot in #18
  • Fix CLI EOF handling and add OS badges by @Copilot in #19
  • Fix Windows CLI encoding error with UTF-8 environment variables by @Copilot in #20
  • Implement PyAudio with ASIO driver support by @Copilot in #21

Full Changelog: 0.0.8...1.1.0

Contributors

dependabot
Loading

DJ

11 Sep 10:17
@GizzZmo GizzZmo
b3bb1f1
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

DJ

DJ is a Python-based mixer designed for seamless audio playback across multiple sound devices. Built for flexibility and performance, it enables users to mix tracks and output audio to several outputs simultaneously, making it ideal for DJs, audio engineers, and enthusiasts who need multi-device support.

DJ Mixer

A Python-based DJ Mixer application for playback on multiple sound devices. This mixer supports loading audio files, controlling volume levels, crossfading between tracks, and managing playback across different audio outputs.

Features

  • Multi-Device Audio Support: Play audio on different sound devices simultaneously
  • Audio Format Support: Compatible with MP3, WAV, OGG, FLAC, and other common formats
  • Crossfading: Smooth transitions between tracks with adjustable crossfader
  • Volume Control: Independent volume control per track plus master volume
  • Real-time Mixing: Live control over playback and mixing parameters
  • Graphical User Interface: Professional DJ mixer GUI with visual controls
  • Command-Line Interface: Interactive CLI for easy mixer control
  • Mock Testing: Test functionality without audio hardware
  • 🤖 AI-Powered Features:
    • Auto Mixing: Intelligent track analysis and automated crossfader transitions
    • Key Mixing: Harmonic key analysis and compatibility recommendations
    • Fader Effects: Smart effect suggestions based on track energy and context
    • Gemini API Integration: Configure with your own API key for advanced AI features

Installation

  1. Clone the repository:
git clone https://github.com/GizzZmo/DJ.git
cd DJ
  1. Install dependencies:
pip install -r requirements.txt

Note: For the GUI interface, tkinter is required. On most systems it's included with Python. If not available:

# Ubuntu/Debian
sudo apt-get install python3-tk
# Other systems may require different packages

Quick Start

Using the Graphical User Interface

Start the visual DJ mixer:

python dj_gui.py

The GUI provides:

  • Dual Deck Controls: Load and control two audio tracks independently
  • Visual Crossfader: Smooth transitions with real-time position display
  • Volume Sliders: Individual track volumes and master volume control
  • Playback Controls: Play, pause, stop buttons for each deck
  • File Browser: Easy track loading with standard file dialogs
  • Status Monitor: Real-time display of mixer status and track information
  • 🤖 AI Assistant: Configure Gemini API for intelligent mixing features
  • Auto Mixing: Start AI-powered automatic transitions between tracks
  • Key Analysis: Get harmonic compatibility advice for smooth mixing
  • Fader Effects: AI-suggested effects based on track characteristics

Using the Command-Line Interface

Start the interactive DJ mixer:

python dj_cli.py

Basic commands:

DJ> init # Initialize the mixer
DJ> list # Show audio files in current directory
DJ> load deck1 song1.mp3 # Load a track to deck1
DJ> load deck2 song2.wav # Load a track to deck2
DJ> play deck1 # Play deck1
DJ> volume deck1 0.8 # Set deck1 volume to 80%
DJ> crossfader 0.3 # Set crossfader position
DJ> cross deck1 deck2 # Apply crossfader between decks
DJ> status # Show mixer status
DJ> help # Show all available commands

Using the AI Features

The DJ Mixer now includes intelligent AI-powered mixing capabilities:

from ai_dj_assistant import AIDJAssistant
# Initialize AI assistant
ai = AIDJAssistant()
# Configure with Gemini API key (optional - works in mock mode without)
ai.configure_gemini("your-gemini-api-key")
# Analyze tracks for intelligent mixing
analysis = ai.analyze_track("deck1", "house_track.mp3")
print(f"Track: {analysis.tempo} BPM, Key: {analysis.key}, Energy: {analysis.energy}")
# Get AI mixing advice
advice = ai.get_auto_mixing_advice("deck1", "deck2")
print(f"Suggested crossfader position: {advice.crossfader_position}")
# Check harmonic compatibility
key_advice = ai.get_key_mixing_advice("deck1", "deck2")
print(f"Key compatibility: {key_advice['compatibility']}")
# Start automated mixing
ai.start_auto_mixing("deck1", "deck2")

AI Features:

  • Auto Mixing: Analyzes tempo, key, and energy to create smooth transitions
  • Key Mixing: Provides harmonic compatibility analysis using music theory
  • Fader Effects: Suggests optimal effects based on track characteristics
  • Mock Mode: Full functionality without requiring API key for testing

Testing Without Audio Hardware

Run the mock test to verify functionality:

python test_mixer.py

Test the GUI functionality:

python test_gui.py

Examples

Run the example demo:

python example.py

For detailed examples and audio file information:

python example.py --info

Project Structure

DJ/
├── dj_mixer.py # Core DJ mixer functionality
├── dj_gui.py # Graphical user interface with AI integration
├── dj_cli.py # Interactive command-line interface
├── ai_dj_assistant.py # AI-powered mixing assistant with Gemini API
├── test_mixer.py # Mock testing without audio hardware
├── test_gui.py # GUI functionality tests
├── test_ai_assistant.py # AI assistant functionality tests
├── demo_ai_features.py # Demo of AI capabilities
├── example.py # Example usage and demos
├── requirements.txt # Python dependencies (includes google-generativeai)
└── README.md # This file

GUI Interface

The DJ Mixer includes a professional graphical interface built with tkinter that provides visual control over all mixer functions:

GUI Features

  • Professional Layout: Traditional DJ mixer design with dual decks and central crossfader
  • File Management: Easy track loading through standard file dialogs
  • Visual Feedback: Real-time status updates and visual indicators
  • Touch-Friendly Controls: Large buttons and sliders for easy operation
  • Status Monitoring: Comprehensive display of mixer state and track information

GUI Controls

  • Initialize Button: Start the audio mixer system
  • Load Track Buttons: Browse and load audio files for each deck
  • Playback Controls: Play, pause, and stop buttons for each deck
  • Volume Sliders: Independent volume control for each track and master output
  • Crossfader Slider: Smooth balance control between left and right decks
  • Apply Crossfader: Apply the crossfader effect to the loaded tracks
  • Status Panel: Real-time display of mixer status, track info, and system messages

Audio Device Support

The mixer is designed to support multiple audio devices:

  • Main Output: Primary speakers or PA system
  • Headphone Output: DJ monitoring and cueing
  • Recording Output: For recording or broadcasting
  • Additional Outputs: Extra zones or devices

Note: Current implementation uses pygame which abstracts device selection. For production use with specific device control, consider upgrading to PyAudio with ASIO drivers.

DJ Mixing Concepts

Crossfading

  • Position 0.0: Full left deck, right deck silent
  • Position 0.5: Both decks at equal volume (center)
  • Position 1.0: Full right deck, left deck silent

Volume Control

  • Track Volume: Individual volume for each loaded track
  • Master Volume: Global volume affecting all outputs
  • Crossfader: Relative volume control between two specific tracks

Troubleshooting

Audio Issues

If you encounter audio initialization errors:

  1. Check audio system availability:
# On Linux, check ALSA/PulseAudio
pulseaudio --check -v
# Test pygame audio
python -c "import pygame; pygame.mixer.init(); print('Audio OK')"
  1. Use mock testing mode:
python test_mixer.py
  1. Install audio dependencies:
# Ubuntu/Debian
sudo apt-get install python3-pygame libasound2-dev
# Other systems may require different audio libraries

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Commit changes: git commit -am 'Add feature'
  4. Push to branch: git push origin feature-name
  5. Submit a pull request

License

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

Requirements

  • Python 3.7+
  • pygame >= 2.5.0
  • pydub >= 0.25.1
  • google-generativeai >= 0.3.0 (for AI features)

AI Configuration

To enable full AI features:

  1. Get a Gemini API key from Google AI Studio
  2. In the GUI, enter your API key in the "AI DJ Assistant" section
  3. Click "Configure AI" to enable intelligent mixing

The AI assistant works in mock mode without an API key for testing and development.

Future Enhancements

  • Real-time audio effects (EQ, filters, reverb)
  • MIDI controller support
  • Recording and export functionality
  • Web-based interface
  • Advanced device routing with PyAudio/ASIO
  • Beat detection and auto-sync
  • Playlist management
  • Visual waveform display
Loading

DJ v/0.0.7b

10 Sep 19:01
@GizzZmo GizzZmo
b3bb1f1
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

DJ v/0.0.7b Pre-release
Pre-release

DJ is a Python-based mixer designed for seamless audio playback across multiple sound devices. Built for flexibility and performance, it enables users to mix tracks and output audio to several outputs simultaneously, making it ideal for DJs, audio engineers, and enthusiasts who need multi-device support.

Skip to content

Navigation Menu

Read more
Loading

AltStyle によって変換されたページ (->オリジナル) /