Archive for January 2008

Visual Studio Express Edition

Microsoft has for a long as I can remember given away their C++ compiler for free. Trouble was it was only the compiler which is a command line tool and it was pretty hard to find on their site. The Express edition of Visual Studio Microsoft changes that and they have starting to give a version of their entire development system away for free.

I suspect this is mostly a response to the battle between Java and C#. Java has a couple of very good Ide’s that are totally free (NetBeans and Eclipse) . Being free this means they have found traction with beginners/hobby programmers and open source programmers - all of whom for very valid reasons for not wanting to spend a significant amount of money on Ide’s. Basically, Microsoft by producing a free version of visual studio, want to make sure as many programmers starting out get hooked on the Microsoft tool set as early as possible. One you are used to an Ide the resistance to change is pretty large, a bit like bank account.

My suspicion is the C++ express edition is an after thought in the sense "We may as well do them all". Until this week I had not really looked at the express edition mainly because I had assumed it was crippled a great deal and I would not enjoy the downgrade from the profession edition. I guess I was wrong on that. The express edition is cut down, it does not include a resource editor, support for openMP, x64 code generation or profile guided optimisation. I am sure there are plenty of of bits that got chopped as well.

For me none of this is a great problem, probably openMP is the thing I would miss. If you like to use C++ in its pure form for command line tools or for computing things or if you tend to use a lot of open source libraries like say SFML, SDL, Ogre, Wxwidgets, OpenGL, and so on. This is pretty much what my C++ programming involves it makes sense to use the express edition rather than paying. I believe the end user agreement even allow the express editions to be used in the production of commercial software.

Note: Before the nasty emails start I should add I think Eclipse and NetBeans are both professional quality tools that by being free means they are assessable to everyone. 

Sound Synth Screen Shot v0.03

Some more progress on the sound synth program. I have a couple of bugs to squash and then I will post another update for testing. The most noticeable change is the graphs for the frequency and amplitude have improved a great deal. I am sure I will reimagevisit the these again sometime in the near future. Although at the moment the gui is really being let down by the rather rubbish play button. I am thinking of getting rid of that and making so when you click the generated sound wave it triggers it to play. My only concern is it might be a bit confusing to a new user.

I am currently debating what to add next, I think it will be a few more wave forms so we can add some variety to the generated waves.

I am back into experimenting with Window Live writer. It has progressed since I last experimented with it. Looks a little bit more polished. SFML experimentation continues and I am still impressed, everything it does seems well thought out and bug free (Note, I have only tested it on windows). Perhaps the only things I really require from it is some built in drawing of simple primitives like lines and circles. This stuff is apparently on it way.

Starting to look a little bit nicer

After the decision not to use JFreeChart I have spent some time making my custom widget for editing the frequency and amplitude profiles look a lot better. This is certainly not my forte but I think I am getting there. I need to add some axis lines then I should be ready for another release.

Added the code for the new menu item. A cheap hack revealing my lack of knowledge of Swing, I just reinitialise everything! It works and happens in the flash of an eye so not something I am going to worry about until it needs to do something clever.

I have been investigating this SFML . It is a small portable C++ library for graphics and other media, It is in direct competition with SDL. It doesn’t have the number of ports to different operating systems that SDL has although the main ones are supported. What is does have is a very nice C++ interface and a nice set of tutorials to show you how to use them. I poked around the source code (it is open source) and the code looks clean and well documented. Some forums posts seem to indicate it is significantly faster than SDL. This, I think, can be explained by the fact SFML used OpenGL to render its 2D stuff while SDL does not do this, although I seem to recall they are heading that way. Both have bindings for you own OpenGL calls. It apparently integrates with various GUI ToolKits such as wx and gtk but I have not really investigated this part yet. Overall it is looking like quite a nice library and as I have been thinking about writing some small example code that requires some graphical output SFML seems to fit the bill.

JFreeChart not used.

Just a quick update. Decided the JFreeChart was not the way to go. The widgets I require are just a little bit to far off the norm to be easily achieved with JFreeChart. Well the learning curve would take longer than rolling my own, I won’t go into the datails. On the other hand JFreeChart is a good piece of software that I would have been happy using, in fact I may well use it for the more static graphs that I need. But only if I can get a consistant look across the application

I also noticed the menu option new doesn’t seem to be implemented. I thought I had put that in but looking at the code I seem to have missed. Make me wish there was a way of automatically testing UI features. I have plenty of tests for the more complicated interal algorithms but am not aware of any simple way to
check UIs are fully implemented.

I am considering letting MarbleMist.com expire and moving all downloads to MarbleMice.com. It seems
pointless have two websites that serve the same purpose.

Version 0.02 of SoundSynth

Well I have been pretty quiet lately, I think I lost some momentum. The issues started pre christmas when I seemed to catch one cold after another, Christmas mean zero programming but plenty of time to churn through a few books. Finally return to work and a trip to a conference seems to have eaten half of January up.

Pre Christmas I think I said I would try to get a new version up for people to try. Well here it is at last. Visit here to get the latest webstartable version. What is new well load and save of projects is in, so is export to a wave file. Some refactoring and probably a couple of other things. I forget as most of the work was done pre Christmas making it feel a long time ago.

Decide to add the export to wav files as I figured anyone using it in its current state should at least be given the opportunity to get something useful out of it. If I do decide to go shareware with this then that is the feature that will become crippled.

So what is next, Well I am just starting to experiment with JFreeChart as a possible replacement for my custom charts. They look really nice compared with my custom widgets. If I can get them interactive enough and they are not really slow then I think I will use it. Spending ages making my custom widgets look good is the back up plan and not one I really want to do. Otherwise I will gradually add some more features to continue to flesh out the app and of course refactor as I go.