分析和转换Pro Tools文本导出

ptulsconv的Python项目详细描述


Build Status

Upload Python Package

抽搐

阅读Pro工具文本导出并生成XML、JSON、报表

简单的例子

现在我们主要使用ptulsconv在Pro工具会话中转换ADR注释 我们可以将其导入到Filemaker Pro中。在

% ptulsconv STAR_WARS_IV_R1_ADR_Notes_PT_Text_Export.txt > SW4_r1_ADR_Notes.xml
% xmllint --format SW4_r1_ADR_Notes.xml
<?xml version="1.0"?>
<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
  <ERRORCODE>0</ERRORCODE>
  <PRODUCT NAME="ptulsconv" VERSION="0.0.1"/>
  <DATABASE DATEFORMAT="MM/dd/yy" LAYOUT="summary" 
    NAME="STAR_WARS_IV_R1_ADR_Notes_PT_Text_Export.txt" 
    RECORDS="84" TIMEFORMAT="hh:mm:ss"/>
  <METADATA>
    <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Title" TYPE="TEXT"/>
    <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Supervisor" TYPE="TEXT"/>
    <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Client" TYPE="TEXT"/>
    <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Scene" TYPE="TEXT"/>
    <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Version" TYPE="TEXT"/>
    <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Reel" TYPE="TEXT"/>
    <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Start" TYPE="TEXT"/>
    [... much much more] 

安装

在站点上安装的最简单方法是使用pip

^{pr2}$

这将在主机上安装必要的库,并通过 入口点ptulsconv。在终端窗口中,键入ptulsconv -h以获取可用选项的列表。在

操作理论

Avid Pro Tools导出由制表符分隔的文本文件,该文件由多个部分组成,语法不均匀,通常 不能把Filemaker或其他工具放进去。此工具接受从Pro Tools导出的文本并生成 FMPXMLRESULT模式中的XML文件,Filemaker Pro可以直接将其导入到新表中。在

在默认模式下,所有的剪辑都被解析并转换成事件的平面列表,每个事件一行 包含开始和结束时间、曲目名称、会话名称等的剪辑。时间码被解析并转换为帧计数 还有几秒钟。然后对文本进行分析以获得描述性的元标记,并将这些标记分配给输出列表中的列。在

片段名称中的字段

曲目名称、曲目注释和剪辑名称也可以包含元标记或“字段”,以便将其他列添加到 输出。因此,如果剪辑具有以下名称:

Fireworks explosion {note=Replace for final} $V=1 [FX] [DESIGN]

此剪辑的行输出将包含值的列:

...PT.Clip.NamenoteVFXDESIGN...
...Fireworks explosionReplace for final1FXDESIGN...

可以通过三种方式在片段名称中定义这些字段:

  • $NAME=VALUE创建一个名为NAME的字段,其值为VALUE。在
  • {NAME=VALUE}创建一个名为NAME的字段,其值为VALUEVALUE在这种情况下可以包含空格或任何 字符到右括号。在
  • [NAME]创建一个名为NAME的字段,其值为NAME。这可用于创建布尔值字段;在 输出时,带有字段的剪辑将具有该字段,而没有字段的剪辑将具有空值的列。在

例如,如果两个剪辑命名为:

"Squad fifty-one, what is your status?" [FUTZ] {Ch=Dispatcher} [ADR]

"We are ten-eight at Rampart Hospital." {Ch=Gage} [ADR]

输出将包含以下范围:

^{tb2}$

曲目名称和标记中的字段

在曲目名称和曲目注释中设置的字段将应用于该曲目上的each剪辑。如果一个跟踪评论 包含文本{Dept=Foley}例如,该轨迹上的每个剪辑在“Dept”列中将有一个“Foley”值。在

同样,在会话名称上设置的字段将应用于会话中的所有剪辑。在

在标记和标记注释中设置的字段将应用于在该标记之后完成为的所有剪辑。领域 在会议中,从早餐到晚餐,in标记是累积应用的。应用于剪辑的最新标记有 优先级,因此如果一个标记在另一个标记之后,但都定义了一个字段,则后面的标记中的值

这里需要注意的是,在剪辑名称上设置的字段总是具有最高优先级。如果在剪辑中设置了字段 名称,同一字段上设置的轨迹,以剪辑上设置的值为准。在

使用@将字段应用于片段的范围

以“@”开头的剪辑名称不会包含在CSV输出中,但其字段将应用于中的剪辑 它的时间范围在较低的轨道上。在

如果轨迹1有一个名为@ {Sc=1- The House}的剪辑,则在该范围内的较低轨迹上的任何剪辑都将具有 具有该值的字段Sc。在

使用&组合剪辑

以“&;”开头的剪辑名将其解析后的剪辑名追加到前面的提示和下面的字段中 将应用提示(后面的剪辑优先)。夹子不需要接触,将组合在一起 排成一排输出。第一个剪辑的开始时间将成为行的开始时间和结束时间 最后一个剪辑的时间将成为行的完成时间。在

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

推荐PyPI第三方库


热门话题
java使用jstl比较jsp中的日期对象   java JSF convertDateTime渲染前一天   java当重定向回另一个servlet时,如何显示错误消息?   当ulimit已更改为unlimit时,java无法增加Wildfly的“最大打开文件数”   Java和SWT:线程和侦听器   Java文件API跨网络复制文件   java如何使用闹钟。安卓系统中的动作\解除\警报   java无法将BLOB保存到数据库(ORA01460:未实现或不需要有意义的转换)   这个for循环的java复杂性   多行上的java正则表达式   spring mvc Java多URL模式,无扩展   java 安卓 json向文本添加超链接   Java泛型和转换   JavaSpringFramework。数据存储库。反应性。反应性积存。save()在从CompletableFuture调用时不持久化数据。运行异步   java ValidationException:调用TraversableResolver。isReachable()引发了异常   java将位图设置为具有特定高度的ImageView   Java:限制字符串中的字符   如何在java中将字节[]类型转换为证书类型?   javascript使用基于java的逻辑编写TinyMCE自定义插件