Korg Forums Forum Index Korg Forums
A forum for Korg product users and musicians around the world.
Moderated Independently.
Owned by Irish Acts Recording Studio & hosted by KORG USA
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

PCG File description / API?

 
Post new topic   Reply to topic    Korg Forums Forum Index -> Korg Oasys
View previous topic :: View next topic  
Author Message
Kevin Nolan
Platinum Member


Joined: 04 Dec 2005
Posts: 1546
Location: Dublin, Ireland

PostPosted: Sun Feb 15, 2009 12:30 am    Post subject: PCG File description / API? Reply with quote

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
Back to top
View user's profile Send private message Visit poster's website
Daz
Retired


Joined: 01 Jan 2002
Posts: 10817

PostPosted: Sun Feb 15, 2009 1:13 am    Post subject: Reply with quote

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 Wink Might not be the easiest way.

Daz.
Back to top
View user's profile Send private message Visit poster's website
Ultimate Dj
Platinum Member


Joined: 28 Mar 2007
Posts: 1312
Location: In The Wind

PostPosted: Sun Feb 15, 2009 6:06 am    Post subject: Re: PCG File description / API? Reply with quote

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!!!! Very Happy
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!!!!! Cool Cool Cool

good luck!!!



puravida
dj
Back to top
View user's profile Send private message Send e-mail MSN Messenger
Kevin Nolan
Platinum Member


Joined: 04 Dec 2005
Posts: 1546
Location: Dublin, Ireland

PostPosted: Sun Feb 15, 2009 1:16 pm    Post subject: Reply with quote

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 Wink 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
Back to top
View user's profile Send private message Visit poster's website
Daz
Retired


Joined: 01 Jan 2002
Posts: 10817

PostPosted: Sun Feb 15, 2009 3:30 pm    Post subject: Reply with quote

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 Wink

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.
Back to top
View user's profile Send private message Visit poster's website
Daz
Retired


Joined: 01 Jan 2002
Posts: 10817

PostPosted: Sun Feb 15, 2009 3:33 pm    Post subject: Reply with quote

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.
Back to top
View user's profile Send private message Visit poster's website
Daz
Retired


Joined: 01 Jan 2002
Posts: 10817

PostPosted: Sun Feb 15, 2009 3:43 pm    Post subject: Reply with quote

http://alchemist.sourceforge.net/
Back to top
View user's profile Send private message Visit poster's website
Kevin Nolan
Platinum Member


Joined: 04 Dec 2005
Posts: 1546
Location: Dublin, Ireland

PostPosted: Sun Feb 15, 2009 8:14 pm    Post subject: Reply with quote

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.
Back to top
View user's profile Send private message Visit poster's website
oasys76
Junior Member


Joined: 03 May 2006
Posts: 98

PostPosted: Tue Feb 17, 2009 11:23 pm    Post subject: Reply with quote

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 Wink Might not be the easiest way.

Daz.


Hi Daz,

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

Oasys76
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Korg Forums Forum Index -> Korg Oasys All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group