source file of the GNU LilyPond music typesetter
- (c) 1998--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1998--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
*/
#ifndef MUSICAL_PITCH_HH
#include "lily-proto.hh"
#include "smobs.hh"
+#include "std-vector.hh"
+
+struct Scale
+{
+ vector<int> step_semitones_;
+ Scale ();
+ Scale (Scale const&);
+ DECLARE_SMOBS (Scale);
+};
+
+
/** A "tonal" pitch. This is a pitch used in diatonal western music
(24 quartertones in an octave), as opposed to a frequency in Hz or a
integer number of semitones.
int notename_;
int alteration_;
int octave_;
-
+ Scale *scale_;
+
void transpose (Pitch);
void up_to (int);
void down_to (int);
int steps () const;
int semitone_pitch () const;
int quartertone_pitch () const;
- String to_string () const;
+ string to_string () const;
DECLARE_SCHEME_CALLBACK (less_p, (SCM a, SCM b));
- DECLARE_SIMPLE_SMOBS (Pitch,);
+ DECLARE_SIMPLE_SMOBS (Pitch);
};
enum
INSTANTIATE_COMPARE (Pitch, Pitch::compare);
-int compare (Array<Pitch> *, Array<Pitch> *);
extern SCM pitch_less_proc;
Pitch pitch_interval (Pitch const &from, Pitch const &to);
+extern Scale *default_global_scale;
#endif /* MUSICAL_PITCH_HH */