ptformat icon indicating copy to clipboard operation
ptformat copied to clipboard

add recreation script

Open nickp60 opened this issue 4 years ago • 27 comments

Hi @zamaudio ! Thanks for writing a great tool. I needed to rescue some takes from a protools file, and wrote this python wrapper to make the sox commands to recreate full-length stems for each take for each track. Not sure if you would want to incorporate it, but I thought I'd share it anyways if anyone else would find it useful. Let me know if you have any questions.

nickp60 avatar Aug 22 '19 20:08 nickp60

Hi @nickp60 not sure if you saw this but I already have a sox script as part of the repo:

https://github.com/zamaudio/ptformat/blob/master/ptgenmissing.cc

~~I think it does the same thing...~~ Mine is for generating stems of empty silence when you don't have any audio but want to test importing a whole session. I'd prefer not to include python code as well as C/C++ in this repo though. Ptformat provides a C++ api to access all the regions, you don't need to write a parser for the output of ptftool. I'd be happy to accept it if it was written in C++ and generated a bash script to run sox, see ptgenmissing.cc as an example.

zamaudio avatar Aug 23 '19 10:08 zamaudio

Hi @zamaudio, That's totally fine, I get not wanting to mix languages in the code base. If I knew enough C++, I would totally recode it using the API you developed. It looks like it wouldn't be too difficult if I knew C++ better; I don't have a ProTools license so my ability to test would be limited anyway. Feel free to leave the PR open in case one of the other contributors could port it, or just to close it. Again, thanks so much for your work developing this tool!

nickp60 avatar Aug 24 '19 12:08 nickp60

@nickp60 How do you deal with regions that overlap? This is a diagram of how the sources and regions are laid out, I think your code does not take this into account:


               |<                         AUDIO SOURCE          >|
|______________|-------------------------------------------------|
0    absolute >|<                                    wav length >|
               |--------------|----------------------------------|
               a        into >|                               a+wavlen
                              |<          AUDIO REGION      >|
                              |------------------------------|
                              |<              region length >|
                              |------------------------------|
                             a+i                         a+i+reglen

zamaudio avatar Feb 27 '20 10:02 zamaudio

Hey @zamaudio, you are right, it doesn't, and I'm not sure how to get around that. Is there a way to get the relative starts times?? I ended up manually adjusting the clips after the fact.

nickp60 avatar Mar 01 '20 00:03 nickp60

@nickp60 Yes, if you use the api that I provided in C++, you can get the absolute start time of any region, and you can also get the offset within a source of the start of the region and its length so you know where to pull the audio from. But I still think it may be challenging to figure out which region should be played when regions are overlapping on the same track since I do not have this information from the file. The way I handled it in Ardour import was to just dump the regions in order as they appear in the file and let them stack.

zamaudio avatar Mar 01 '20 02:03 zamaudio

I have creating a tools in VB.net to open a ptx files (pro tools 10)all the file is decrypted.

Otto-Matic avatar Jan 02 '21 09:01 Otto-Matic

ptw

Otto-Matic avatar Jan 02 '21 10:01 Otto-Matic

@Otto-Matic did you link to my C++ library to compile your VB.net program, or did you create a derivative work of ptformat in VB.net?

zamaudio avatar Jan 02 '21 11:01 zamaudio

My program is entirely written without using your C++ library. I discovered your program after I started writing the program. I just used the part":case 0x0030:return std::string("INFO product and version")""ect... I don’t know how to compile a program into C++....Sorry for my english, I'm french...

Otto-Matic avatar Jan 02 '21 15:01 Otto-Matic

@Otto-Matic As you would know, ptformat is the result of many months of reverse engineering work. I decided to make my project LGPL, so that it remains Free Software, but can still be linked with proprietary programs as is. If you are creating a new project that takes specific cases from deep in the library, I would appreciate if you publish your project under a compatible licence (if you intend on distributing copies).

zamaudio avatar Jan 03 '21 03:01 zamaudio

I work a lot with Protools10. I compose music in MAO. I wrote this program only for myself in order to better understand the software. I do not intend to distribute this software. But if I can help to advance the search on the files"ptx"...

Otto-Matic avatar Jan 03 '21 10:01 Otto-Matic

https://soundcloud.com/otto-matic-1/tracks you can listen to my composition here

Otto-Matic avatar Jan 03 '21 10:01 Otto-Matic

Sure, feel free to help figure out more of the block types if you have time. Thanks for sharing.

zamaudio avatar Jan 03 '21 12:01 zamaudio

Would love to see progress on this library. @Otto-Matic if you're not familiar with C++, perhaps you could share your VB source code and someone could parse it and port it to C++ to help build out this library and fill in any gaps with portions you've coded.

(As an aside, I ported this library to Swift as an exercise just for my own use, and it functions identically. But it's probably more ideal to leave it as C++ to ensure it is as cross-platform as possible).

However, this is off-topic for this conversation thread. Would be great to start a new thread to further discuss if you're interested.

orchetect avatar Jan 03 '21 20:01 orchetect

I have no problem sharing my source code, I only do this for pleasure...

Otto-Matic avatar Jan 03 '21 21:01 Otto-Matic

@orchetect can you please open a new issue(s) for any feature requests? I'm not too sure what people consider progress on this library.

zamaudio avatar Jan 04 '21 06:01 zamaudio

ptw1 my tools in progress

Otto-Matic avatar Jan 16 '21 15:01 Otto-Matic

ptw-2

Otto-Matic avatar Jan 16 '21 15:01 Otto-Matic

ptw4

Otto-Matic avatar Jan 16 '21 15:01 Otto-Matic

tw3

Otto-Matic avatar Jan 16 '21 15:01 Otto-Matic

@Otto-Matic Wow, can you share your repo on github? It looks like you have figured out the meter/tempo map! This is something we could add to ptformat.

zamaudio avatar Jan 16 '21 23:01 zamaudio

@Otto-Matic Wow, can you share your repo on github? It looks like you have figured out the meter/tempo map! This is something we could add to ptformat.

That's what I was saying 😆 It's great if @Otto-Matic has made progress with analyzing the data. If they're willing to share their source code we could all collaborate to build this library out.

Remaining C++ would make the library the most cross-platform compliant. But it can be compiled and used as a library with VB, and other languages of course. I can offer to help by adding Swift and SPM support when I have time.

Either way, let's open new issue threads to discuss further and not derail this one.

orchetect avatar Jan 17 '21 00:01 orchetect

how to send the file here in "zip" format?

Otto-Matic avatar Jan 17 '21 08:01 Otto-Matic

Only for pt10, 11 & 12....

Otto-Matic avatar Jan 17 '21 10:01 Otto-Matic

Hi Otto_Matic, is your tool able to parse plugin parameters in .ptx file? I am trying to use your tool, but you only provide two .vb file. When I tried to build form1.vb in visual studio there are lots of error. Can you share your project with us? I am so interested. Thank you so much. @Otto-Matic

felixCheungcheung avatar Jul 30 '21 14:07 felixCheungcheung

Hi... in zip file complet program in Vb.net.... CadControlv1.zip for use: open a ptx.file in CadTest.exe, decrypt file and save in a ptw.file. Open the ptw file to view all...

Otto-Matic avatar Jul 30 '21 15:07 Otto-Matic