All Projects → Perlence → rpp

Perlence / rpp

Licence: BSD-3-Clause license
Read and write Reaper RPP files with Python

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to rpp

install-scripts
Scripts to get you running with a professional audio quality Linux system.
Stars: ✭ 75 (+70.45%)
Mutual labels:  reaper
vscode-ply
API Automated Testing
Stars: ✭ 40 (-9.09%)
Mutual labels:  ply
blender-ply-import
A Python module for faster import of PLY models in Blender
Stars: ✭ 19 (-56.82%)
Mutual labels:  ply
mamba
Toy general-purpose interpreted language written in Python
Stars: ✭ 16 (-63.64%)
Mutual labels:  ply
astutils
Bare essentials for building abstract syntax trees, and skeleton classes for PLY lexers and parsers.
Stars: ✭ 13 (-70.45%)
Mutual labels:  ply
miniply
A fast and easy-to-use PLY parsing library in a single c++11 header and cpp file
Stars: ✭ 29 (-34.09%)
Mutual labels:  ply
UnityPlyLoader
Load ply mesh file in Unity use vcglib
Stars: ✭ 23 (-47.73%)
Mutual labels:  ply
jsusfx
Opensource Jesusonic FX implementation
Stars: ✭ 54 (+22.73%)
Mutual labels:  reaper
Reaper-Waapi-Transfer
Reaper extension for quickly importing rendered audio files into Wwise.
Stars: ✭ 62 (+40.91%)
Mutual labels:  reaper
pirrot
A radio repeater controller (supporting both simplex and duplex operation modes) for the RaspberryPi.
Stars: ✭ 25 (-43.18%)
Mutual labels:  reaper
jsfx
A free collection of JS (JesuSonic) plugins for Reaper
Stars: ✭ 49 (+11.36%)
Mutual labels:  reaper
Hackey-Trackey
A LUA tracker plugin for REAPER 5.x and up. Designed to mimick the pattern editor in Jeskola Buzz.
Stars: ✭ 81 (+84.09%)
Mutual labels:  reaper
ReaperJPN-Phroneris
製品版REAPER日本語化パッチ(森)
Stars: ✭ 41 (-6.82%)
Mutual labels:  reaper

RPP

Description

RPP is a format used to describe REAPER projects. This package is designed to be RPP parser/emitter and uses PLY as parser framework.

Examples

Import the package:

>>> import rpp

Decode RPP:

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

Transform elements into RPP:

>>> 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'],
...     ]))
'<REAPER_PROJECT 0.1 4.32 1372525904\n  RIPPLE 0\n  GROUPOVERRIDE 0 0 0\n  AUTOXFADE 1\n>\n'

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

>>> 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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].