Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add recreation script #16

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

add recreation script #16

wants to merge 3 commits into from

Conversation

nickp60
Copy link

@nickp60 nickp60 commented Aug 22, 2019

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.

@zamaudio
Copy link
Owner

zamaudio commented Aug 23, 2019

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.

@nickp60
Copy link
Author

nickp60 commented Aug 24, 2019

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!

@zamaudio
Copy link
Owner

@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

@nickp60
Copy link
Author

nickp60 commented Mar 1, 2020

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.

@zamaudio
Copy link
Owner

zamaudio commented Mar 1, 2020

@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.

@Otto-Matic
Copy link

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

@Otto-Matic
Copy link

ptw

@zamaudio
Copy link
Owner

zamaudio commented Jan 2, 2021

@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?

@Otto-Matic
Copy link

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...

@zamaudio
Copy link
Owner

zamaudio commented Jan 3, 2021

@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).

@Otto-Matic
Copy link

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
Copy link

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

@zamaudio
Copy link
Owner

zamaudio commented Jan 3, 2021

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

@orchetect
Copy link

orchetect commented Jan 3, 2021

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.

@Otto-Matic
Copy link

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

@zamaudio
Copy link
Owner

zamaudio commented Jan 4, 2021

@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.

@Otto-Matic
Copy link

ptw1
my tools in progress

@Otto-Matic
Copy link

ptw-2

@Otto-Matic
Copy link

ptw4

@Otto-Matic
Copy link

tw3

@zamaudio
Copy link
Owner

@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.

@orchetect
Copy link

orchetect commented Jan 17, 2021

@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.

@Otto-Matic
Copy link

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

@Otto-Matic
Copy link

ProtoolsViewer.zip

@Otto-Matic
Copy link

Only for pt10, 11 & 12....

@felixCheungcheung
Copy link

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

@Otto-Matic
Copy link

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...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants