PCG File description / API?

Discussion relating to the Korg Oasys Workstation.

Moderators: Sharp, X-Trade, Pepperpotty, karmathanever

Post Reply
Kevin Nolan
Approved Merchant
Approved Merchant
Posts: 2524
Joined: Sun Dec 04, 2005 3:08 pm
Location: Dublin, Ireland
Contact:

PCG File description / API?

Post by Kevin Nolan »

Hi,

I'm contemplating a program that will convert Triton and Korg Karma file conversion to OASYS format. Note - I'm contemplating it only at this stage, even if possible it'll be a reasonably long term project for me.

I also realise the lack of compatibility issues; but at the end of the day a filter is a filter, an envelope is an envelope and a sample is a sample, so it should be possible to program something that makes a 'first approximation' type conversation.

To this end - can anyone in Korg or otherwise point to:

- PCG File format descriptors,
- PCG or related API's
- Any other 3rd party utilities (including documentation and source code) of similar conversion programs.
- Utilities for examinging existing PCG files on PC or Mac


Thanks,
Kevin
Daz
Retired
Posts: 10829
Joined: Tue Jan 01, 2002 7:35 pm
Contact:

Post by Daz »

What language are you planning on doing this in ? If C++ I can help you with PCG file format, but not the format of individual pieces of Program data as that requires sysex specification and that is not currently publicly available.

Another option possibly is to use the technique I used for my Program Randomizer which learned and then used sysex based Parameter changes. No spec required ;-) Might not be the easiest way.

Daz.
User avatar
Ultimate Dj
Platinum Member
Posts: 1312
Joined: Wed Mar 28, 2007 3:34 am
Location: In The Wind

Re: PCG File description / API?

Post by Ultimate Dj »

Kevin Nolan wrote:Hi,

I'm contemplating a program that will convert Triton and Korg Karma file conversion to OASYS format. Note - I'm contemplating it only at this stage, even if possible it'll be a reasonably long term project for me.

I also realise the lack of compatibility issues; but at the end of the day a filter is a filter, an envelope is an envelope and a sample is a sample, so it should be possible to program something that makes a 'first approximation' type conversation.

To this end - can anyone in Korg or otherwise point to:

- PCG File format descriptors,
- PCG or related API's
- Any other 3rd party utilities (including documentation and source code) of similar conversion programs.
- Utilities for examinging existing PCG files on PC or Mac


Thanks,
Kevin
OMG! Kevin you'd be my hero!!!! :D
I started a post concerning the Enigma PCG's that are made for the Triton Extreme and how i wanted them for my O!!! that would be amazing!!!!! :verycool: :verycool: :verycool:

good luck!!!



puravida
dj
Kevin Nolan
Approved Merchant
Approved Merchant
Posts: 2524
Joined: Sun Dec 04, 2005 3:08 pm
Location: Dublin, Ireland
Contact:

Post by Kevin Nolan »

Daz wrote:What language are you planning on doing this in ? If C++ I can help you with PCG file format, but not the format of individual pieces of Program data as that requires sysex specification and that is not currently publicly available.

Another option possibly is to use the technique I used for my Program Randomizer which learned and then used sysex based Parameter changes. No spec required ;-) Might not be the easiest way.

Daz.
Hi Daz -

My background is C/UNIX but I taught some 3rd level courses in C++ and JAVA so although I've never developed a serious application in C++ I probably should use that given your comment above. But I'm confused why a file format depends on the language being used - surely a file is a file?

I'm thinking aloud here - but my initial approach would be to write a program that takes all relevant parameters within, say, a Triton PCG file containing a single bank of programs only - and then convert or translate all relevant parameters to OASYS program format and create an OASYS PCG output file. I realise the naiveties and shortcomings - no need to go into them now - but at a minimum I'd need:

- A full file description of Triton and OASYS PCG file formats
- An API or possibility of opening such files using C++ file IO
- To then make a detailed study of the Triton and OASYS program structure and decide on reasonable conversion which would become the conversion classes/functions within the software

Surely there must exist somewhere a description of the PCG format that’s in the public domain? And I'm not clear why you're mentioning System Exclusive - surely PCG files do not store MIDI System Exclusive data? In any case, without a clear-cut way of accessing and interpreting PCG files this utility cannot be written.

Kevin
Daz
Retired
Posts: 10829
Joined: Tue Jan 01, 2002 7:35 pm
Contact:

Post by Daz »

Forgive concision ...


1) I asked about language, because if someone is writing in the language I personally use I can offer them some sample snippets that not only show you how a PCG is structured but also how to parse one. If your a Basic programmer, you wouldn't get much from it ;-)

