reaper的reascript python api的python包装器
python-reap的Python项目详细描述
严重
reapy
是一个很好的pythonic包装器,它围绕着REAPER的非常不发音的ReaScript Python API。
内容
安装
- 首先从
pip
: 安装
pip install python-reapy
- 运行:
python -m reapy
将打印到python dll和配置脚本的路径。
如果尚未在reaper中启用python,请转到options>;首选项…>;插件>;重新编写脚本。选中enable python for use with reascript,并填写python dll目录的自定义路径和force reascript to use specific python.dll以及python dll的目录路径和文件名。
通过运行相应的reascript(actions>;show action list>;reascript:load,启用
reapy
dist api。并浏览脚本路径)。
你们都准备好了!现在,您可以作为任何标准python模块从reaper内部或外部导入reapy
。
而不是创建包含以下内容的新reascript:
fromreaper_pythonimport*RPR_ShowConsoleMsg("Hello world!")
您可以打开常用的python shell并键入:
>>>importreapy>>>reapy.print("Hello world!")
用法
reascript api
所有reascript api函数都可以在子模块reapy.reascript_api
中的reapy
中使用。注意,在reascript python api中,所有函数名都以"RPR_"
开头。在reapy
中删除了不必要的伪名称空间。因此,您应该调用reapy.reascript_api.GetCursorPosition
,以便触发reaper_python.RPR_GetCursorPosition
。参见下面的示例。
>>>fromreapyimportreascript_apiasRPR>>>RPR.GetCursorPosition()0.0>>>RPR.SetEditCurPos(1,True,True)>>>RPR.GetCursorPosition()1.0
注意,如果安装了SWS extension,它提供的附加reascript函数将在reapy.reascript_api
中可用,并且在reaper内部和外部也可用。
reapy
api
reapy
的目的是提供一个更具pythonic特性的api,作为reascriptapi的替代品。下面是执行上述示例的reapy
方法。
>>>importreapy>>>project=reapy.Project()# Current project>>>project.cursor_position0.0>>>project.cursor_position=1>>>project.cursor_position1.0
translation table将reascript函数与其对应的reapy
匹配。
性能
当从reaper内部使用时,reapy
的性能几乎与本机reascript api相同。但如果从外部使用,则性能会更差。更准确地说,由于外部api调用是在reaper内部的defer
循环中处理的,因此每秒只能有大约30到60个调用。在时间关键的上下文中,应该使用reapy.inside_reaper
上下文管理器。
>>>importreapy>>>project=reapy.Project()# Current project>>># Unefficient (and useless) call>>>bpms=[project.bpmfor_inrange(1000)]# Takes at least 30 seconds...>>># Efficient call>>>withreapy.inside_reaper():...bpms=[project.bpmfor_inrange(1000)]...>>># Takes only 0.1 second!
文件
查看documentation,特别是API guide和Translation Table以获取更多信息。
贡献
目前,大约有一半的reascript api有一个对应的reapy
,文档还远远不够好,还有很多bug等着被发现。请随意检查contribution guide来改进项目!
作者
roméo després-RomeoDespres
许可证
这个项目是在麻省理工学院的许可下授权的-请参阅LICENSE.txt文件了解详细信息。