Giving Brainwav a three-button control surface

How I mapped a three-button device to Brainwav’s room lighting, voice conversations, daily briefing, and music controls.

By Jed May ·

I tried using a small three-button device as a physical control surface for Brainwav. After some connection problems, I got the button mappings set up and confirmed the microphone works. I must say - it’s working phenomenally!

I mapped the first button to the room lights: a single press toggles them, a double press selects bright work lighting, and holding the button dims toward off until release. The original dimming felt too slow, so I had it changed to use bigger steps with less delay between them.

The second button handles voice. A single press opens a conversation, and a double press requests the daily briefing. I left its hold gesture unassigned instead of forcing another command into the layout.

The third button controls music. A single press plays or pauses, a double press skips, and holding it toggles mute on the computer speakers.

Microphone behavior was the awkward part. It took some work to get it behaving the way I wanted, but in the end I confirmed the microphone was working. The api conversation modes are game- changing.

I also wanted music and Brainwav speech to stop fighting over the same output. The change I made is supposed to keep music on the speakers while briefing and conversation audio go to a connected headset when one’s available. Voice sessions are supposed to lower the music temporarily and bring it back afterward, with speaker and microphone fallbacks if the preferred devices aren’t there. I also turned off song-change notifications.

I’ve remapped buttons a few times to better fit my workflow. Having a tiny remote with 3 buttons, 3 commands each, 9 possibilities, controlling anything in my smart home and server that I want is really opening my eyes to some interesting possibilities.

An unhandled error has occurred. Reload 🗙