Tux Guitar

Open Discussion

Subject gp5 format

Author Message
Post: Jun 28th 2008 at 4:38 AM

I am actually studying the gp5 format, but it seems very tricky to crack the logic. Since you have already parsed it, would it be ok for you if I ask if i can have the gp5 format description?

Back to Top
Post: Jun 28th 2008 at 4:42 PM

Hi, we replied you the contact mails you sended.
didn't you receibe them ?

Back to Top
Post: Jun 29th 2008 at 12:27 PM

I actually received a message, but it says that it would be great if I ask it here on tuxguitar forums.

Back to Top
Post: Jun 30th 2008 at 12:13 PM

Can you post the gp5 format description here? Thanks!

Back to Top
Post: Jun 30th 2008 at 2:37 PM


> but it says that it would be great if I ask it here on tuxguitar forums.
Sure, i mean about the "would it be ok for you if I ask..." question. you don't need ask it again :)

Well, about GP5.
We don't have a "detailed" documentation of it.
The only thing what we have is the source code.
So we can help you with questions you have about the sources.
The source code of GP5 file format is at:

Or you can take a look to the SVN repository:

It maybe will also help you,
DGuitar people has documented GP4 file format:

This is not same as GP5, but allmost GP4 things are included on GP5.

Back to Top
Post: Feb 10th 2009 at 11:39 AM

Hi Julian!

Do you know what attitude Arobas music (Guitar Pro publisher) has regarding the reverse-engineering of their file format?

They could be pleased because their file format is more widely spread. Or they could be angry too because other free software disturb their business.

Back to Top
Post: Feb 10th 2009 at 9:04 PM

Well, i replied you on the contact mail..

I didn't find any license file that denied access to the file format.

Ofcouse i don't know the answer of the second question.
our plans was never fuck with 3d party business. just give to the opensource community a tablature editor.

But i don't think their businness may be affected because to read a "file format".
It can yes with the release of a "similar category" application instead.

Just think this example:

1_ You make an application that reads GP* files to convert to midi.

2_ You don't use their format, but you make the best tablature editor ever seen... and in 1 months all users migrate to your software..

what of these options do you think may affect their business ?

A file format is just that.. a file format.
it don't change any application.
we decided include it on tuxguitar only because there are a lot of GP files on the web. so tuxguitar users can find them easily.
but with or without it, the application is the same..

Back to Top
Post: Feb 11th 2009 at 9:09 AM

You're right, a file format is just a file format..

And as far as I know the GP staff are a group of enthusiastic guitar players and programmers. I think it would rather make them proud if any 3rd party app reads their file format as it emphasizes the importance of their software.

Back to Top
Post: Mar 23rd 2009 at 9:41 PM

Hi Julian, When I save the file as a .TG file extension, it saves it but i can't open it. An error message saying 'access is denied' comes up. Is there something in my pc setting or do i need to install a specific program?

Back to Top
Post: Mar 26th 2009 at 8:49 PM

ali, this is not a tuxguitar familiar error.
are you trying to open the file with tuxguitar (file->open) ?
or are you doing it from the OS, by two clicking the file ?
What operating system and tuxguitar version do you have ?

Back to Top
Post: May 30th 2010 at 8:31 PM

I'm trying to parse GP5 files in C++ based on your Java code. What I don't understand is that almost all classes in the package song.models are abstract. But where are all the concrete implementations you eventually instatiate?

Back to Top
Post: Jun 1st 2010 at 7:43 AM

Java makes an anonymous class of the abstract class when you instantiate the abstract class with the syntax in TGFactory. The anonymous class is here the same like the abstract class.

Back to Top
Post: Jun 1st 2010 at 9:18 AM

Ok, i see. But what is the advantage of this method, since there is no additional code in any of the implementations?

Back to Top
Post: Jun 2nd 2010 at 12:25 AM

Hanz, the idea is to be able to extend these classes, without force plugins to know about classes that implements them.

so at "org.herac.tuxguitar.gui.editors.tab" we have some classes extending these abstract classes. these are the classes that render the TGSong at a screen.

e.g, TGMeasureImpl extends TGMeasure

TGMeasureImpl, have Graphics methods, such as "paint".. but why to force file format plugins to create "new TGMeasureImpl()" if maybe you don't wan't to use the tuxguitar's gui.* package ??? so we just make factory.newMeasure(), and the factory will instanciate the new measure. then TGMeasure is abstract, just to force use this factory.
( now, if you are using TG to read the GP* format, you don't have to make that classes abstract, just remove the abstract declarations... )

In other words, the "advantage of this method" is to use tuxguitar as you are using it right now.. you are only trying to parse GP5 files, so we are not forcing you to analize our Graphics or MIDI code.. just the tuxguitar model structure, and tuxguitar-gtp plugin.

Back to Top
Post: Jun 3rd 2010 at 12:37 PM

ok I understand, thanks for the explaination!

Back to Top