An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          

ptformat [![badge](https://github.com/zamaudio/ptformat/actions/workflows/build.yml/badge.svg?branch=master)](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!