Skip to main content

A REAPER project file (RPP) parser using WDL implementation

Project description

RPPXML

A Python library for parsing and manipulating REAPER project files (RPP) using WDL implementation.

Features

  • Parse RPP files into Python objects
  • Manipulate RPP content programmatically
  • Write modified content back to RPP files
  • Support .rpp, RTrackTemplate, RfxChain, and more
  • Type hints for better IDE support

Installation

pip install rppxml

Requirements

  • Python 3.10 or later
  • C++ compiler with C++14 support

Development Setup

  1. Clone the repository with submodules:
git clone --recursive https://github.com/IcEarthlight/rppxml.git
cd rppxml
  1. Install development dependencies:
pip install -r requirements.txt

Usage

import rppxml
from rppxml import RPPXML

# parse from file
project: RPPXML = rppxml.load("project.rpp")

# parse from string
content: str = """
<REAPER_PROJECT 0.1 "6.75/linux-x86_64" 1681651369
  <TRACK
    NAME "Track 1"
  >
>
"""
project: RPPXML = rppxml.loads(content)

# access data
print(project.params)  # [0.1, "6.75/linux-x86_64", 1681651369]
track: RPPXML = project.children[0]
print(track.name)      # "TRACK"
print(track.params)    # []
print(track.children)  # [['NAME', 'Track 1']]

# create new content
track: RPPXML = RPPXML("TRACK", params=[], children=[
    ["NAME", "New Track"]
])

# write to string
rpp_str: str = rppxml.dumps(track)

# write to file
rppxml.dump(track, "output.rpp")

Building from Source

Using setuptools:

python setup.py build

Testing Using VSCode

Copy .vscode/project-settings.json to .vscode/settings.json and go to the Testing view to run tests.

Contributing

  1. Fork the repository
  2. Create your feature branch
  3. Make your changes
  4. Run the tests
  5. Submit a pull request

Acknowledgments

  • Uses WDL (Cockos WDL) for RPP parsing
  • Built with pybind11 for Python bindings

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

rppxml-0.1.2.tar.gz (16.1 kB view details)

Uploaded Source

File details

Details for the file rppxml-0.1.2.tar.gz.

File metadata

  • Download URL: rppxml-0.1.2.tar.gz
  • Upload date:
  • Size: 16.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for rppxml-0.1.2.tar.gz
Algorithm Hash digest
SHA256 ced6ff5541e40a63bb4dbd01100ad76ea1d175ad68e455505de1695941740807
MD5 44b3849a61208aae1c84d59acb314ef7
BLAKE2b-256 b77a1eaa02742f282eb9f5ed5098fb7d4b2cfdf5d1bf13e765ed0ac50b3f7fae

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