Tux Guitar

Open Discussion

Subject Tuxguitar 2 in C++ ?



Author Message
adam0509
Post: Dec 22nd 2006 at 5:20 PM

Hi,


I heard that tuxguitar 2 will use C++.

Even if java is open-source now, I think it's a great thing ! Java use way to much memory, and too much disk place...

No one can say C++ is really faster than JAVA, but what is sure, it is that C++ don't need additionnal package.

I hope so that Tuxguitar 2 could be easily installed on "Damn Small Linux".


Again, thank you julian (and team) for making that great app !!


Back to Top
 
Julian
Post: Dec 22nd 2006 at 7:20 PM

Hi,
yes its my idea make tuxguitar 2 (maybe called TuxGuitar++)
in C++ with the wxWidgets framework...

but patience.. it will be in a future, after TuxGuitar-1.0 stable finished...


Back to Top
 
adam0509
Post: Dec 24th 2006 at 8:33 AM

Don't worry I'm patient... (I think... :D)


BTW, why did you begin to do tuxguitar in java first ? You though it would be better than C++ ? or was it just to learn java ?


Back to Top
 
Julian
Post: Dec 24th 2006 at 10:28 AM

no i don't think java better than C++...
java is more slowly.. but with java you can do the app in a litle time.
See this: "Registered : 2005-12-22" today tuxguitar has 1 year and 2 days of work.
and as this project was designed as a simple app.. i didn't need do this on C++
(but i use SWT libraries, what are written on C++ :p)


Back to Top
 
jcdemay
Post: Dec 24th 2006 at 12:08 PM

The drawing of tuxguitar is quite CPU consuming, is there some plan to optimise it ? I didn't take a look at the source code but I wonder if the layout are updated only when it's necessary.

By the way if we to help, what IDE do you use ?


Back to Top
 
Julian
Post: Dec 24th 2006 at 1:11 PM

Hi,
yes there was a plan.. its finished.. you can take a look at CVS version..
or you see at the next release...

>> By the way if we to help, what IDE do you use
at this moment i'm only testing the app and waiting files from translators and icons...
if you want you can help me testing the CVS version.
i always work with eclipse IDE...

Bye.


Back to Top
 
adam0509
Post: Dec 25th 2006 at 3:22 PM

QUOTE =
See this: "Registered : 2005-12-22" today tuxguitar has 1 year and 2 days of work.

HAPPY BIRTHDAY TUXGUITAR ! :D


1 year ? So I guess you will make less that 1 year to recode in C++.... :).
That's a good news, cause next ubuntu LTS (Long term support) should be on june 2008, so It could be one of "THE" multimedia app if it's on universe repository...


Back to Top
 
Silver
Post: Dec 30th 2006 at 2:19 PM

Hi.

I apologize if that question offends anybody, but why would you use wxWidgets for GUI? I've read it's old and not so shiny as other frameworks, e.g. QT4.


Back to Top
 
Julian
Post: Dec 30th 2006 at 2:28 PM

Hi,
well wxWidgets is not old.. you can check last release date..
i'll not QTx because, i like GTK


Back to Top
 
JoyFM
Post: Jan 2nd 2007 at 3:00 PM

What great news :D
that will be very cool 8)
but I'm patient as well ^^


Back to Top
 
Istvan
Post: Jan 3rd 2007 at 9:31 PM

hi! :)

recently i had the idea of building an embedded system dedicated to playing guitar tabs (i have mostly guitar pro tabs), this could be a useful task for old laptops (mine is a p133 one with 16 megs of ram)! very limited resources... :(
so it's very nice to hear that you're porting this gem to c++!! :)

btw.: are you planning to build a textmode / framebuffer-version? :)
would be nice to avoid X... i was planning to write a similar program using svgalib, maybe we could help eachother with this task!

thanks for the efforts, man! :)


Back to Top
 
adam0509
Post: Jan 9th 2007 at 4:57 PM

I've seen a great app that don't use much ressources, it's called "Songwrite", but no GP5 export...


Back to Top
 
Istvan
Post: Jan 13th 2007 at 8:17 AM

Thx Adam, I'll give it a try! :)


Back to Top
 
BJ
Post: Feb 1st 2007 at 7:08 AM

