-   (Windows) When testing custom spinlock implementation using
    InterlockedCompareExchange() and InterlockedExchange(), I was getting
    corrupted data.

        Turns out, you have to align all arguments to the interlocked
        functions on 32-bit boundaries.

-   (MacOSX) Had to add this to includes.h:

		#undef check

    in order to compile csound~.  Seems like check is a Mac OSX macro?

-   (MacOSX) To build boost.thread and boost.serialization, goto boost dir and:

        $ ./bootstrap.sh
        $ ./bjam serialization variant=debug,release link=static threading=multi
        $ ./bjam thread variant=debug,release link=static threading=multi
        $ cp bin.v2/libs/serialization/build/darwin-4.0.1/release/link-static/threading-multi/libboost_serialization.a ./_libs/
        $ cp bin.v2/libs/thread/build/darwin-4.0.1/release/link-static/threading-multi/libboost_thread.a ./_libs/

    To clean:

        $ ./bjam clean

-   Kept getting _CrtIsValidHeapPointer(pUserData) assertion failures due to
    MemoryFree() doing a realloc() before free() in an effort to detect 
    freeing of non-allocated memory.  That was stupid... :|

-   To build boost.thread and boost.serialization, goto boost dir and:
    
        $ bjam clean
        $ bjam serialization link=static threading=multi variant=debug,release runtime-link=static,shared runtime-debugging=on,off
        $ bjam thread link=static threading=multi variant=debug,release runtime-link=static,shared runtime-debugging=on,off

    Use Explorer to find all *.lib files in /bin.v2 directory.  Copy all files to: D:\boost_1_44_0_beta1\_libs

    To clean:
    
        $ bjam clean

-   Successful Debug build combo:

        Linker -> General -> Additional Library Directories: D:\boost_1_44_0_beta1\_libs

        Linker -> Input -> Additional Dependencies:

            .\..\..\c74support\max-includes\MaxAPI.lib
            .\..\..\c74support\msp-includes\MaxAudio.lib
            D:\pthreads\lib\pthreadGC2.lib
            D:\Csound\bin\csound64.lib
            D:\libsndfile\libsndfile-1.lib

        Linker -> Input -> Ignore Specific Default Libraries: maxcrt.lib

        C/C++ -> Code Generation -> Runtime Library: Multi-threaded Debug DLL (/MDd)

-   Received compilation error:

        1>D:\boost_1_44_0_beta1\boost/fusion/container/list/cons_iterator.hpp(21): error C2332: 'struct' : missing tag name
        1>D:\boost_1_44_0_beta1\boost/fusion/container/list/cons_iterator.hpp(21): error C2011: '<unnamed-tag>' : 'enum' type redefinition
        1>          C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\z_dsp.h(28) : see declaration of '<unnamed-tag>'

    Turns out that the Max headers define something called nil which boost::fusion also defines.

    To fix, add this after including Max headers OR before including boost::spirit headers:

        #undef nil
    
    Then make sure all files include 1 file (that includes the max headers and this #undef).

-   Got these errors:

        1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(11): error C2365: 'MAXCHAN' : redefinition; previous definition was 'enumerator'
        1>          C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(11) : see declaration of 'MAXCHAN'
        1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(14): error C2365: 'bi_basefreq' : redefinition; previous definition was 'enumerator'
        1>          C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(14) : see declaration of 'bi_basefreq'
        1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(15): error C2365: 'bi_detune' : redefinition; previous definition was 'enumerator'
        1>          C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(15) : see declaration of 'bi_detune'
        1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(16): error C2365: 'bi_lowfreq' : redefinition; previous definition was 'enumerator'
        1>          C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(16) : see declaration of 'bi_lowfreq'
        1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(17): error C2365: 'bi_hifreq' : redefinition; previous definition was 'enumerator'
        1>          C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(17) : see declaration of 'bi_hifreq'
        1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(18): error C2365: 'bi_lowvel' : redefinition; previous definition was 'enumerator'
        1>          C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(18) : see declaration of 'bi_lowvel'
        1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(19): error C2365: 'bi_hivel' : redefinition; previous definition was 'enumerator'
        1>          C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(19) : see declaration of 'bi_hivel'
        1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(20): error C2365: 'bi_gain' : redefinition; previous definition was 'enumerator'
        1>          C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(20) : see declaration of 'bi_gain'
        1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(22): error C2365: 'bi_numparams' : redefinition; previous definition was 'enumerator'
        1>          C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(22) : see declaration of 'bi_numparams'
        1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(29): error C2011: '_buffer' : 'struct' type redefinition
        1>          C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(29) : see declaration of '_buffer'

    Fixed by moving:

        #include "buffer.h"

    from CsoundTable.h -> CsoundTable.cpp.  Some sort of conflict between boost.spirit (included by Parser.h) and a max header.
-   To make compilation faster, moved:

        #include "Parser.h"

    from sequencer.h -> sequencer.cpp.  That way, files that include sequencer.h will compile faster.
       