Perlence
rpp
Python

Read and write Reaper RPP files with Python.

Last updated May 14, 2026
79
Stars
17
Forks
3
Issues
0
Stars/day
Attention Score
5
Language breakdown
No language data available.
โ–ธ Files click to expand
README

RPP ===

RPP is a format used to describe REAPER <http://reaper.fm>_ projects. This package is designed to be an RPP parser/emitter and uses PLY <http://www.dabeaz.com/ply/>_ as a parser framework.

Examples


Import the package:

.. code-block:: python

>>> import rpp

Decode RPP:

.. code-block:: python

>>> r = rpp.loads("""\ """) >>> r Element(tag='REAPER_PROJECT', attrib=['0.1', '4.32', '1372525904'], children=[ ['RIPPLE', '0'], ['GROUPOVERRIDE', '0', '0', '0'], ['AUTOXFADE', '1'], ])

Transform elements into RPP:

.. code-block:: python

>>> from rpp import Element >>> rpp.dumps( ... Element(tag='REAPER_PROJECT', attrib=['0.1', '4.32', '1372525904'], children=[ ... ['RIPPLE', '0'], ... ['GROUPOVERRIDE', '0', '0', '0'], ... ['AUTOXFADE', '1'], ... ])) '\n'

`Element mimics the interface of xml.etree.ElementTree.Element_. You can perform querying operations with findall, find, iterfind. Note that attribute and text predicates are not supported.

.. _xml.etree.ElementTree.Element: https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element

.. code-block:: python

>>> groupoverride = r.find('.//GROUPOVERRIDE') >>> groupoverride ['GROUPOVERRIDE', '0', '0', '0'] >>> groupoverride[1:] = ['9', '9', '9'] >>> r Element(tag='REAPER_PROJECT', attrib=['0.1', '4.32', '1372525904'], children=[ ['RIPPLE', '0'], ['GROUPOVERRIDE', '9', '9', '9'], ['AUTOXFADE', '1'], ])

Dependencies


  • attrs _
  • ply `_

ยฉ 2026 GitRepoTrend ยท Perlence/rpp ยท Updated daily from GitHub