What about a native version of TuxGuitar compiled with GCJ?

Rewriting the software from scratch in C++ will bring a lot of work and problems I think... such as getting a good synthetizer...

What will happen with Java version if you plan to develop TuxGuitar2 in C++ ?


Back to Top
 
Julian
Post: Feb 1st 2007 at 1:16 PM

Hi,
>>What about a native version of TuxGuitar compiled with GCJ?
GCJ don't implements the Java Sound Api... so for the moment tuxguitar don't works with gcj.

>>Rewriting the software from scratch in C++ will bring a
>>lot of work and problems I think... such as getting a good >>synthetizer...
a lot of work, sure.. but problems why ?? it'll not a rewrite.. i'll be a new app with the same design.

>>What will happen with Java version if you plan to develop
>>TuxGuitar2 in C++
Nothing, tuxguitar and tuxguitar2 (will be different projects)

bye


Back to Top
 
John
Post: Feb 2nd 2007 at 4:46 PM

>>What will happen with Java version if you plan to develop
>>TuxGuitar2 in C++
>>>Nothing, tuxguitar and tuxguitar2 (will be different >>>projects)

I'm not sure that I understand : when tuxguitar will be in version 1, will it stop?
But could mauriciogracia from DGuitar work on the java-tuxguitar?


Back to Top
 
Julian
Post: Feb 2nd 2007 at 5:11 PM

Dont' worry, the project will not die..

>>But could mauriciogracia from DGuitar work on the
>>java-tuxguitar?
he is a new member of the project (but he is on hollidays now)

so, how i say, they will be 2 different projects.. don't worry for java version..

i'll only try make tuxguitar clone under C++...
"see it as a new software"


Back to Top
 
Silver
Post: Feb 3rd 2007 at 9:59 AM

If TuxGuitar2 will be a separate project, maybe it should be named separately also (and start versioning from 0.1 not 2.0)? E.g. TuxGuitar-plus or smth..


Back to Top
 
Julian
Post: Feb 3rd 2007 at 8:35 PM

Sure, casually "TuxGuitar-plus or TuxGuitar++" is one of the possible names...


Back to Top
 
Auria
Post: Feb 3rd 2007 at 9:53 PM

I think this is good news - while Java proved programming could be simpler than C++, the resulting apps are not quite as good.

Also, i don't think C++ development is THAT slower than Java's. (I sue both) When i started using C++, from Java, i was totally lost and development was sluggish - but once i got used to C++ and wxWidgets, my workflow became pretty much the same it was in Java.

Good luck with your project! (but don't try to convert Java code into C++, rewrite it! i tried once, hehe, i'll never do it again)

( me going to learn D as a solution to this endless Java vs C++ fight ;) )


Back to Top
 
MauricioGracia
Post: Feb 4th 2007 at 7:56 PM

Hello

>>..while Java proved programming could be simpler than C++, the resulting apps are not quite as good.

By the way ECLIPSE is done in JAVA, I dont see many performance or appearance issues. (i know it uses SWT underneath)

I have come back from the holidays,..and yes i am willing to take over the TUXGUITAR JAVA project if Julian agrees.

I am a MAC owner, porting the project to C++ and wxWidgets will keep the project compatible for MAC also ?

I noticed there is not a DOWNLOAD package for MAC, I can learn how to do it and provide it if needed

Let me know what you think


Back to Top
 
Kknd
Post: Feb 5th 2007 at 5:31 PM

Hi, thank you for the great job with TuxGuitar.

I think that the Java version don't lose much to a native
alternative, and is better to debug and you will not have problems with porting to other platforms.


Back to Top
 
Silver
Post: Feb 5th 2007 at 5:47 PM

Well, I believe java apps on desktop are much worse as they require soooo much memory and are much slower in general. I have not-so-powerful PC (1.5 GHz, 512 RAM), so if I'm compiling something, if there are opened some P2P and multimedia apps, I have to close some of them in order to be able to run TuxGuitar without it hopping while playing etc.
I've tried to check out Eclipse also, but well.. I assume there weren't enough GHz's and GB's around in my machine :)
If it's the matter of portability.. can't it be built onto some cross-compatible libraries like KDE4 will be?

I do believe that it's very cool to write java code etc, but it doesn't matter to an end-user, does it?


