Python wrapper for REAPER DAW REST API
Project description
python-reaperdaw
Python wrapper for REAPER DAW REST interface.
Please refer to ReaTeam's web interface modding documentation for API insights.
Setup in Reaper
- Launch your Reaper DAW
- Hit
Ctrl + P
or go to Options > Preferences - Navigate to "Control/OSC/web" menu and click "Add"
- From the "Control surface mode" dropdown menu choose "Web browser interface"
- Set the web interface port or leave default
8080
- Optionally set username:password
- Optionally set the default web interface
- Copy the Access URL and paste it in your browser - now your Reaper has a web interface.
- Hit OK in both preference windows
Example usage
import aiohttp
import asyncio
import json
from reaperdaw import Reaper
async def main(host="localhost", port="8080", username="", password=""):
async with aiohttp.ClientSession() as session:
reaper = Reaper(session, host, port, username, password)
# Sets Master Volume to 0db (maximum volume)
await reaper.setMasterVolume(1)
status = await reaper.getStatus()
response = json.loads(status)
print("Status:", status)
print("Number of tracks:", response["number_of_tracks"])
print("Time signature:", response["time_signature"])
print("Play state:", response["play_state"])
print("Repeat:", response["repeat"])
print("Metronome:", response["metronome"])
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
getStatus response
{
"tracks": [
{
"index": 0,
"name": "MASTER",
"flags": [],
"volume": "1.000000",
"pan": "0.000000",
"last_meter_peak": "-1500",
"last_meter_pos": "-1500",
"width_pan2": "1.000000",
"panmode": "0",
"sendcnt": "0",
"recvcnt": "0",
"hwoutcnt": "1",
"color": "#000000"
},
{
"index": 1,
"name": "Track 1",
"flags": [],
"volume": "1.000000",
"pan": "0.000000",
"last_meter_peak": "-1500",
"last_meter_pos": "-1500",
"width_pan2": "1.000000",
"panmode": "3",
"sendcnt": "0",
"recvcnt": "0",
"hwoutcnt": "0",
"color": "#764e78"
},
{
"index": 2,
"name": "Track 2",
"flags": ["selected"],
"volume": "1.000000",
"pan": "0.000000",
"last_meter_peak": "-1500",
"last_meter_pos": "-1500",
"width_pan2": "1.000000",
"panmode": "3",
"sendcnt": "0",
"recvcnt": "0",
"hwoutcnt": "0",
"color": "#d9c25b"
}
],
"repeat": true,
"metronome": false,
"time_signature": "4/4",
"beatpos": {
"position_seconds": "0.000000000000000",
"full_beat_position": "0.000000000000000",
"measure_cnt": "0",
"beats_in_measure": "0.000000000010000"
},
"play_state": "stopped",
"transport": {
"playstate": "stopped",
"position_seconds": "0.000000",
"repeat": true,
"position_string": "1.1.00",
"position_string_beats": "1.1.00"
},
"number_of_tracks": 2
}
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
Built Distribution
File details
Details for the file python-reaperdaw-0.0.3.tar.gz
.
File metadata
- Download URL: python-reaperdaw-0.0.3.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aaf8b223cd924e82a024e52e280675ff1072644f757161ae8aba1566a26dcca7 |
|
MD5 | 4157495b817f1a1fb846730f782be5ad |
|
BLAKE2b-256 | fa239000d4167ec0e637d679df488f5e881115d2096f21ae67003195f55a87d4 |
File details
Details for the file python_reaperdaw-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: python_reaperdaw-0.0.3-py3-none-any.whl
- Upload date:
- Size: 6.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 182c8fd9677aa73158ec4edf981fe5b24ccfa04b72f0106a646e3741d60bce18 |
|
MD5 | 7c996b2eef251372e20d9eb7fb0836ef |
|
BLAKE2b-256 | c62bbc94a9aeedbfd6df4ebc04ad41a2c2f8d1168ea728c0fe1ef4ca050737ab |