Custom component: Reaper DAW integration

Reaper DAW integration - Smart Home meets Home Recording

https://github.com/custom-components/hacs

If you like my work please consider supporting:

REAPER is a complete digital audio production application for computers, offering a full multitrack audio and MIDI recording, editing, processing, mixing and mastering toolset. REAPER supports a vast range of hardware, digital formats and plugins, and can be comprehensively extended, scripted and modified.

Open your Home Assistant instance and start setting up a new integration.

Features

  • monitoring current play state of REAPER instance
  • media_player for transport actions (rewind, stop, play, pause, fast-forward) and volume
  • enabling/disabling metronome
  • enabling/disabling repeat
  • starting and stopping recording
  • a service for running REAPER actions, start recording, undo and redo

Sensors

  • switch.metronome
  • switch.repeat
  • switch.record
  • media_player.reaper
  • sensor.number_of_tracks
  • sensor.time_signature
  • sensor.play_state

Manual installation

Place custom_components/reaper directory inside custom_components dir and restart Home Assistant

HACS installation

This component is available on HACS default.

Configuration

Setup REAPER web interface

  1. Launch your REAPER DAW
  2. Hit Ctrl + P or go to Options > Preferences
  3. Navigate to “Control/OSC/web” menu and click “Add”
  4. From the “Control surface mode” dropdown menu choose “Web browser interface”
  5. Set the web interface port or leave default 8080
  6. Optionally set username:password
  7. Optionally set the default web interface
  8. Copy the Access URL and paste it in your browser - now your REAPER has a web interface.
  9. Hit OK in both preference windows

Setup Integration

Before starting the setup please ensure that your REAPER instance is running and its web interface is accessible from the web browser.

To configure integration in Home Assistant, go to Configuration >> Integrations >> Add integration >> REAPER DAW or use My Home Assistant link:

Open your Home Assistant instance and start setting up a new integration.

After adding integration, you can configure hostname, port and optionally username and password of REAPER’s web interface.

Configuration also allows you to specify an update interval in seconds, during which status data from REAPER will be fetched.

Hope you enjoy the integration :slight_smile: Happy automating!

Please remember to :star: the repository

2 Likes

Though I admire your effort. I do have this question: what is the use case for this? In my experience with another DAW I’m either working in that DAW or not. I’m don’t even want my phone (read HA) near my Mac when using my DAW.

Thanks @frits1980,

My use case was simple - when I’m sitting behind my drum set I wanted to remotely trigger audio recording with a Zigbee wireless button.

But there are more things you can do with it:

  • Use Google Assistant to trigger recording/playing remotely.
  • Bind wireless actuators with any Reaper’s custom command
  • Turn on “ON AIR” lights when recording
  • Trigger Recording on my Sony NEX cameras (with IR blaster like Broadlink RM4C) so that I simultaneously track audio and video
  • Put your phone on DND automatically when recording
  • Alert my wife not to open studio door when I’m tracking :wink:
2 Likes

I see. Good points. I never record, so now I know why I wouldn’t necessarily need any of it :wink:

I’ve implemented “Number of armed tracks” sensor in 0.2.2 :slight_smile:

I love this. I’m a Studio One user, and wish something like this existed for that DAW. I’d love to be able to have my AC turn off when recording and back on afterwards (if I do this manually, I always forget), turn on /off preamps / outboard gear, etc. The HA Companion App gets close with the audio input and frontmost app sensors but not quite there…

Hi I had the integration running some time ago, but I can’t seam to get it to work now. This is in the log:
Logger: homeassistant.config_entries
Source: config_entries.py:586
First occurred: 11:29:34 (8 occurrences)
Last logged: 12:10:19

Error setting up entry 192.168.178.59 for reaper
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/config_entries.py”, line 586, in async_setup
result = await component.async_setup_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/config/custom_components/reaper/init.py”, line 43, in async_setup_entry
coordinator = ReaperDataUpdateCoordinator(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/config/custom_components/reaper/init.py”, line 91, in init
self.update_interval = update_interval
^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py”, line 207, in update_interval
self._update_interval_seconds = value.total_seconds() if value else None
^^^^^^^^^^^^^^^^^^^
AttributeError: ‘int’ object has no attribute ‘total_seconds’

Can you help out?

Same error here, new to HA, not sure how to resolve it.

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 635, in __async_setup_with_context
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/reaper/__init__.py", line 43, in async_setup_entry
    coordinator = ReaperDataUpdateCoordinator(
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/reaper/__init__.py", line 91, in __init__
    self.update_interval = update_interval
    ^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 218, in update_interval
    self._update_interval_seconds = value.total_seconds() if value else None
                                    ^^^^^^^^^^^^^^^^^^^
AttributeError: 'int' object has no attribute 'total_seconds'