Back to Top
 
Anonymous
Post: Feb 5th 2007 at 11:08 PM

I would imagine TuxGuitar would be a very useful app for the OLPC < wiki.laptop.org > project (with millions installations in the next couple of years). OLPC uses GTK/Python as its main development toolkit - could be worth considering...

Anyhow, thank you very much for this wonderful app and looking forward to the next version.

Jan


Back to Top
 
Kknd
Post: Feb 6th 2007 at 10:56 AM

Java has some performance problems with sound, its true.
TuxGuitar run on my father pc (256 ram, 1,6ghz P4) without problems, but a native solution would be better for slowers pcs.

I think its better to improve some things now.
Of course it would be good if it run on more old pcs, but i think there is a lot of Java softwares (i have +/- 15 on my pc) out there and having to install a JRE it's not a problem.


Back to Top
 
Johnny
Post: Feb 22nd 2007 at 9:43 AM

I really don't know what performance problems do you see. I just tested TuxGuitar on P3 730MHz (Win32 with bunch of threads in the background) and it runs very, very good.
Java MIDI sound has some latency problems (about 30ms - http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4773012) but that is not what you noticed.


Back to Top
 
Hernan
Post: May 17th 2007 at 9:17 PM

It would be better to see tuxguitar in C++.

Greetings from Argentina.


Back to Top
 
Hernan
Post: May 18th 2007 at 4:36 AM

recien me doy cuenta de que tuxguitar es argentino!! puedo postear tranquilamente en castellano entonces... :P. Vuelvo a decir lo que dije antes en mi anterior post... seria grandioso ver el programa en C++ ya que es mas comodo que estar bajandote el runtime de java, y menos pesado. Tambien estaria bueno que tuviera un mejor soporte con el formato del Power Tab Editor (.ptb)asi no tengo que tener el power tab para los ptb y el Tuxguitar para los del guitarpro. Bueno, les deseo mucha suerte... esperando con ansias la nueva version (o nuevo programa)en C++.


Back to Top
 
Benjamín
Post: Aug 7th 2007 at 6:25 AM

I have just discovered that great application. I have always used Guitar Pro via Wine, but this program is wonderful. Julián, I fall at your feet for your work.

Y no te preocupes, tu inglés es mejor del que se lee en la mayoría de los foros.

This Java vs C++ war seems never-ending. I am a professional Java programmer, but not a Java radical, I use Python for my personal projects :) It's true that the performance of a general C++ application is greater than a Java one, moreover in a slow machine, but I think that the easiness to port applications changing little code and the marvelous debugging are good reasons to keep the development in Java.

Eclipse is a good example of what can be done with a good memory use, and NetBeans a good example of the opposite, and both are made in Java!

About the graphic toolkit, I use wxWidgets. Its API is powerful and simple, from C++, Java, Python... and is perfect for a multiplatform application. GTK is too much complicated for me.

Anyway, if you want to change the language, take a look to Python... + wxPython :)


Back to Top
 
Muzero
Post: Sep 20th 2007 at 4:59 AM

I dont' think that rewrite TuxGuitar in C++ is a good idea.
It should nicer if you compile the current version in native code with GCJ that works well also in windows using mingw ;)

( IMHO )

Muzero


Back to Top
 
Julian
Post: Sep 20th 2007 at 8:07 AM

Hi,
build tuxguitar under GCJ is possible now on CVS version.
and also we are talking with "excelsior JET" people for a free license of they project:
http://www.excelsior-usa.com/
http://www.excelsior-usa.com/download/jet/jrsd/500/tuxguitar_native_distrib.exe


Back to Top
 
adam0509
Post: Sep 21st 2007 at 12:14 PM

Can I ask when tuxguitar 1.0 will be out ? Can't wait :D


Back to Top
 
John
Post: Sep 21st 2007 at 7:11 PM

When Argentina will be rugby champion of the world.


Back to Top
 
Markon
Post: Sep 28th 2007 at 7:23 AM

Very very good !

There are some advantages using C++ : you can implement scripts written in Python :)
(ahahh!! I know only Python language!!)

Bye


Back to Top
 
Michael Bushey
Post: Sep 29th 2007 at 11:39 PM

The excelsior version works exactly the same as the java version":

