Dec 13, 2013 at 5:09 PM
Join Date: Dec 13, 2013
Location:
Posts: 5
Hey, it's me, George.
I feel guilty that my introduction has to be accompanied by a request, but I'm really scared of forums.
I'm in a band called George & Jonathan, and we use pxtone exclusively to make our music. There is no other instrument that I have more virtuosity or proficiency with. It's my favorite way to express musical ideas. I plan on using it to write music for a long time.
Jonathan and I have about 8 or 9 years worth of PTCOPs. We like writing really "dense" songs, with lots of little details. I'm probably a better visual artist than I am a musician, and I've always wanted to create animated visualisations of our music. The simplest of which might be something like a stylized version of Synthesia's animated piano roll.
I need some programmatic way of accessing the note event data stored in our ptcop files. I always thought I'd need PTCOP => MIDI conversion to do this. While that would certainly do the trick, any solution that would allow me to programmatically access the note event data in a PTCOP file would also get the job done. For example, maybe I could write a program that reads the note events in a PTCOP file and outputs the data to a JSON file. It would just be a lot easier to verify that the output of a MIDI file is correct, and reading a MIDI file is a task I know I can solve.
I've tried looking at the documentation of the DLL's to no avail. The only programming languages I know well are Python, JavaScript and Java ... so headers and makefiles are sort of a mystery to me. On top of the fact that I can't read Japanese
... Pixel and I have exchanged some emails on the subject (at a painfully slow rate while I tried to find friends to translate between Japanese and English), but as far as I could glean, he's (understandably) too busy to look into the matter.
If anyone can ...
a. point me to a tool that would help me convert PTCOP to MIDI
b. point me to a resource that would help me create said tool myself
... then George & Jonathan would be eternally grateful. I'm most keen to be able to accurately convey the data in the "portamento" table. We're very much into pitch bends, and the ideal solution faithfully translates those portamento commands into MIDI pitch bend events.
I'll briefly list my failed attempts to achieve the aforementioned:
1. PTCOP => (something else?) => MIDI
ORG to MIDI exists, but can't find much about PTCOP => ORG. I saw a Java converter posted in these forums that does the opposite. Having the source to that project would definitely teach me a lot about reading / writing ptcops.
2. Hex code hell.
Make blank ptcop. Save. Stare at hex editor. Add one track. Stare at diff in hex. Add one note. Stare at diff in hex. This fails because I'm not smart enough.
3. Exporting stems, using pitch detection.
Changed all the samples in a given ptcop to a sine wave and tried to run pitch detection code. It sort of works, but it is so labor intensive (no good way to export "stems" from pxtone) and I get frequency over time data as opposed to "note" data.
If I get access to this data, it will unlock a universe of art that I've been dying to make for years. We have a new album coming out very, very soon, and as much as I would love for you to hear it, I would kill for you to be able to see it too.
Nice to meet you all, and thank you if you made it this far!!
- g&j
I feel guilty that my introduction has to be accompanied by a request, but I'm really scared of forums.
I'm in a band called George & Jonathan, and we use pxtone exclusively to make our music. There is no other instrument that I have more virtuosity or proficiency with. It's my favorite way to express musical ideas. I plan on using it to write music for a long time.
Jonathan and I have about 8 or 9 years worth of PTCOPs. We like writing really "dense" songs, with lots of little details. I'm probably a better visual artist than I am a musician, and I've always wanted to create animated visualisations of our music. The simplest of which might be something like a stylized version of Synthesia's animated piano roll.
I need some programmatic way of accessing the note event data stored in our ptcop files. I always thought I'd need PTCOP => MIDI conversion to do this. While that would certainly do the trick, any solution that would allow me to programmatically access the note event data in a PTCOP file would also get the job done. For example, maybe I could write a program that reads the note events in a PTCOP file and outputs the data to a JSON file. It would just be a lot easier to verify that the output of a MIDI file is correct, and reading a MIDI file is a task I know I can solve.
I've tried looking at the documentation of the DLL's to no avail. The only programming languages I know well are Python, JavaScript and Java ... so headers and makefiles are sort of a mystery to me. On top of the fact that I can't read Japanese
![Wink ;) ;)](https://www.cavestory.org/images/forums/smilies/wink2.gif)
If anyone can ...
a. point me to a tool that would help me convert PTCOP to MIDI
b. point me to a resource that would help me create said tool myself
... then George & Jonathan would be eternally grateful. I'm most keen to be able to accurately convey the data in the "portamento" table. We're very much into pitch bends, and the ideal solution faithfully translates those portamento commands into MIDI pitch bend events.
I'll briefly list my failed attempts to achieve the aforementioned:
1. PTCOP => (something else?) => MIDI
ORG to MIDI exists, but can't find much about PTCOP => ORG. I saw a Java converter posted in these forums that does the opposite. Having the source to that project would definitely teach me a lot about reading / writing ptcops.
2. Hex code hell.
Make blank ptcop. Save. Stare at hex editor. Add one track. Stare at diff in hex. Add one note. Stare at diff in hex. This fails because I'm not smart enough.
3. Exporting stems, using pitch detection.
Changed all the samples in a given ptcop to a sine wave and tried to run pitch detection code. It sort of works, but it is so labor intensive (no good way to export "stems" from pxtone) and I get frequency over time data as opposed to "note" data.
If I get access to this data, it will unlock a universe of art that I've been dying to make for years. We have a new album coming out very, very soon, and as much as I would love for you to hear it, I would kill for you to be able to see it too.
Nice to meet you all, and thank you if you made it this far!!
- g&j
Last edited by a moderator: