https://github.com/zamaudio/ptformat
Free software file format parser for Avid ProTools sessions
https://github.com/zamaudio/ptformat
ardour interoperability protools ptf ptx session
Last synced: about 1 month ago
JSON representation
Free software file format parser for Avid ProTools sessions
- Host: GitHub
- URL: https://github.com/zamaudio/ptformat
- Owner: zamaudio
- License: lgpl-2.1
- Created: 2015-07-15T12:52:38.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2025-12-15T09:30:03.000Z (3 months ago)
- Last Synced: 2025-12-18T08:46:25.415Z (3 months ago)
- Topics: ardour, interoperability, protools, ptf, ptx, session
- Language: C++
- Homepage:
- Size: 539 KB
- Stars: 81
- Watchers: 17
- Forks: 18
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: COPYING.LESSER
Awesome Lists containing this project
README
ptformat [](https://github.com/zamaudio/ptformat/actions)
========
ptformat reads and parses [ProTools](https://www.avid.com/pro-tools) session files.
Audio and MIDI source/region/track information is extracted, as well as MIDI note events.
The idea is to make [ardour](https://ardour.org/) open PT sessions.
Current functionality
===
Decrypt and parse a PT file:
make
./ptftool file.pt{s,5,f,x}
API
===
See ptftool.cc for example usage
What works?
===========
| **PT version** | **Decryption** | **Audio (Sources)** | **Audio (Regions)** | **Audio (Tracks)**| **MIDI (Chunks)** | **MIDI (Regions)** | **MIDI (Tracks)** |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 5 | Yes | Yes | Yes | Yes | ? | ? | ? |
| 6 | Yes | Yes | Yes | Yes | ? | ? | ? |
| 7 | Yes | Yes | Yes | Yes | ? | ? | ? |
| 8 | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| 9 | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
|10 | Yes | Yes | No groups | Yes | Yes | No groups | Yes |
|11 | Yes | Yes | No groups | Yes | Yes | No groups | Yes |
|12 | Yes | Yes | No groups | Yes | Yes | No groups | Yes |
Regression testing
==================
To test that nothing has broken since code has been changed:
make
./ptreg
Dummy audio file generation
===========================
To make a sox script for regenerating all audio in a PT session as dummy wavs:
make
./ptgenmissing file.pt{s,5,f,x}
Hacking
=======
To decrypt a PT session for further inspection or adding features:
make
./ptunxor file.pt{s,5,f,x} > file.unxor
License
=======
### LGPLv2.1+
TODO
====
- Add >= PT10 Compound MIDI/Audio region support
Binaries in `bins/`
===================
The binaries located in `bins/` directory are specially crafted test sessions
for regression testing this library. They are not programs!