使用说明
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构建现代自动化工具的起点。