reaper的reascript python api的python包装器

python-reap的Python项目详细描述


严重

reapy是一个很好的pythonic包装器,它围绕着REAPER的非常不发音的ReaScript Python API

内容

  1. Installation
  2. Usage
  3. Contributing
  4. Author
  5. License

安装

  1. 首先从pip
  2. 安装
pip install python-reapy
  1. 运行:
python -m reapy

将打印到python dll和配置脚本的路径。

  1. 如果尚未在reaper中启用python,请转到options>;首选项…>;插件>;重新编写脚本。选中enable python for use with reascript,并填写python dll目录的自定义路径force reascript to use specific python.dll以及python dll的目录路径和文件名。

  2. 通过运行相应的reascript(actions>;show action list>;reascript:load,启用reapydist 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内部和外部也可用。

reapyapi

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 guideTranslation Table以获取更多信息。

贡献

目前,大约有一半的reascript api有一个对应的reapy,文档还远远不够好,还有很多bug等着被发现。请随意检查contribution guide来改进项目!

作者

roméo després-RomeoDespres

许可证

这个项目是在麻省理工学院的许可下授权的-请参阅LICENSE.txt文件了解详细信息。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java是从此类字符串中提取数据的最佳方法   filenotfoundexception Java FileOutputStream Windows/Linux   java在SQLite数据库Android SDK中搜索特定字符串   java使用键值访问jsp中Map<Long,Map<String,Object>>的内容   java奇怪的HTMLeditor工具包问题   在java中使用数组只计算字母   每个应用程序都可以有自己独立的Java SDK吗   java如何将jasper报告生成的PDF文件保存在一个项目文件夹中   java BigDecimal包装器:静态字段为零   解码Base64图像时出现java IllegalArgumentException(非法的Base64字符)   将int转换为字节在Java和Actionscript中产生不同的结果   java什么使不可变对象在没有安全发布技术的情况下发布?   java将字节数据写入目录   一个计算器中有多个操作的java问题   面向对象Java重写是如何工作的   带hibernate的java ClassCastException   指向最后一个对象的java对象列表   java单元测试spring项目中的Get请求