Update of /cvsroot/audacity/audacity-src/src
In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv26476

Modified Files:
        AudioIO.cpp AudioIO.h Menus.cpp NoteTrack.cpp NoteTrack.h 
        Printing.cpp Project.cpp Track.cpp Track.h TrackArtist.cpp 
        TrackArtist.h TrackPanel.cpp 
Log Message:
Removed EXPERIMENTAL_NOTE_TRACK from the Audacity project.  In order to turn 
MIDI on and off, we now use the USE_MIDI flag instead of the 
EXPERIMENTAL_NOTE_TRACK flag.

Index: Printing.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/Printing.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- Printing.cpp        1 Jul 2008 22:05:10 -0000       1.4
+++ Printing.cpp        7 Jul 2008 18:13:43 -0000       1.5
@@ -126,11 +126,11 @@
 #endif
          }
          break;
-         #ifdef USE_MIDI 
+#ifdef USE_MIDI 
       case Track::Note:
          artist.DrawNoteTrack((NoteTrack *)n, *dc, r, &viewInfo);
          break;
-         #endif
+#endif // USE_MIDI
       case Track::Label:
          artist.DrawLabelTrack((LabelTrack *)n, *dc, r, &viewInfo);
          break;

Index: AudioIO.h
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/AudioIO.h,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -d -r1.59 -r1.60
--- AudioIO.h   3 Jul 2008 16:47:51 -0000       1.59
+++ AudioIO.h   7 Jul 2008 18:13:43 -0000       1.60
@@ -20,7 +20,7 @@
 //#include "portmidi.h"
 //#include "porttime.h"
 #include "allegro.h"
-#endif /* USE_MIDI */
+#endif // USE_MIDI
 
 #if USE_PORTMIXER
 #include "portmixer.h"
@@ -58,9 +58,7 @@
    virtual void OnAudioIONewBlockFiles(const wxString& blockFileLog) = 0;
 };
 
-#ifdef EXPERIMENTAL_NOTE_TRACK
 #define MAX_MIDI_BUFFER_SIZE 5000
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 class AudioIO {
 
  public:
@@ -84,10 +82,8 @@
     * instance.  For use with IsStreamActive() below */
 
    int StartStream(WaveTrackArray playbackTracks, WaveTrackArray captureTracks,
-#ifdef EXPERIMENTAL_NOTE_TRACK
 /* REQUIRES PORTMIDI */
                    //NoteTrackArray midiTracks,
-#endif /* EXPERIMENTAL_NOTE_TRACK */
                    TimeTrack *timeTrack, double sampleRate,
                    double t0, double t1,
                    AudioIOListener* listener,
@@ -277,17 +273,13 @@
                              unsigned int numCaptureChannels,
                              sampleFormat captureFormat);
 
-#ifdef EXPERIMENTAL_NOTE_TRACK
 /* REQUIRES PORTMIDI */
 //   bool StartPortMidiStream();
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
    void FillBuffers();
 
-#ifdef EXPERIMENTAL_NOTE_TRACK
 /* REQUIRES PORTMIDI */
 //   void  FillMidiBuffers();
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
    /** \brief Get the number of audio samples free in all of the playback
     * buffers.
@@ -332,7 +324,6 @@
 
    double NormalizeStreamTime(double absoluteTime) const;
 
-#ifdef EXPERIMENTAL_NOTE_TRACK
 //   MIDI_PLAYBACK:
 //   PmStream           *mMidiStream;
 //   PmEvent             mMidiBuffer[MAX_MIDI_BUFFER_SIZE];
@@ -346,7 +337,6 @@
 //   long                mMidiWait;
 //   bool                mMidiStreamActive;
 //   bool                mUpdateMidiTracks;
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
    AudioThread        *mThread;
    Resample          **mResample;
@@ -355,12 +345,10 @@
    RingBuffer        **mPlaybackBuffers;
    WaveTrackArray      mPlaybackTracks;
 
-#ifdef EXPERIMENTAL_NOTE_TRACK
 /* REQUIRES PORTMIDI */
 //   NoteTrackArray      mMidiPlaybackTracks;
 //   RingBuffer        **mMidiPlaybackBuffers;
 //   NoteTrackArray      mMidiCaptureTracks;
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
    Mixer             **mPlaybackMixers;
    int                 mStreamToken;
@@ -381,10 +369,8 @@
    bool                mPaused;
 #if USE_PORTAUDIO_V19
    PaStream           *mPortStreamV19;
-#ifdef EXPERIMENTAL_NOTE_TRACK
 /* REQUIRES PORTMIDI */
 //   volatile bool       mInCallbackFinishedState;
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
 #else /* USE_PORTAUDIO_V19 */
    PortAudioStream    *mPortStreamV18;
@@ -402,12 +388,10 @@
    volatile bool       mAudioThreadFillBuffersLoopRunning;
    volatile bool       mAudioThreadFillBuffersLoopActive;
 
-#ifdef EXPERIMENTAL_NOTE_TRACK
 /* REQUIRES PORTMIDI */
 //   volatile bool       mMidiThreadShouldCallFillBuffersOnce;
 //   volatile bool       mMidiThreadFillBuffersLoopRunning;
 //   volatile bool       mMidiThreadFillBuffersLoopActive;
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
    volatile double     mLastRecordingOffset;
    PaError             mLastPaError;

Index: AudioIO.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/AudioIO.cpp,v
retrieving revision 1.190
retrieving revision 1.191
diff -u -d -r1.190 -r1.191
--- AudioIO.cpp 6 Jul 2008 18:35:54 -0000       1.190
+++ AudioIO.cpp 7 Jul 2008 18:13:40 -0000       1.191
@@ -45,10 +45,8 @@
 
 #include <math.h>
 #include <stdlib.h>
-#ifdef EXPERIMENTAL_NOTE_TRACK
 //   MIDI_PLAYBACK:
 //#include <string.h>
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
 #ifdef __WXMSW__
 #include <malloc.h>
@@ -70,10 +68,8 @@
 #include "AudacityApp.h"
 #include "AudioIO.h"
 #include "WaveTrack.h"
-#ifdef EXPERIMENTAL_NOTE_TRACK
 //   MIDI_PLAYBACK:
 //#include "NoteTrack.h"
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 #include "Mix.h"
 #include "Resample.h"
 #include "RingBuffer.h"
@@ -131,10 +127,9 @@
                           PaTimestamp outTime, void *userData );
 #endif
 
-#ifdef EXPERIMENTAL_NOTE_TRACK
 //   MIDI_PLAYBACK:
 //int compareTime( const void* a, const void* b );