# wine tuxguitar_native_distrib.exe
fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls"
/usr/bin/wine: line 396: 32460 Segmentation fault $WINEBIN/$WINE_BIN_NAME "$@"
Wine failed with return code 139
Segmentation fault


A C++ version would be simply wonderful, news of this makes me very happy. :) Please keep us posted as to the status.


Back to Top
 
Julian
Post: Sep 30th 2007 at 10:13 AM

but why did you use "wine"... ???
with excelsior jet, you can build a "native GNU/linux" version.. so you don't need "wine".
you can also build a native version, with GCJ. but only with current CVS version.


Back to Top
 
Michael Bushey
Post: Oct 26th 2007 at 5:46 PM

> but why did you use "wine"... ???

$ file tuxguitar_native_distrib.exe
tuxguitar_native_distrib.exe: MS-DOS executable PE for MS Windows (GUI) Intel 80386 32-bit

Wine is still superior to Java, and KVM and Virtualbox suck for audio.


Back to Top
 
Julian
Post: Oct 26th 2007 at 6:22 PM

i think you didn't understand what i try to say.. well my english is no good...

"tuxguitar_native_distrib.exe" was builded under excelsior-jet ( a Java SE 5.0 implementation.. )
http://www.excelsior-usa.com/jet.html

that file was builded by jet peolple for win32..
but you can build one for GNU/Linux and it'll be very faster than using wine, and very faster than sun JVM. ( it was tested.. but i can't upload a release for the moment because license terms )

if you run it under wine, you are doing this process:
wine -> excelsior-jet -> tuxguitar

if you build tuxguitar with excelsior-jet for linux.. you will do:
excelsior-jet -> tuxguitar


Back to Top
 
Braeniver
Post: Nov 1st 2007 at 6:24 PM

