I have been searching for a long time for a valuable free (as beer and speech) midi sequencer under Windows. There are plenty of them under Linux, none under Windows. Don't know why.
But things are changing. A Ardour (GTK-based) port is scheduled and Wired's authors had the good idea to base their soft on wxWidgets.
Thus, I started a wired 'solution' with free (as "beer" !) VC++ 2005 Express edition and wxWidgets 2.6.3.
I don't think either that a port under Cygwin is a good idea (see previous thread 'wired-packagers mailing list'), because - in short :
- Cygwin is cumbersome
- VC++ 8.0 features a better compiler than GCC (speed, footprint)
After fighting several hours, I succeeded in producing a binary. But I had to comment calls to external libraries since most of them are not compliant with VC++ 8.0. So I only have a GUI, not a functionnal soft.
I believe future of Wired under Windows would reside in a Code::Blocks project, a promising potential Visual C++ killer, but still compiled with M$ compiler (granted, last GCC versions seem promising under Windows, too). There are three main remaining tasks for Windows port :
- Fix GUI glitches
- Get every external third-party libraries work
- Handle external plug-ins : Buzz, PSycle, VST (?), ... ?
I can provide interested people with an archive containing source and exe.
To admins : where can I put this archive ?
Here are a few rules to get source code more portable :
- Put "using namespace std;" after the C++ STL inclusions.
- Never declare :
where size is a variable (NOT a constant). Instead, do :
float* p = new float[size];
- bzero() is not supported under Windows. Use memset(-,0,length) instead
- round() is not supported under Windows. Use ceil() or floor() instead ?
- wxPaintDC() is forbidden outside OnPaint(). Use wxClientDC() instead.
- Some aggressive casts with connect() are not supported. Use a valid wx handler instead.
Really, Code::Blocks is a KILLER IDE. I downloaded the last build (24-Jul-2006) and I'm very impressed with it.