-#endif /* EXPERIMENTAL_NOTE_TRACK */
+
 //////////////////////////////////////////////////////////////////////
 //
 //     class AudioThread - declaration and glue code
@@ -234,12 +229,10 @@
    mInCallbackFinishedState = false;
 #endif
 
-#ifdef EXPERIMENTAL_NOTE_TRACK
 //   MIDI_PLAYBACK:
 //   mMidiStream = NULL;
 //   mMidiStreamActive = false;
 //   mUpdateMidiTracks = false;
-#endif /* EXPERIMENTAL_NOTE_TRACK */
    mStreamToken = 0;
    mStopStreamCount = 0;
    mTempFloats = new float[65536]; // TODO: out channels * PortAudio buffer 
size
@@ -273,7 +266,6 @@
       // but any attempt to play or record will simply fail.
    }
 
-#ifdef EXPERIMENTAL_NOTE_TRACK
 /* REQUIRES PORTMIDI */
 //   PmError pmErr = Pm_Initialize();
 
@@ -289,7 +281,6 @@
 
       // Same logic for PortMidi as described above for PortAudio
 //   }
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
    // Start thread
    mThread = new AudioThread();
@@ -321,10 +312,9 @@
    }
 #endif
    Pa_Terminate();
-#ifdef EXPERIMENTAL_NOTE_TRACK
+
 /* REQUIRES PORTMIDI */
 //   Pm_Terminate();
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
    /* Delete is a "graceful" way to stop the thread.
       (Kill is the not-graceful way.) */
@@ -838,10 +828,8 @@
 
 int AudioIO::StartStream(WaveTrackArray playbackTracks,
                          WaveTrackArray captureTracks,
-#ifdef EXPERIMENTAL_NOTE_TRACK
 /* REQUIRES PORTMIDI */
-                   //NoteTrackArray midiPlaybackTracks,
-#endif /* EXPERIMENTAL_NOTE_TRACK */
+                         //NoteTrackArray midiPlaybackTracks,
                          TimeTrack *timeTrack, double sampleRate,
                          double t0, double t1,
                          AudioIOListener* listener,
@@ -907,10 +895,8 @@
    mLastRecordingOffset = 0;
    mPlaybackTracks = playbackTracks;
    mCaptureTracks  = captureTracks;
-#ifdef EXPERIMENTAL_NOTE_TRACK
 /* REQUIRES PORTMIDI */
 //   mMidiPlaybackTracks = midiPlaybackTracks;
-#endif /* EXPERIMENTAL_NOTE_TRACK */
    mPlayLooped = playLooped;
    mCutPreviewGapStart = cutPreviewGapStart;
    mCutPreviewGapLen = cutPreviewGapLen;
@@ -968,11 +954,6 @@
          mListener->OnAudioIOStartRecording();
    }
    
-#ifndef EXPERIMENTAL_NOTE_TRACK
-   bool success = StartPortAudioStream(sampleRate, playbackChannels,
-                                       captureChannels, captureFormat);
-#else /* EXPERIMENTAL_NOTE_TRACK */
-/* HCK MIDI PATCH START */
    bool successAudio;
 
 /* REQUIRES PORTMIDI */
@@ -985,25 +966,11 @@
 //   if( !mPlaybackTracks.IsEmpty() ){
       successAudio = StartPortAudioStream(sampleRate, playbackChannels,
                                        captureChannels, captureFormat);
-/* HCK MIDI PATCH END */
-#endif /* EXPERIMENTAL_NOTE_TRACK */
-   
-#ifndef EXPERIMENTAL_NOTE_TRACK
-   if (!success) {
-#else /* EXPERIMENTAL_NOTE_TRACK */
-/* HCK MIDI PATCH START */
+
    if (!successAudio) {
-/* HCK MIDI PATCH END */
-#endif /* EXPERIMENTAL_NOTE_TRACK */
       if (mListener && captureChannels > 0)
          mListener->OnAudioIOStopRecording();
       mStreamToken = 0;
-#ifdef EXPERIMENTAL_NOTE_TRACK
-//   MIDI_PLAYBACK:
-//      printf( "***************************\n" );
-//      printf( "EXPERIMENTAL_NOTE_TRACK return #1\n" );
-//      printf( "***************************\n");
-#endif /* EXPERIMENTAL_NOTE_TRACK */
       return 0;
    }
 
@@ -1079,12 +1046,6 @@
          mListener->OnAudioIOStopRecording();
       wxPrintf(wxT("%hs\n"), Pa_GetErrorText(err));
       mStreamToken = 0;
-#ifdef EXPERIMENTAL_NOTE_TRACK
-//   MIDI_PLAYBACK:
-//      printf( "***************************\n" );
-//      printf( "EXPERIMENTAL_NOTE_TRACK return #2\n" );
-//      printf( "***************************\n");
-#endif /* EXPERIMENTAL_NOTE_TRACK */
       return 0;
    }
 
@@ -1095,17 +1056,14 @@
    // clients accessing the AudioIO API, so they can query if
    // are the ones who have reserved AudioIO or not.
    //
-#ifdef EXPERIMENTAL_NOTE_TRACK
 //   MIDI_PLAYBACK:
 //   }
 
-#endif /* EXPERIMENTAL_NOTE_TRACK */
    mStreamToken = (++mNextStreamToken);
 
    return mStreamToken;
 }
 
-#ifdef EXPERIMENTAL_NOTE_TRACK
 /* HCK MIDI PATCH START */
 /* REQUIRES PORTMIDI */
 //bool AudioIO::StartPortMidiStream() 
@@ -1191,8 +1149,6 @@
 /* REQUIRES PORTMIDI END */
 /* HCK MIDI PATCH END */
 
-#endif /* EXPERIMENTAL_NOTE_TRACK */
-
 void AudioIO::SetMeters(Meter *inputMeter, Meter *outputMeter)
 {
    mInputMeter = inputMeter;
@@ -1208,29 +1164,19 @@
 
 void AudioIO::StopStream()
 {
-#ifdef EXPERIMENTAL_NOTE_TRACK
 //   MIDI_PLAYBACK:
-//   printf( "EXPERIMENTAL_NOTE_TRACK StopStream\n" );
-#endif /* EXPERIMENTAL_NOTE_TRACK */
+//   printf( "HCK StopStream\n" );
  #if USE_PORTAUDIO_V19
-#ifndef EXPERIMENTAL_NOTE_TRACK
-   if( mPortStreamV19 == NULL )
-#else /* EXPERIMENTAL_NOTE_TRACK */
    if( mPortStreamV19 == NULL 
 /* REQUIRES PORTMIDI */
-//      && mMidiStream == NULL 
-      )
-#endif /* EXPERIMENTAL_NOTE_TRACK */
+//        && mMidiStream == NULL 
+          )
       return;
 
-#ifndef EXPERIMENTAL_NOTE_TRACK
-   if( Pa_IsStreamStopped( mPortStreamV19 ) )
-#else /* EXPERIMENTAL_NOTE_TRACK */
    if( Pa_IsStreamStopped( mPortStreamV19 ) 
 /* REQUIRES PORTMIDI */
-//      && !mMidiStreamActive 
-      )
-#endif /* EXPERIMENTAL_NOTE_TRACK */
+//        && !mMidiStreamActive 
+          )
       return;
  #else
    if( mPortStreamV18 == NULL )
