Pro Tools自动化控制SDK

通过C++应用和gRPC服务器实现Avid Pro Tools的自动化控制,适用于音频编辑和自动化脚本开发。

  • by jeffreygnatek
  • C++
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 jeffreygnatek/protools-sdk-mcp

使用说明

PTSL SDK+MCP服务器示例

本项目演示了如何使用 Avid Pro工具脚本SDK(PTSL SDK) 通过C++应用程序和基于gRPC的MCP服务器自动化和控制Avid Pro Tools。

概述

  • PTSL-SDK:提供C++API,用于编写和控制Avid Pro Tools。
  • MCP服务器:一个gRPC服务器,通过网络公开Pro Tools自动化命令,使用PTSL SDK实现。
  • 客户端示例:一个简单的C++应用程序,连接到MCP服务器并注册与Pro Tools的连接。

项目结构

/ (project root)
├── app/                # Application code (main.cpp, mcp_server.cpp, CMakeLists.txt)
├── sdk/                # PTSL SDK code (as provided by Avid)
├── README.md           # This file
├── CMakeLists.txt      # Top-level build file
└── ...

先决条件

  • CMake (建议使用3.15+版本)
  • Avid PTSL SDK (已包含在 sdk/)
  • 数字音频工作站 (本地运行用于PTSL通信)
  • gRPC和Protobuf (用于构建MCP服务器)

构建和运行说明

1.安装依赖项

  • CMake:
    通过您的软件包管理器进行安装(例如。, brew install cmake 在 macOS 上, apt install cmake 在Ubuntu上,或从 cmake.org).
  • gRPC和Protobuf:
    通过您的软件包管理器安装或按照 gRPC安装指南.

2.配置项目

mkdir build && cd build
cmake ..

3.构建应用程序

make
  • 在Windows上,使用首选生成器(例如Visual Studio)并从IDE或使用 cmake --build ..

4.运行MCP服务器

从 build 目录:

./app/mcp_server

5.运行示例客户端

从 build 目录:

./app/ptsl_app

6.故障排除

  • Pro Tools未运行:
    在使用PTSL功能之前,请确保Avid Pro Tools正在本地运行。

PTSL SDK命令实施检查表

下面是所有可用PTSL SDK命令的列表。使用复选框跟踪MCP服务器中已实现的命令。

命令名称 是否已实现?
创建会话 [x]
开放会议 [x]
导入 [x]
GetTrackList [x]
选择所有剪辑Ontrack [x]
将选择扩展到目标轨迹 [x]
TrimToSelectric [x]
CreateFadesBasedOnPreset [x]
RenameTargetTrack [x]
合并Clip [x]
导出剪辑文件 [x]
ExportSelectedTracksAsAAFOMF [x]
GetTaskStatus [x]
HostReadyCheck [x]
刷新目标音频文件 [x]
刷新所有已修改的音频文件 [x]
GetFileLocation [x]
关闭会话 [x]
保存会话 [x]
SaveSessionAs [x]
剪切 [x]
复制 [x]
粘贴 [x]
清除 [x]
CutSpecial [x]
CopySpecial [x]
ClearSpecial [x]
PasteSpecial [x]
导出混合 [x]
点 [x]
导出会话信息文本 [x]
GetDynamics [x]
设置动态属性 [x]
GetEditSelection [x]
设置编辑选择 [x]
GetTimeline选择 [x]
设定时间线选择 [x]
GetTransportState [x]
设置传输状态 [x]
GetLoopPlaybackState [x]
SetLoop播放状态 [x]
GetPrePostRoll [x]
SetPrePostRoll [x]
GetNudgeValue [x]
SetNudgeValue [x]
GetSessionAudioFormat [x]
GetSessionSampleRate [x]
GetSessionBitDepth [x]
GetSessionInterleavedState [x]
GetSessionTimeCodeRate [x]
GetSessionFeetFrames日期 [x]
GetSessionAudioRateFullSettings [x]
GetSessionVideoRateFullSettings [x]
GetSessionName [x]
GetSessionPath [x]
GetSessionStartTime [x]
GetSessionLength [x]
设置会话音频格式 [x]
设置会话位深度 [x]
设置会话交错状态 [x]
设置会话时间编码率 [x]
设置会话感觉参数日期 [x]
设置会话音频速率播放设置 [x]
设置会话视频速率取消设置 [x]
设置会话开始时间 [x]
设置会话长度 [x]
GetPTSL版本 [x]
获取播放模式 [x]
GetRecordMode [x]
GetTransportArmed [x]
ClearMemory位置 [x]
重命名选定剪辑 [x]
重命名目标剪辑 [x]
切换播放状态 [x]
切换录制启用 [x]
播放半速 [x]
录制半速 [x]
编辑内存位置 [x]
获取内存位置 [x]
注册连接 [x]
创建内存位置 [x]
CreateNewTracks [x]
选择曲目名称 [x]
GetEditMode [x]
设置编辑模式 [x]
GetEditTool [x]
设置编辑工具 [x]
回放缩放预设 [x]
GetEditMode选项 [x]
设置编辑模式选项 [x]
导入视频 [x]
选择内存位置 [x]
设置跟踪静音状态 [x]
SetTrackSoloState [x]
SetTrackSoloSafeState [x]
设置跟踪记录启用状态 [x]
设置跟踪记录安全启用状态 [x]
SetTrackInputMonitorState。SetTrackInputMonitor状态。
SetTrackSmartDspState [x]
设置跟踪隐藏状态 [x]
设置跟踪未激活状态 [x]
SetTrackFrozenState [x]
设置跟踪在线状态 [x]
设置跟踪打开状态 [x]
GetSessionIDs [x]
获取内存位置管理模式 [x]
设置内存位置管理模式 [x]
设置主计数器格式 [x]
设置subCounterFormat [x]
GetMainCounterFormat [x]
GetSubCounterFormat [x]
撤消 [x]
重做 [x]
全部撤消 [x]
[x] [x]
ClearUndoQueue [x]
设置跟踪DSP模式安全状态 [x]
GetSessionSystemDelayInfo [x]
组剪辑 [x]
取消分组剪辑 [x]
取消分组所有剪辑 [x]
重新分组剪辑 [x]
重复选择 [x]
重复选择 [x]
清除所有内存位置 [x]
GetSessionVideoFormat [x]
GetSessionVideoRate [x]
GetSessionVideoPullDown [x]
GetSessionVideoStartTime [x]
GetSessionVideoOffset [x]
GetSessionVideoDuration [x]
GetSessionVideoFileName [x]

许可证

本项目用于演示目的,不隶属于或认可Avid Technology,股份有限公司。


该项目是使用PTSL SDK和MCP协议为Avid Pro tools构建现代自动化工具的起点。