Windows Port

2006-07-23
2013-04-24
  • Hi all,

    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 :
    float foo[size];
    where size is a variable (NOT a constant). Instead, do :
    float* p = new float[size];
    ...
    delete[] p;

    - 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.

    Cheers,

     
    • Daniel Moura
      Daniel Moura
      2006-07-24

      Alexis,

      Really, Code::Blocks is a KILLER IDE. I downloaded the last build (24-Jul-2006) and I'm very impressed with it.