@@ -1314,7 +1260,6 @@
       mInCallbackFinishedState = false;
    }
 #endif
-#ifdef EXPERIMENTAL_NOTE_TRACK
 /* REQUIRES PORTMIDI */
    /* Stop Midi playback */
 //   if ( mMidiStream )
@@ -1336,7 +1281,6 @@
 //      mLastMidiTime = 0;
 //      mSeq->iteration_end();
 //   }
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
    // If there's no token, we were just monitoring, so we can
    // skip this next part...
@@ -1487,24 +1431,6 @@
    return false;
 }
 
-#ifndef EXPERIMENTAL_NOTE_TRACK
-bool AudioIO::IsStreamActive()
-{
-#if USE_PORTAUDIO_V19
-   if( mPortStreamV19 )
-      return Pa_IsStreamActive( mPortStreamV19 ) != 0;
-   else
-      return false;
-#else
-   if( mPortStreamV18 &&
-       Pa_StreamActive( mPortStreamV18 ) &&
-       mInCallbackFinishedState == false )
-      return true;
-   else
-      return false;
-#endif
-}
-#else /* EXPERIMENTAL_NOTE_TRACK */
 bool AudioIO::IsStreamActive()
 {
    bool isActive = false;
@@ -1525,7 +1451,6 @@
 //      isActive = true;
    return isActive;
 }
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
 bool AudioIO::IsStreamActive(int token)
 {
@@ -1874,14 +1799,11 @@
          gAudioIO->FillBuffers();
       }
 
-#ifdef EXPERIMENTAL_NOTE_TRACK
 /* REQUIRES PORTMIDI */
 //     if( gAudioIO->mMidiStreamActive )
 //      {
 //         gAudioIO->FillMidiBuffers();
 //      }
-
-#endif /* EXPERIMENTAL_NOTE_TRACK */
       Sleep(10);
    }
 
@@ -2404,16 +2326,10 @@
    }
 
    gAudioIO->mAudioThreadFillBuffersLoopActive = false;
-#ifdef EXPERIMENTAL_NOTE_TRACK
-
-/* HCK MIDI PATCH START */
    //if ( mMidiStreamActive && mMidiPlaybackTracks.GetCount() > 0 )
       //FillMidiBuffers();
-/* HCK MIDI PATCH END */
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 }
 
-#ifdef EXPERIMENTAL_NOTE_TRACK
 /* HCK MIDI PATCH START */
 /* REQUIRES PORTMIDI */
 //void AudioIO::FillMidiBuffers()
@@ -2465,7 +2381,7 @@
 
 //         while ( currEvent = testSeq->iteration_next() )
 //         {
-            // TODO EXPERIMENTAL_NOTE_TRACK : this loop has Russian painter 
problem
+            // TODO HCK : this loop has Russian painter problem
             /*
             // In Update mode, events should be delivered immediately
             if (mUpdateMidiTracks)
@@ -2505,12 +2421,12 @@
 //            if( mCnt > 0 )
 //            {
 //               j = 0;
-//               printf( "EXPERIMENTAL_NOTE_TRACK : sorting...\n" );
+//               printf( "HCK : sorting...\n" );
 //               qsort( mMidiQueue, mCnt, sizeof( PmEvent ), compareTime );
-//               printf( "EXPERIMENTAL_NOTE_TRACK : sorting...\n" );
+//               printf( "HCK : sorting...\n" );
 //               for( int azaa = 0; azaa < mCnt; azaa++ )
 //               {
-//                  printf( "EXPERIMENTAL_NOTE_TRACK : SORT : %f %f\n", 
(float)mMidiQueue[azaa].timestamp, (float)time );
+//                  printf( "HCK : SORT : %f %f\n", 
(float)mMidiQueue[azaa].timestamp, (float)time );
 //               }
 //               while( mMidiQueue[j].timestamp <= time )
 //               {
@@ -2518,12 +2434,12 @@
 //                  memcpy( &mMidiBuffer[i].message, &mMidiQueue[j].message,
 //                     sizeof( PmMessage ) );
 
-//                  printf( "EXPERIMENTAL_NOTE_TRACK : QUEUE!!!! : mCnt       
: %d\n", mCnt );
-//                  printf( "EXPERIMENTAL_NOTE_TRACK : QUEUE!!!! : j          
: %d\n", j );
-//                  printf( "EXPERIMENTAL_NOTE_TRACK : QUEUE!!!! : timestampQ 
: %f\n", (float)mMidiQueue[j].timestamp );
-//                  printf( "EXPERIMENTAL_NOTE_TRACK : QUEUE!!!! : timestampB 
: %f\n", (float)mMidiBuffer[i].timestamp );
-//                  printf( "EXPERIMENTAL_NOTE_TRACK : QUEUE!!!! : data Q     
: %f\n", (float)mMidiQueue[j].message );
-//                  printf( "EXPERIMENTAL_NOTE_TRACK : QUEUE!!!! : data B     
: %f\n", (float)mMidiBuffer[i].message );
+//                  printf( "HCK : QUEUE!!!! : mCnt       : %d\n", mCnt );
+//                  printf( "HCK : QUEUE!!!! : j          : %d\n", j );
+//                  printf( "HCK : QUEUE!!!! : timestampQ : %f\n", 
(float)mMidiQueue[j].timestamp );
+//                  printf( "HCK : QUEUE!!!! : timestampB : %f\n", 
(float)mMidiBuffer[i].timestamp );
+//                  printf( "HCK : QUEUE!!!! : data Q     : %f\n", 
(float)mMidiQueue[j].message );
+//                  printf( "HCK : QUEUE!!!! : data B     : %f\n", 
(float)mMidiBuffer[i].message );
 
 //                  i++;
 //                  j++;
@@ -2639,7 +2555,7 @@
 //            {
 //               mMidiBuffer[i].timestamp = time;
 //               mMidiBuffer[i].message = Pm_Message((int)(command + channel), 
(long)data1, (long)data2);
-//               printf( "EXPERIMENTAL_NOTE_TRACK[%d]\n", i );
+//               printf( "HCK[%d]\n", i );
 //               printf( "Command     : %d\n", (int)command );
 //               printf( "mTime       : %f\n", (float)gAudioIO->mTime );
 //               printf( "TimeStamp   : %f\n", (float)mMidiBuffer[i].timestamp 
);
@@ -2652,7 +2568,7 @@
 //               {
 //                  mMidiQueue[mCnt].timestamp = time + 
(long)currEvent->get_duration() * 1000;
 //                  mMidiQueue[mCnt].message = Pm_Message((int)(0x90 + 
channel), (long)data1, 0 );
-//                  printf( "EXPERIMENTAL_NOTE_TRACK QUEUE[%d]\n", mCnt );
+//                  printf( "HCK QUEUE[%d]\n", mCnt );
 //                  printf( "Command     : OFF\n" );
 //                  printf( "mTime       : %f\n", (float)gAudioIO->mTime );
 //                  printf( "TimeStamp   : %f\n", 
(float)mMidiQueue[mCnt].timestamp );
@@ -2688,7 +2604,7 @@
 //            {
 //               if( !mUpdateMidiTracks )
 //               {
-//                  printf( "EXPERIMENTAL_NOTE_TRACK : Pm_Write : 111111111\n" 
);
+//                  printf( "HCK : Pm_Write : 111111111\n" );
                   //qsort( mMidiBuffer, i, sizeof( PmEvent ), compareTime );
 //                  Pm_Write(mMidiStream, mMidiBuffer, i);
 //                  mMidiWait = time - 1000;
@@ -2702,7 +2618,7 @@
 //            {
 //               if( !mUpdateMidiTracks )
 //               {
-//                  printf( "EXPERIMENTAL_NOTE_TRACK : Pm_Write : 222222222\n" 
);
+//                  printf( "HCK : Pm_Write : 222222222\n" );
                   //qsort( mMidiBuffer, i, sizeof( PmEvent ), compareTime );
 //                  Pm_Write( mMidiStream, mMidiBuffer, i );
 //                  mMidiWait = time - 1000;
@@ -2726,7 +2642,6 @@
 //}
 /* HCK MIDI PATCH END */
 
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 //////////////////////////////////////////////////////////////////////
 //
 //    PortAudio callback thread context
