Genome Work Log

I've decided to move Genome to the Juce framework. The main reason is to provide a richer GUI. Juce provides a nice set of controls and compiles across Mac and Linux platforms. Also it supports SVG (scalable vector graphics) which is something I am very interested in supporting. Having a fully scalable UI can basically future proof it as displays continue to increase. Previously I have been using Irrlicht for it's GUI functions. Even though Irrlicht is primarily a 3d engine, it does have some fairly simple and easily expandable GUI functionality (and it is cross platform). However irrlicht is fairly limited in the 2d department and I would need to spend a decent amount of time to expand it's capabilities, not to mention adding some extra GUI widgets that it doesn't have. Juce looks great out of the box and already has a bunch of the gui widgets I would need. Juce also could potentially replace a number of other dependencies since it provides cross platform classes for threading, networking, audio io, midi, .WAV/.OGG/.FLAC io and more. Since it was used to develop Traktion, it is ideally suited for making a studio app with. Also, it will make porting to other platforms much more easy.
I am basically going to have to rewrite all genome's GUI code from scratch, which will be time consuming but I think it will be worth it. There are about a dozen major pieces of code that need to be re-written (for example, the main song view, the track view, etc). Fortunately I took great pains to keep all the GUI functionality separate from the guts of genome so all of the underlying stuff will remain untouched - it's purely a matter of making the front end work the same way. Genome should also benefit from me taking a step back and reorganizing things and doing it better the second time. I think most programs benefit from being re-written a few times (if you've got the time and resources).


1 Comments:
As you're interested in SVG, try some links on http://svg.startpagina.nl
Post a Comment
<< Home