54 lines
1.2 KiB
Markdown
54 lines
1.2 KiB
Markdown
# MIDI-to-Hue Controller
|
|
|
|
A modular Python application for controlling Philips Hue lights with MIDI controllers.
|
|
|
|
## Features
|
|
|
|
- Map MIDI notes and control changes to Hue light parameters
|
|
- Throttled updates to prevent overwhelming the Hue Bridge
|
|
- Configurable mappings via JSON
|
|
- LED feedback support for controller visualization
|
|
- Customizable value transformations
|
|
|
|
## Structure
|
|
|
|
This application has been refactored to follow modular design principles:
|
|
|
|
- `config.py` - Configuration management module
|
|
- `hue_controller.py` - Philips Hue bridge and light control
|
|
- `midi_controller.py` - MIDI device management
|
|
- `mapper.py` - Mapping logic between MIDI and Hue
|
|
- `main.py` - Application entry point
|
|
|
|
## Usage
|
|
|
|
1. Connect your MIDI device
|
|
2. Edit `midi_hue_config.json` to configure your mappings
|
|
3. Run `python main.py`
|
|
|
|
## Configuration
|
|
|
|
The default configuration file (`midi_hue_config.json`) contains:
|
|
|
|
```json
|
|
{
|
|
"midi_device": 1,
|
|
"update_interval_ms": 50,
|
|
"bridge_ip": "192.168.178.35",
|
|
"mappings": [
|
|
{
|
|
"midi_channel": 5,
|
|
"midi_control": 1,
|
|
"light_name": "Zimmer Decke",
|
|
"parameter": "bri",
|
|
"value_transform": "value * 2"
|
|
},
|
|
...
|
|
]
|
|
}
|
|
```
|
|
|
|
## Dependencies
|
|
|
|
- mido
|
|
- phue
|