@@ -3164,14 +3079,12 @@
    return callbackReturn;
 }
 
-#ifdef EXPERIMENTAL_NOTE_TRACK
 /* REQUIRES PORTMIDI */
 //int compareTime( const void* a, const void* b )
 //{
 //   return( (int)((*(PmEvent*)a).timestamp - (*(PmEvent*)b).timestamp ) );
 //}
 
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 // Indentation settings for Vim and Emacs and unique identifier for Arch, a
 // version control system. Please do not modify past this point.
 //

Index: TrackArtist.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/TrackArtist.cpp,v
retrieving revision 1.120
retrieving revision 1.121
diff -u -d -r1.120 -r1.121
--- TrackArtist.cpp     1 Jul 2008 22:05:10 -0000       1.120
+++ TrackArtist.cpp     7 Jul 2008 18:13:44 -0000       1.121
@@ -40,7 +40,7 @@
 #ifdef USE_MIDI
 #include "allegro.h"
 #include "NoteTrack.h"
-#endif
+#endif // USE_MIDI
 
 #include "AColor.h"
 #include "BlockFile.h"
@@ -79,7 +79,7 @@
 const int notePos[12] = { 1, 6, 11, 16, 21,
    27, 32, 37, 42, 47, 52, 57
 };
-#endif
+#endif // USE_MIDI
 
 TrackArtist::TrackArtist()
 {
@@ -2187,32 +2187,9 @@
         d: the coordinate is at the baseline of the string (default)
       Thus, -justifys:"lt" places the left top of the string at the point
         given by (pitch, time). The default value is "ld".
-
- */
+*/
 
 /* Declare Static functions */
-#ifndef EXPERIMENTAL_NOTE_TRACK
-static char *IsShape(Allegro_note_ptr note);
-static double LookupRealAttribute(Allegro_note_ptr note, Attribute attr, 
double def);
-static long LookupIntAttribute(Allegro_note_ptr note, Attribute attr, long 
def);
-static bool LookupLogicalAttribute(Allegro_note_ptr note, Attribute attr, bool 
def);
-static const char *LookupStringAttribute(Allegro_note_ptr note, Attribute 
attr, const char *def);
-static char *LookupAtomAttribute(Allegro_note_ptr note, Attribute attr, char 
*def);
-static int PITCH_TO_Y(double p, int bottom);
-static char *LookupAtomAttribute(Allegro_note_ptr note, Attribute attr, char 
*def);
-static int PITCH_TO_Y(double p, int bottom);
-
-#else /* EXPERIMENTAL_NOTE_TRACK */
-//static char *IsShape(Allegro_note_ptr note);
-//static char *IsShape(Alg_note_ptr note);
-//static double LookupRealAttribute(Allegro_note_ptr note, Attribute attr, 
double def);
-//static long LookupIntAttribute(Allegro_note_ptr note, Attribute attr, long 
def);
-//static bool LookupLogicalAttribute(Allegro_note_ptr note, Attribute attr, 
bool def);
-//static const char *LookupStringAttribute(Allegro_note_ptr note, Attribute 
attr, const char *def);
-//static char *LookupAtomAttribute(Allegro_note_ptr note, Attribute attr, char 
*def);
-//static int PITCH_TO_Y(double p, int bottom);
-//static char *LookupAtomAttribute(Allegro_note_ptr note, Attribute attr, char 
*def);
-//static int PITCH_TO_Y(double p, int bottom);
 static char *IsShape(Alg_note_ptr note);
 static double LookupRealAttribute(Alg_note_ptr note, Alg_attribute attr, 
double def);
 static long LookupIntAttribute(Alg_note_ptr note, Alg_attribute attr, long 
def);
@@ -2222,28 +2199,11 @@
 static int PITCH_TO_Y(double p, int bottom);
 static char *LookupAtomAttribute(Alg_note_ptr note, Alg_attribute attr, char 
*def);
 static int PITCH_TO_Y(double p, int bottom);
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
 // returns NULL if note is not a shape,
 // returns atom (string) value of note if note is a shape