Hola Julian (as your english is not so good, I'll write in spanish), aqui tienes a un musico y a un programador en la misma persona.

En lo que respecta a la aplicacion: TuxGuitar me parecio muy malo al principio (No sé si sera la Splash Screen o la disposicion visual de las herramientas del programa), pero al empezar a usarlo me dí cuenta de que era lo suficientemente bueno como para que lo utilice.

Particularmente me gusta mucho la composicion y la expresion musical atraves de un metodo tan versatil y util como lo es la computadora (de la cual soy muy amigo, por cierto =D), y por eso me gustaria darte un par de ideas para el futuro TuxGuitar.

-Extensibilidad con scripts (Python seria una muy buena idea): esto permitiria que una comunidad (hablamos de particulares) programen efectos, plugins y addons para el programa, lo que lo haria mas rico en features.

-Layout más practico: el uso de atajos de teclado configurables (Cualquier Funcion + Cualquier Combinacion de Teclas) es realmente util (lo dice un muy satisfecho usuario de IceWM).

-Formato propio: No estoy seguro si lo hay, pero tener un formato propio seria tanto bueno para poder dejar una marca o señal como malo por los problemas de compatibilidad con otras aplicaciones. En mi caso particular, uno de los miembros de mi grupo musical usa GuitarPro, y por dicho motivo debo guardar en formato GuitarPro para que el pueda leer/editar/reproducir.

-Banco de Sonidos Midi y Banco de Samples: con un poco de ayuda y maña se podria armar un Banco de Samples lo suficientemente bueno y grande como para que todos estemos contentos.

-Exportador a formato de audio crudo (.WAV) y comprimido (.OGG, .MP3, .FLAC).

En fin, creo que estoy siendo muy pretensioso, aunque preferiria no creerlo ya qué seria genial que lo hicieran.
Como una idea, podrian usar FMod para el sonido (Soy mas partidario de OpenAL, pero viendo que es un proyecto Open Source y Freeware seria una buena opción).

Bueno, me despido desde Tucumán.
Un abrazo.
Buenas Vibras.

P/D: Te dejo mi e-mail si te interesa ponerte en contacto conmigo: leoostera arroba gmail punto com.


Back to Top
 
Julian
Post: Nov 1st 2007 at 7:27 PM

Hola..

> -Extensibilidad con scripts......
TuxGuitar ya soporta plugins.. si miras en la version CVS veras una lista larga de ellos.
por otro lado.. no creo que mezclar Java y Python sea muy buena idea.. esto provocaria un codigo bastante tosco.

> -Layout más practico: el uso de atajos de teclado configurables.....
bueno esto ya fue implementado hace bastante tiempo.

> -Formato propio: No estoy seguro si lo hay.....
Si, tuxguitar tiene su propio formato ( *.tg )
pero el motivo por el cual no se guarda en ese formato por defecto, es porque el formato cambia entre version y version. (si te fijas, tuxguitar 0.9 no sabe abrir archivos de tuxguitar 0.8 )..
la idea es que exista una compatibilidad, pero no entre 0.x sino entre 1.x por en eso la siguiente version 1.0 .tg sera el formato predeterminado.
de todos modos ya existe en el CVS un plugin: tuxguitar-compat que es justamente para mantener esta compatibilidad.

> -Banco de Sonidos Midi y Banco de Samples....
bueno tuxguitar "no es" un sintetizador de sonidos por software ni esta planeado en serlo.. sino que "se conecta" a uno ya existente. (existen varios proyectos libres muy buenos como fluidsynth y timidity)
hasta la version 0.9, se estaba conectando al sintetizador de java ( que es bastante feo ) pero la version CVS tiene mucho mejor soporte para plugins. y estos plugins permiten conectarse a un dispositivo nativo.
por ejemplo: hoy por hoy, siempre hablando de la version CVS, en GNU/Linux es posible usar soundfonts conectando tuxguitar a fluidsynth. mediante el plugin tuxguitar-alsa.

> -Exportador a formato de audio crudo
se podria crear un plugin para esto sin ningun tipo de problemas. pero antes hay mas prioridades, como soportar formatos mejor relacionados con la aplicacion ( por ej: tabledit )


Back to Top
 
Jarvis
Post: Nov 2nd 2007 at 10:14 AM

Hello,
I found out another guitar software : Songwrite 2
http://home.gna.org/oomadness/en/songwrite/index.html


Back to Top
 
Braeniver
Post: Nov 2nd 2007 at 12:05 PM

Perdón, olvide aclarar que esos cambios y agregados los habia propuesto para la supuesta version en C/C++ de TuxGuitar.


Back to Top
 
Robo
Post: Dec 29th 2007 at 4:53 AM

Don't rewrite it into C++. It's a step back. Today computers are more than capable of running Java Virtual Machine and just imagine a year or two later when C++ version would be available. It's really a waste of time. Really.


Back to Top
 
Med
Post: Jan 16th 2008 at 6:05 PM

I really think Robo is right, in my opinion there's no point to rewrite Tux guitar in C++, Java VM is now opensource, and Tuxguitar just consume about 30 to 40 MB of memory which is nothing for today's computers. You should consider developing the current one.


Back to Top
 
Johnny
Post: Jan 16th 2008 at 7:07 PM

I hardly believe that TuxGuitar will be rewritten in C++.

Maybe Julian's motivation earlier was to get rid of Java Sound API MIDI sequencer implementation, but it's done some time ago.

We never even discussed it.


Back to Top
 
guitarman
Post: Feb 3rd 2008 at 10:28 AM

and when tuxguitar 1 stable will appear? :)


Back to Top
 
kdn
Post: Jan 31st 2009 at 12:03 AM

(one year later...)
It is still the plan to make a new tuxguitar in C++?
Or is it to stick to the current java-based tuxguitar and improve it?


Back to Top
 
skar
Post: Mar 7th 2009 at 6:18 PM

If the porting is going to happen, then instead of using wxWidgets as proposed, why not use QT?


Back to Top
 
divinity666
Post: Mar 24th 2009 at 7:28 PM

From my point of view there are many reasons NOT to create a C++ version of TuxGuitar, but if Julian wants to try it as a separate project, he should do so. I am happy that the Java version will live on anyway.

Here my reasons for preferring the Java version (and yes, I developed in different languages like C++, Ruby, ...):

* Java code is much better readable (no pointers), although C++ code might run a bit faster (although CPU time should no longer be a problem anyway...)
* Java IDEs provide much better functionalities for development than C++ IDEs (refactorings, debugging, ...)
* Java is platform independent (which can also be achieved by C++ with enough effort...)

The only reason I see against Java are the sound hoppings (which could also be a problem of the sound API).