2) I mentioned sysex because the actual data in a PCG file is very closely related to the sysex dump format of the same data. For example with the Triton you could readily take the data for a program from a PCG, and then transform it in the equivalent sysex dump message. You just added a header and a sevenized it, and the data in the file was ready for the wire. The same is true for the Oasys HD-1 engine, but not everything else.

3) No API is required to open or handle a PCG, you just use standard binary file i/o techniques. A PCG file works similarly to RIFF type files like WAV etc. It's just a simple structured file format.

4) Grab the Triton sysex specifications and take a look at how an individual program dump is structured, that is going to tell you what a Program looks like once you extract it from a PCG file.

Gotta run ... can tell you more, lots more ....

Daz.
Daz
Retired
Posts: 10829
Joined: Tue Jan 01, 2002 7:35 pm
Contact:

Post by Daz »

p.s. Xavier once wrote an open source app called Alchemist that converted Trinity PCG to Triton PCG, that will give you some insight into the work you need to do and what the biggest obstacles are. Will try to find that for you.
Daz
Retired
Posts: 10829
Joined: Tue Jan 01, 2002 7:35 pm
Contact:

Post by Daz »

Kevin Nolan
Approved Merchant
Approved Merchant
Posts: 2524
Joined: Sun Dec 04, 2005 3:08 pm
Location: Dublin, Ireland
Contact:

Post by Kevin Nolan »

Hi Daz -

Thanks a million for your pointers - very interesting.

I have quite a lot of experience - several years with Sun Microsystems and currently I wear two caps – musical and scientific where my ongoing (part time) PhD is software design/development for the ESA Integral Space Probe, where Ireland is involved with development of one of its on board instruments called the Optical Monitoring Camera (OMC). My software does near-realtime analysis of all data at the ground station in Madrid - and then sent via dedicated data-link to Geneva. It's been a very interesting project but incredibly time consuming. It was supposed to take about 2 years but has taken about 4 so far, but at this stage the software is in maintenance mode only and actually requires no further bug fixes or updates.

Despite my experience I do not regard myself as a software developer - I'm a physicist - but I love computers, adore UNIX; Sun Microsystems was a great company to work for - but I am definitely a journey-man when it comes to software development and design - I'll get the job done but there will ALWAYS be a more elegant solution. I have no problem admitting that - I have many friends who are incredible software designers and it’s a pleasure to witness their talents in this department (and I know I am definitely not at your level and Stephen Kay is a God!!). In fact when in college I was massively afraid of computers, so decided to throw myself in the deep end after college and go work with computers to try to become a useful physicist - only to discover I massively enjoyed the whole UNIX approach and so much enjoyed working for Sun (with frequent visits to Palo Alto) that I stayed too long in industry and only relatively recently returned to academia to pursue physics and give more time to my music. So I feel privileged and empowered to be able to do something half-useful with computers, but I am far from being a thoroughbred computer engineer.

Anyway - sorry for the partial life story concerning computers. I feel this PCG conversion project could be enjoyable and very useful if it could be pulled off. I don't have much time to spare; and might seek out some of my computer lecturer colleagues to see if this could be a viable college project??

So - I realise you are a sophisticated software head and I’ll be delighted for anything you can provide - don't dumb it down and I'll do my best to sift through any pointers (excuse the pun!) which you can provide.

To anyone else reading this - don't hold your breadth. I will look in earnest at this (and won’t waste your time Daz) - but even if this is possible it could be some time before this could materialise. However I do feel it's worth the attempt - my recent post about the Korg Kamra's strength being related to its access to the Triton sound archive/legacy comes from working a lot recently with the Korg Karma on a project and accessing vast quantities of Triton and MOSS sounds (many available free on Korgforums) – and where it is definitely worth exploring if they can be made available to OASYS.

So I’ll take on board what you say above; and anything else you have to offer Daz will be extremely graciously accepted.

Cheers,
Kevin.
oasys76
Junior Member
Posts: 98
Joined: Wed May 03, 2006 2:17 pm

Post by oasys76 »

Daz wrote:What language are you planning on doing this in ? If C++ I can help you with PCG file format, but not the format of individual pieces of Program data as that requires sysex specification and that is not currently publicly available.

Another option possibly is to use the technique I used for my Program Randomizer which learned and then used sysex based Parameter changes. No spec required ;-) Might not be the easiest way.

Daz.
Hi Daz,

any new update for your superb randomizer? MOD7 randomizer? Sample randomizer???????

Oasys76
Post Reply

Return to “Korg Oasys”