-#ifndef EXPERIMENTAL_NOTE_TRACK
-char *IsShape(Allegro_note_ptr note)
-{
-  Parameters_ptr parameters = note->parameters;
-  while (parameters) {
-    if (strcmp(parameters->parm.attr_name(), "shapea") == 0) {
-      return parameters->parm.a;
-    }
-    parameters = parameters->next;
-  }
-  return NULL;
-}
-
-#else /* EXPERIMENTAL_NOTE_TRACK */
-//char *IsShape(Allegro_note_ptr note)
 char *IsShape(Alg_note_ptr note)
 {
-  //Parameters_ptr parameters = note->parameters;
   Alg_parameters_ptr parameters = note->parameters;
   while (parameters) {
     if (strcmp(parameters->parm.attr_name(), "shapea") == 0) {
@@ -2253,28 +2213,10 @@
   }
   return NULL;
 }
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
 // returns value of attr, or default if not found
-#ifndef EXPERIMENTAL_NOTE_TRACK
-double LookupRealAttribute(Allegro_note_ptr note, Attribute attr, double def)
-{
-  Parameters_ptr parameters = note->parameters;
-  while (parameters) {
-    if (parameters->parm.attr_name() == attr + 1 &&
-        parameters->parm.attr_type() == 'r') {
-      return parameters->parm.r;
-    }
-    parameters = parameters->next;
-  }
-  return def;
-}
-
-#else /* EXPERIMENTAL_NOTE_TRACK */
-//double LookupRealAttribute(Allegro_note_ptr note, Attribute attr, double def)
 double LookupRealAttribute(Alg_note_ptr note, Alg_attribute attr, double def)
 {
-  //Parameters_ptr parameters = note->parameters;
   Alg_parameters_ptr parameters = note->parameters;
   while (parameters) {
     if (parameters->parm.attr_name() == attr + 1 &&
@@ -2285,28 +2227,10 @@
   }
   return def;
 }
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
 // returns value of attr, or default if not found
-#ifndef EXPERIMENTAL_NOTE_TRACK
-long LookupIntAttribute(Allegro_note_ptr note, Attribute attr, long def)
-{
-  Parameters_ptr parameters = note->parameters;
-  while (parameters) {
-    if (parameters->parm.attr_name() == attr + 1 &&
-        parameters->parm.attr_type() == 'i') {
-      return parameters->parm.i;
-    }
-    parameters = parameters->next;
-  }
-  return def;
-}
-
-#else /* EXPERIMENTAL_NOTE_TRACK */
-//long LookupIntAttribute(Allegro_note_ptr note, Attribute attr, long def)
 long LookupIntAttribute(Alg_note_ptr note, Alg_attribute attr, long def)
 {
-  //Parameters_ptr parameters = note->parameters;
   Alg_parameters_ptr parameters = note->parameters;
   while (parameters) {
     if (parameters->parm.attr_name() == attr + 1 &&
@@ -2317,27 +2241,10 @@
   }
   return def;
 }
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
 // returns value of attr, or default if not found
-#ifndef EXPERIMENTAL_NOTE_TRACK
-bool LookupLogicalAttribute(Allegro_note_ptr note, Attribute attr, bool def)
-{
-  Parameters_ptr parameters = note->parameters;
-  while (parameters) {
-    if (parameters->parm.attr_name() == attr + 1 &&
-        parameters->parm.attr_type() == 'l') {
-      return parameters->parm.l;
-    }
-    parameters = parameters->next;
-  }
-  return def;
-}
-#else /* EXPERIMENTAL_NOTE_TRACK */
-//bool LookupLogicalAttribute(Allegro_note_ptr note, Attribute attr, bool def)
 bool LookupLogicalAttribute(Alg_note_ptr note, Alg_attribute attr, bool def)
 {
-  //Parameters_ptr parameters = note->parameters;
   Alg_parameters_ptr parameters = note->parameters;
   while (parameters) {
     if (parameters->parm.attr_name() == attr + 1 &&
@@ -2348,27 +2255,10 @@
   }
   return def;
 }
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
 // returns value of attr, or default if not found
-#ifndef EXPERIMENTAL_NOTE_TRACK
-const char *LookupStringAttribute(Allegro_note_ptr note, Attribute attr, const 
char *def)
-{
-  Parameters_ptr parameters = note->parameters;
-  while (parameters) {
-    if (parameters->parm.attr_name() == attr + 1 &&
-        parameters->parm.attr_type() == 's') {
-      return parameters->parm.s;
-    }
-    parameters = parameters->next;
-  }
-  return def;
-}
-#else /* EXPERIMENTAL_NOTE_TRACK */
-//const char *LookupStringAttribute(Allegro_note_ptr note, Attribute attr, 
const char *def)
 const char *LookupStringAttribute(Alg_note_ptr note, Alg_attribute attr, const 
char *def)
 {
-  //Parameters_ptr parameters = note->parameters;
   Alg_parameters_ptr parameters = note->parameters;
   while (parameters) {
     if (parameters->parm.attr_name() == attr + 1 &&
@@ -2379,27 +2269,10 @@
   }
   return def;
 }
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
 // returns value of attr, or default if not found
-#ifndef EXPERIMENTAL_NOTE_TRACK
-char *LookupAtomAttribute(Allegro_note_ptr note, Attribute attr, char *def)
-{
-  Parameters_ptr parameters = note->parameters;
-  while (parameters) {
-    if (parameters->parm.attr_name() == attr + 1 &&
-        parameters->parm.attr_type() == 'a') {
-      return parameters->parm.s;
-    }
-    parameters = parameters->next;
-  }
-  return def;
-}
-#else /* EXPERIMENTAL_NOTE_TRACK */
-//char *LookupAtomAttribute(Allegro_note_ptr note, Attribute attr, char *def)
 char *LookupAtomAttribute(Alg_note_ptr note, Alg_attribute attr, char *def)
 {
-  //Parameters_ptr parameters = note->parameters;
   Alg_parameters_ptr parameters = note->parameters;
   while (parameters) {
     if (parameters->parm.attr_name() == attr + 1 &&
@@ -2410,8 +2283,7 @@
   }
   return def;
 }
-#endif /* EXPERIMENTAL_NOTE_TRACK */
-#endif /* USE_MIDI */
+#endif // USE_MIDI
 
 #define TIME_TO_X(t) (r.x + (int) (((t) - h) * pps))
 #define X_TO_TIME(xx) (((xx) - r.x) / pps + h)
@@ -2453,10 +2325,6 @@
 
   double h1 = X_TO_TIME(r.x + r.width);
 
-#ifndef EXPERIMENTAL_NOTE_TRACK
-  Seq_ptr seq = track->mSeq;
-#else /* EXPERIMENTAL_NOTE_TRACK */
-  //Seq_ptr seq = track->mSeq;
   Alg_seq_ptr seq = track->mSeq;
   if (!seq) {
          assert(track->mSerializationBuffer);
@@ -2468,7 +2336,6 @@
          track->mSerializationBuffer = NULL;
   }
   assert(seq);
-#endif /* EXPERIMENTAL_NOTE_TRACK */
   int visibleChannels = track->mVisibleChannels;
 
   if (!track->GetSelected())
@@ -2520,13 +2387,6 @@
    }
 
   dc.SetClippingRegion(r);
-#ifndef EXPERIMENTAL_NOTE_TRACK
-  int numEvents = seq->notes.len;
-  int index;
-#else /* EXPERIMENTAL_NOTE_TRACK */
-//  int numEvents = seq->notes.len;
-//  int index;
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
   // NOTE: it would be better to put this in some global initialization
   // function rather than do lookups every time.
@@ -2554,23 +2414,6 @@
   char *sizei = symbol_table.insert_string("sizei");
   char *justifys = symbol_table.insert_string("justifys");
 
-#ifndef EXPERIMENTAL_NOTE_TRACK
-  for(index=0; index<numEvents; index++) {
-    if (seq->notes[index]->type == 'n') {
-
-      Allegro_note_ptr note = (Allegro_note_ptr)(seq->notes[index]);
-      if (visibleChannels & (1 << (seq->notes[index]->chan & 15))) {
-          //The rest of this function is the same as the 
-          //EXPERIMENTAL_NOTE_TRACK version,so it
-          //continues after the #endif.
-
-#else /* EXPERIMENTAL_NOTE_TRACK */
-//  for(index=0; index<numEvents; index++) {
-//    if (seq->notes[index]->type == 'n') {
-//      Allegro_note_ptr note = (Allegro_note_ptr)(seq->notes[index]);
-//      if (visibleChannels & (1 << (seq->notes[index]->chan & 15))) {
-
-
   //We want to draw in seconds, so we need to convert to seconds
   seq->convert_to_seconds();
 
@@ -2589,8 +2432,6 @@
       
          //if the notes channel is visible
       if (visibleChannels & (1 << (evt->chan & 15))) {
-
-#endif /* ! EXPERIMENTAL_NOTE_TRACK */
         double x = note->time;
         double x1 = note->time + note->dur;
         if (x < h1 && x1 > h) { // omit if outside box
@@ -2811,9 +2652,7 @@
     }
 
   }
-#ifdef EXPERIMENTAL_NOTE_TRACK
   seq->iteration_end();
-#endif /* EXPERIMENTAL_NOTE_TRACK */
   dc.DestroyClippingRegion();
 }
 #endif // USE_MIDI

Index: Track.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/Track.cpp,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -d -r1.47 -r1.48
--- Track.cpp   6 Jul 2008 16:43:57 -0000       1.47
+++ Track.cpp   7 Jul 2008 18:13:44 -0000       1.48
@@ -713,8 +713,6 @@
    return waveTrackArray;
 }
 
-#ifdef EXPERIMENTAL_NOTE_TRACK
-/* HCK MIDI PATCH START */
 NoteTrackArray TrackList::GetNoteTrackArray(bool selectionOnly)
 {
    NoteTrackArray noteTrackArray;
@@ -729,9 +727,7 @@
    }
    return noteTrackArray;
 }
-/* HCK MIDI PATCH END */
 
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 #ifdef new
 #undef new
 #endif

Index: Track.h
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/Track.h,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -d -r1.46 -r1.47
--- Track.h     6 Jul 2008 14:38:10 -0000       1.46
+++ Track.h     7 Jul 2008 18:13:44 -0000       1.47
@@ -28,20 +28,12 @@
 class UndoStack;
 class TimeTrack;
 class WaveTrack;
-#ifdef EXPERIMENTAL_NOTE_TRACK
-/* HCK MIDI PATCH START*/
 class NoteTrack;
-/* HCK MIDI PATCH END*/
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 #ifdef __WXMSW__
 #pragma warning(disable:4284)
 #endif
 WX_DEFINE_ARRAY(WaveTrack*, WaveTrackArray);
-#ifdef EXPERIMENTAL_NOTE_TRACK
-/* HCK MIDI PATCH START*/
 WX_DEFINE_ARRAY(NoteTrack*, NoteTrackArray);
-/* HCK MIDI PATCH END*/
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
 class AUDACITY_DLL_API Track: public XMLTagHandler {
 
@@ -246,11 +238,7 @@
   WaveTrackArray GetWaveTrackArray(bool selectionOnly);
   /** Consider this function depricated in favor of GetWaveTrackArray */
   void GetWaveTracks(bool selectionOnly, int *num, WaveTrack ***tracks);
-#ifdef EXPERIMENTAL_NOTE_TRACK
-/* HCK MIDI PATCH START*/
   NoteTrackArray GetNoteTrackArray(bool selectionOnly);
-/* HCK MIDI PATCH END*/
-#endif /* EXPERIMENTAL_NOTE_TRACK */
   
   /// Mainly a test function. Uses a linear search, so could be slow.
   bool Contains(Track * t) const;

Index: TrackPanel.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/TrackPanel.cpp,v
retrieving revision 1.401
retrieving revision 1.402
diff -u -d -r1.401 -r1.402
--- TrackPanel.cpp      1 Jul 2008 22:05:09 -0000       1.401
+++ TrackPanel.cpp      7 Jul 2008 18:13:45 -0000       1.402
@@ -773,10 +773,8 @@
    // recording audio, but the stream has stopped.
    if (p->GetAudioIOToken()>0 &&
        !gAudioIO->IsStreamActive(p->GetAudioIOToken())) {
-      p->GetControlToolBar()->OnStop(dummyEvent);      
-#ifdef EXPERIMENTAL_NOTE_TRACK
-      printf( "EXPERIMENTAL_NOTE_TRACK OnTimer\n" );
-#endif /* EXPERIMENTAL_NOTE_TRACK */
+      p->GetControlToolBar()->OnStop(dummyEvent);
+      printf( "HCK OnTimer\n" );
    }
 
    // Next, check to see if we were playing or recording
@@ -4950,7 +4948,7 @@
       mTrackInfo.GetTrackControlsRect(trackRect, midiRect);
       ((NoteTrack *) t)->DrawLabelControls(*dc, midiRect);
    }
-   #endif
+   #endif // USE_MIDI
 }
 
 void TrackPanel::DrawOutsideOfTrack(Track * t, wxDC * dc, const wxRect r)

Index: NoteTrack.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/NoteTrack.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- NoteTrack.cpp       28 Jun 2008 21:53:51 -0000      1.13
+++ NoteTrack.cpp       7 Jul 2008 18:13:43 -0000       1.14
@@ -20,11 +20,9 @@
 #include <wx/intl.h>
 
 #include "allegro.h"
-#ifdef EXPERIMENTAL_NOTE_TRACK
 /* REQUIRES PORTMIDI */
 //#include "portmidi.h"
 //#include "porttime.h"
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
 #include "AColor.h"
 #include "NoteTrack.h"
@@ -43,26 +41,19 @@
 
    mSeq = NULL;
    mLen = 0.0;
-#ifdef EXPERIMENTAL_NOTE_TRACK
    mSerializationBuffer = NULL;
    mSerializationLength = 0;
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 
    mDirManager = projDirManager;
 
    mBottomNote = 24;
 
    mVisibleChannels = 0xFFFF;
-#ifdef EXPERIMENTAL_NOTE_TRACK
-/* HCK MIDI PATCH START */
    mLastMidiPosition = 0;
-/* HCK MIDI PATCH END */
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 }
 
 Track *NoteTrack::Duplicate()
 {
-#ifdef EXPERIMENTAL_NOTE_TRACK
    NoteTrack *duplicate = new NoteTrack(mDirManager);
    // Duplicate on NoteTrack moves data from mSeq to mSerializationBuffer
    // and from mSerializationBuffer to mSeq on alternate calls. Duplicate
@@ -70,10 +61,12 @@
    // in serialized blobs on the undo stack and traversable data in the
    // project object.
    if (mSeq) {
+      assert(!mSerializationBuffer);
       // serialize from this to duplicate's mSerializationBuffer
       mSeq->serialize(&duplicate->mSerializationBuffer, 
                       &duplicate->mSerializationLength);
    } else if (mSerializationBuffer) {
+      assert(!mSeq);
       Alg_track_ptr alg_track = Alg_seq::unserialize(mSerializationBuffer,
                                                       mSerializationLength);
       assert(alg_track->get_type() == 's');
@@ -85,9 +78,6 @@
    duplicate->mLen = mLen;
    duplicate->mVisibleChannels = mVisibleChannels;
    return duplicate;
-#else
-   return new NoteTrack(mDirManager);
-#endif
 }
 
 void NoteTrack::DrawLabelControls(wxDC & dc, wxRect & r)
@@ -165,92 +155,15 @@
    return true;
 }
 
-#ifndef EXPERIMENTAL_NOTE_TRACK
-void NoteTrack::CalcLen()
-{
-   int numEvents = mSeq->notes.len;
-
-   if (numEvents <= 0)
-      mLen = 0.0;
-   else {
-      mLen = 0.0;
-      for (int i = 0; i < numEvents; i++) {
-         if (mSeq->notes[numEvents - 1]->time > mLen)
-            mLen = mSeq->notes[numEvents - 1]->time;
-         if (mSeq->notes[numEvents - 1]->type == wxT('n')) {
-            double endtime = mSeq->notes[numEvents - 1]->time +
-                ((Allegro_note_ptr) mSeq->notes[numEvents - 1])->dur;
-            if (endtime > mLen)
-               mLen = endtime;
-         }
-      }
-   }
-}
-#else /* EXPERIMENTAL_NOTE_TRACK */
-/* this is no longer needed -- get mLen from underlying seq->real_dur:
-// calculates the timelength of the track
-void NoteTrack::CalcLen()
-{
-    mSeq->convert_to_seconds();
-
-    mLen = 0.0;
-    for (mSeq->iteration_begin(); ; ) {
-        Alg_event_ptr currEvent = mSeq->iteration_next();
-        if (!currEvent)
-            break;
-        if (mLen < currEvent->time)
-            mLen = currEvent->time;
-        if (currEvent->get_type() == wxT('n')) {
-            double endtime = currEvent->get_end_time();
-            if (mLen < endtime)
-                mLen = endtime;
-        }
-    }
-    mSeq->iteration_end();
-
-    printf( "HCK: mLen %f\n", mLen );
-}
-*/
-/* this is an even older version; it's here for reference but probably should 
be deleted -RBD
-   int numEvents = mSeq->length();
-
-   if (numEvents <= 0)
-      mLen = 0.0;
-   else {
-      mLen = 0.0;
-      for (int i = 0; i < numEvents; i++) {
-         if (((Alg_event_ptr)mSeq->track_list.tracks[numEvents - 1])->time > 
mLen)
-            mLen = ((Alg_event_ptr)mSeq->track_list.tracks[numEvents - 
1])->time;
-         if (((Alg_event_ptr)mSeq->track_list.tracks[numEvents - 
1])->get_type() == wxT('n'))
-         {
-            double endtime = ((Alg_event_ptr)mSeq->track_list.tracks[numEvents 
- 1])->time + ((Alg_note_ptr) mSeq->track_list.tracks[numEvents - 1])->dur;
-            if (endtime > mLen)
-               mLen = endtime;
-         }
-      }
-   }
-*/
-#endif /* EXPERIMENTAL_NOTE_TRACK */
-
-#ifndef EXPERIMENTAL_NOTE_TRACK
-void NoteTrack::SetSequence(Seq *seq)
-#else /* EXPERIMENTAL_NOTE_TRACK */
 void NoteTrack::SetSequence(Alg_seq *seq)
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 {
    if (mSeq)
       delete mSeq;
 
    mSeq = seq;
-#ifndef EXPERIMENTAL_NOTE_TRACK
-   CalcLen();
-#else
    mLen = (seq ? seq->get_real_dur() : 0.0);
-#endif
 }
 
-#ifdef EXPERIMENTAL_NOTE_TRACK
-/* HCK MIDI PATCH START */
 Alg_seq* NoteTrack::GetSequence() 
 {
    return mSeq;
@@ -318,7 +231,6 @@
 {
    return mVisibleChannels;
 }
-/* HCK MIDI PATCH END */
 
 bool NoteTrack::Cut(double t0, double t1, Track **dest){
 
@@ -335,7 +247,7 @@
    mSeq->convert_to_seconds();
    newTrack->mSeq = mSeq->cut(t0, len, false);
 
-   mLen -= len;
+   mLen = (mLen <= len ? 0.0 : mLen - len);
    newTrack->mLen = len;
 
    // What should be done with the rest of newTrack's members?
@@ -390,12 +302,15 @@
    if (other->mSeq == NULL)
       return false;
 
+   if(!mSeq)
+      mSeq = new Alg_seq();
+
    mSeq->paste(t, other->mSeq);
+   mLen = mSeq->get_real_dur();
 
    return true;
 }
 
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 bool NoteTrack::HandleXMLTag(const wxChar *tag, const wxChar **attrs)
 {
    return false;

Index: Project.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/Project.cpp,v
retrieving revision 1.366
retrieving revision 1.367
diff -u -d -r1.366 -r1.367
--- Project.cpp 5 Jul 2008 22:49:34 -0000       1.366
+++ Project.cpp 7 Jul 2008 18:13:44 -0000       1.367
@@ -2315,7 +2315,7 @@
       mTracks->Add(newTrack);
       return newTrack;
    }
-   #endif
+   #endif // USE_MIDI
 
    if (!wxStrcmp(tag, wxT("labeltrack"))) {
       LabelTrack *newTrack = mTrackFactory->NewLabelTrack();

Index: NoteTrack.h
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/NoteTrack.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- NoteTrack.h 28 Jun 2008 21:53:51 -0000      1.11
+++ NoteTrack.h 7 Jul 2008 18:13:43 -0000       1.12
@@ -19,12 +19,7 @@
 class wxRect;
 
 class DirManager;
-#ifndef EXPERIMENTAL_NOTE_TRACK
-class Seq;   // from "allegro.h"
-#else /* EXPERIMENTAL_NOTE_TRACK */
 class Alg_seq;   // from "allegro.h"
-#endif /* EXPERIMENTAL_NOTE_TRACK */
-
 
 class NoteTrack:public Track {
  public:
@@ -42,11 +37,7 @@
    void DrawLabelControls(wxDC & dc, wxRect & r);
    bool LabelClick(wxRect & r, int x, int y, bool right);
 
-#ifndef EXPERIMENTAL_NOTE_TRACK
-   void SetSequence(Seq *seq);
-#else /* EXPERIMENTAL_NOTE_TRACK */
    void SetSequence(Alg_seq *seq);
-/* HCK MIDI PATCH START */
    Alg_seq* GetSequence();
    void PrintSequence();
 
@@ -58,7 +49,6 @@
 //   {
 //      mLastMidiPosition = position;
 //   }
-/* HCK MIDI PATCH END */
 
    // High-level editing
    virtual bool Cut  (double t0, double t1, Track **dest);
@@ -66,8 +56,6 @@
    virtual bool Clear(double t0, double t1);
    virtual bool Paste(double t, Track *src);
 
-#endif /* EXPERIMENTAL_NOTE_TRACK */
-
    int GetBottomNote() const { return mBottomNote; }
    void SetBottomNote(int note) 
    { 
@@ -84,9 +72,6 @@
    virtual void WriteXML(XMLWriter &xmlFile);
 
  private:
-#ifndef EXPERIMENTAL_NOTE_TRACK
-   Seq *mSeq;
-#else /* EXPERIMENTAL_NOTE_TRACK */
    Alg_seq *mSeq; // NULL means no sequence
    // when Duplicate() is called, assume that it is to put a copy
    // of the track into the undo stack or to redo/copy from the
@@ -101,7 +86,6 @@
    // even number of times, otherwise mSeq will be NULL).
    void *mSerializationBuffer; // NULL means no buffer
    long mSerializationLength;
-#endif /* EXPERIMENTAL_NOTE_TRACK */
    double mLen;
 
    DirManager *mDirManager;
@@ -109,11 +93,7 @@
    int mBottomNote;
 
    int mVisibleChannels;
-#ifdef EXPERIMENTAL_NOTE_TRACK
    int mLastMidiPosition;
-#else
-   void CalcLen();
-#endif /* EXPERIMENTAL_NOTE_TRACK */
 };
 
 #endif

Index: Menus.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/Menus.cpp,v
retrieving revision 1.390
retrieving revision 1.391
diff -u -d -r1.390 -r1.391
--- Menus.cpp   7 Jul 2008 15:45:55 -0000       1.390
+++ Menus.cpp   7 Jul 2008 18:13:43 -0000       1.391
@@ -55,7 +55,7 @@
 #include "LabelTrack.h"
 #ifdef USE_MIDI
 #include "import/ImportMIDI.h"
-#endif
+#endif // USE_MIDI
 #include "import/ImportRaw.h"
 #include "export/Export.h"
 #include "export/ExportMultiple.h"
@@ -71,7 +71,7 @@
 #include "UploadDialog.h"
 #ifdef USE_MIDI
 #include "NoteTrack.h"
-#endif
+#endif // USE_MIDI
 #include "Tags.h"
 #include "Mix.h"
 #include "AboutDialog.h"
@@ -221,7 +221,7 @@
                c->AddItem(wxT("ImportLabels"),   _("&Labels..."),              
                        FN(OnImportLabels));
         #ifdef USE_MIDI
                c->AddItem(wxT("ImportMIDI"),     _("&MIDI..."),                
                                        FN(OnImportMIDI));
-        #endif
+        #endif // USE_MIDI
                c->AddItem(wxT("ImportRaw"),      _("&Raw Data..."),            
                FN(OnImportRaw));
       c->EndSubMenu();
       
@@ -2762,7 +2762,7 @@
          case Track::Note:
             n = mTrackFactory->NewNoteTrack();
             break;
-         #endif
+         #endif // USE_MIDI
          case Track::Label:
             n = mTrackFactory->NewLabelTrack();
             break;
@@ -3858,11 +3858,7 @@
                                     path,     // Path
                                     wxT(""),       // Name
                                     wxT(""),       // Extension
-#ifndef EXPERIMENTAL_NOTE_TRACK
-                                    _("All files (*.*)|*.*|MIDI files 
(*.mid)|*.mid|Allegro files (*.gro)|*.gro"),
-#else /* EXPERIMENTAL_NOTE_TRACK */
                                     _("MIDI and Allegro files 
(*.mid;*.gro)|*.mid;*.gro|MIDI files (*.mid)|*.mid|Allegro files 
(*.gro)|*.gro|All files (*.*)|*.*"),
-#endif /* EXPERIMENTAL_NOTE_TRACK */
                                     wxRESIZE_BORDER,        // Flags
                                     this);    // Parent
 

Index: TrackArtist.h
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/TrackArtist.h,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -d -r1.36 -r1.37
--- TrackArtist.h       1 Jul 2008 22:05:09 -0000       1.36
+++ TrackArtist.h       7 Jul 2008 18:13:45 -0000       1.37
@@ -79,10 +79,10 @@
                      wxDC & dc, wxRect & r,
                      ViewInfo * viewInfo, bool autocorrelation);
 #endif
-   #ifdef USE_MIDI
+#ifdef USE_MIDI
    void DrawNoteTrack(NoteTrack *track,
                       wxDC & dc, wxRect & r, ViewInfo * viewInfo);
-   #endif
+#endif // USE_MIDI
 
    void DrawLabelTrack(LabelTrack *track,
                        wxDC & dc, wxRect & r, ViewInfo * viewInfo);


-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Audacity-cvs mailing list
Audacity-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/audacity-cvs

Reply via email to