Everything written in here is of course only my personal opinion.

Best regards and have a good time!


Back to Top
 
Jarvis
Post: Mar 26th 2009 at 9:11 AM

>(although CPU time should no longer be a problem anyway...)

I like this argument (it's the same argument as Windows Vista)... I heard this for a long time...
So when will it no longer be a problem ?


Back to Top
 
wildsau
Post: Mar 26th 2009 at 2:14 PM

>>(although CPU time should no longer be a problem anyway...)

>I like this argument (it's the same argument as Windows Vista)... I heard this for a long time...
>So when will it no longer be a problem ?

The CPU is not the problem. For example, Eclipse feels on my Core 2 Duo (2.4 Ghz) system just as slow as on my notebook with an old 900 Mhz CPU. There is something else going on. In my experience the Java VM itself is nearly as fast as C++, i. e. in general within 50% of the performance of a modern C++ compiler (I do numerical calculations at my university).

I'm inclined to believe that SWT and Swing include deliberate delays at strategic code positions. :)

Can someone please enlighten me what is going in Java GUIs that they feel so "slow"?


Back to Top
 
Julian
Post: Mar 26th 2009 at 10:39 PM

Guys, this is a very old topic ( Dec 22nd 2006 at 2:20 PM )

it was an idea that i never had to say.
there is nothing done about, and there isn't nothing planned to do yet.

divinity666:
>> Java code is much better readable
I'm of those persons that think that if a code is readable or not, depends on how was it designed. not on the programing language itself.
ofcourse you are right on things like "debug" that are easier on languages that have runtimes.

>> The only reason I see against Java are the sound hoppings (which could also be a problem of the sound API).

It really isn't a problem for tuxguitar..
if you take a look, we have JNI sound plugins for win32 (tuxguitar-winmm), mac (tuxguitar-coreaudio), and gnulinux (tuxguitar-alsa, tuxguitar-oss, tuxguitar-fluidsynth)

if we would make a C++ version, the output sounds would be the same.. the only difference would be the "tuxguitar-jsa" plugin exclusion


Jarvis:
>> it's the same argument as Windows Vista
These are complety different things.
we are talking about same project written in different languages, while you are comparing it talking about a new (vista) project compared with any other OS running on same hardware.

tuxguitar will be the same. if new features came on c++ version, these features will be available on java version too. (vista have not same features as XP, so it's normal that it needs more hardware )


wildsau:
>> clipse feels on.........
>> I'm inclined to believe that SWT and Swing include deliberate delays at strategic code positions. :)

Eclipse, is a very big project, that can do a lot of things and it's complety pluggeable.
It is normal that an application of this category may be slow.
it's not a GUI issue. it's about all process that eclipse do in background.

It's not a simple text editor, and i really don't know any other IDE that supports that big count of features to compare the speed of it.
Just think..
* when you write a word on eclipse, a task in background is checking what you did to tell you if you have an error.
* the full plugin support that eclipse have, needs to run dynamically every time.
* autocomplete fields,methods,classes, etc.. also needs some background task.
* check for SVN/CVS changes you have every time.

the list is big...
all these things make eclipse slowly.. it's not about the GUI.

It's not easy to compare widget libraries, because you need to see what application are you running.
the only way to test the speed of them, is have the same application with ports of 2 or more toolkits.
sometimes 1 feature that one application have, may make it very slowly than other application like, but that don't means that the gui is slowly.

However if you take a look to SWT sources, it do allmost code on C while java code is just a wrapper.


Back to Top
 
Den24
Post: Jan 1st 2011 at 5:32 PM

Hi julian, (only just found the post via google lol)..
I only got the 1.2 version of tuxguitar 31/Dec/2010 after searching the net for programs like GuitarPro.

My pc is old (but i hav had it for years 15+):
Windows XP SP3, AMD sempron 2600+, 1.83GHz, 480MB RAM.

I can load GuitarPro 5 (need updates) but 6 just errors and quits :(, then i heard of your program tryed it and it works Perfectly (No Errors and can load .gp - .gp5 files),
also some tabs when loaded with guitar pro sound to high pitched where as on tuxguitar they sound like the real song.

Thankyou For This Great (and small) Program. :) And i hope you make more Great free programs. :D Chears.


Back to Top