title: Unknown type name error
body: <p>I'm sure it's something obvious but I just can't see it: xcode is suddenly giving me all sorts of errors when I try to use my <code>Note</code> class (which is used very frequently).</p>
  
  <p>Here's what the class header looks like:</p>
  
  <pre><code>class Note : public Playable{
  
  private:
  
  public:
  
      double theta;
      double frequency;
      int duration; 
      int startTime; // tussen 1 en 32
      int measureNumber;
      float velocity;
      Playable *track;
      virtual float getValue();
  
      static double calculateNoteFrequency(int aOctaveNumber, note_name aNoteName);
  
      Note(double aFreq, float aVelocity, int aDuration, int aMeasureNumber, int aStarttimeInsideMeasure, Playable *aTrack){
  //      theta = 0;
          Note();
          frequency = aFreq;
          duration = aDuration;
          velocity = aVelocity;
          measureNumber = aMeasureNumber;
          startTime = aStarttimeInsideMeasure;
          track = aTrack;
      }
  
      Note(){
          theta = 0;
      }
      void toString();
  
  };
  </code></pre>
  
  <p><strong>EDIT</strong></p>
  
  <p>Here's the full compiler error message:</p>
  
  <pre><code>In file included from /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Note.cpp:9:
  In file included from /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Note.h:14:
  In file included from /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Track.h:16:
  /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Pattern.h:19:12: error: use of undeclared identifier 'Note'
      vector&lt;Note&gt; notelist;
             ^
  /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Pattern.h:19:18: error: C++ requires a type specifier for all declarations
      vector&lt;Note&gt; notelist;
                   ^~~~~~~~
  /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Pattern.h:23:12: error: use of undeclared identifier 'Note'
      vector&lt;Note&gt; getNotelist();
             ^
  /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Pattern.h:23:18: error: C++ requires a type specifier for all declarations
      vector&lt;Note&gt; getNotelist();
                   ^~~~~~~~~~~
  /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Pattern.h:24:18: error: unknown type name 'Note'
      void addNote(Note const &amp;note){
                   ^
  /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Pattern.h:24:23: error: expected ')'
      void addNote(Note const &amp;note){
                        ^
  /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Pattern.h:24:17: note: to match this '('
      void addNote(Note const &amp;note){
                  ^
  In file included from /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Note.cpp:9:
  In file included from /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Note.h:14:
  In file included from /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Track.h:17:
  In file included from /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Synth.h:11:
  /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Oscillator.h:21:18: error: unknown type name 'Note'
      void setNote(Note &amp;aNote);
                   ^
  /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Oscillator.h:23:20: error: unknown type name 'Note'
      float getValue(Note &amp;note);
                     ^
  In file included from /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Note.cpp:9:
  In file included from /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Note.h:14:
  In file included from /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Track.h:17:
  /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Synth.h:47:21: error: unknown type name 'Note'
      float getSample(Note &amp;note);
                      ^
  In file included from /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Note.cpp:9:
  In file included from /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Note.h:14:
  /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Track.h:30:17: error: use of undeclared identifier 'Note'
          multimap&lt;long, Note&gt; noteList;
                         ^
  /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Track.h:30:23: error: C++ requires a type specifier for all declarations
          multimap&lt;long, Note&gt; noteList;
                               ^~~~~~~~
  /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Track.h:33:2: error: unknown type name 'Note'
          Note &amp;addNoteAndReturnReference(Note &amp;note);
          ^
  /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Track.h:33:34: error: unknown type name 'Note'
          Note &amp;addNoteAndReturnReference(Note &amp;note);
                                          ^
  /Users/osxursnm/Development/SynthSequencer2/SynthSequencer2/Track.h:34:18: error: unknown type name 'Note'
          void removeNote(Note &amp;note);
                          ^
  14 errors generated.
  </code></pre>