Skip to main content

A program that allows controlling Philips Hue lights using a midi keyboard.

Project description

philips-hue-midi

Overview

Control your Philips Hue lights with your piano. This project is inspired by the perceptual phenomenon of Synesthesia. See it in action below:

Getting Started

What You'll Need

  • Philips Hue Lights & Bridge
  • A MIDI Keyboard

Installation & Setup

  1. Connect your MIDI Keyboard: Attach your MIDI keyboard to your computer and ensure it's powered on.

  2. Configuration: Copy the config.example.toml as config.toml. Set lights under channels.0 (master channel) to the list of Philips Hue Lights you want to control. See full-config.example.toml for a full list of configuration options.

  3. Run Program: Navigate to project root and install the necessary dependencies using uv:

    uv run python main.py config.toml
    

Technical Details

The program samples incoming MIDI events sixty times per second (defined by SAMPLE_RATE). Controllers are responsible for taking this list of midi events (of variable size, M) and converting them to a list of midi events of size N, where N is the number of channels. These channels are defined in the config.toml file and are collections of lights and their configurations.

Currently, the default controller is the note_controller which takes in M notes and maps to 12 channels, based on pitch class. For example, the first channel will be activated if the note C is played, the second channel for C#, and so forth. Therefore, your configuration should have 12 channels.

Note that channel 0 is the master channel and is used for turning lights on or off and is the default fallback channel if the controller outputs a channel not configured. All lights you wish to control should be included in this channel.

Notes

You may have to set the MIDO_DEFAULT_INPUT environment variable to the name of your MIDI device if the correct midi device is not automatically detected. You can find the name of your MIDI device by running: bash uv run mido-ports.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

philips_hue_midi-2.1.1.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

philips_hue_midi-2.1.1-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file philips_hue_midi-2.1.1.tar.gz.

File metadata

  • Download URL: philips_hue_midi-2.1.1.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.8

File hashes

Hashes for philips_hue_midi-2.1.1.tar.gz
Algorithm Hash digest
SHA256 02549aa1741bca2a647a00ab22971ef91f88c666313a0edd33bb46d5e5ed96e2
MD5 63d4c6a9844f4be816fef1a06607d998
BLAKE2b-256 3d1faa6c9363fd845689ae2e16f3c8c680c58d2c40d3e2de307e857316178b3e

See more details on using hashes here.

File details

Details for the file philips_hue_midi-2.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for philips_hue_midi-2.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 518497d7677b6d8ae71d025d84bc7c650f500147d2b98bd91af8d5cc325838af
MD5 a1bdf5b19422168aa44359c61622755e
BLAKE2b-256 ff6315b71bfeb95161b2fb44d3bc3f7b715932231b2059607eb64db0c7b280be

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page