2 chord.hh -- declare Chord
4 source file of the GNU LilyPond music typesetter
6 (c) 1999--2000 Jan Nieuwenhuizen <janneke@gnu.org>
13 #include "musical-pitch.hh"
14 #include "lily-proto.hh"
19 Slightly on the hairy side? In any case COMMENTME.
24 static Array<Musical_pitch> base_arr (Musical_pitch p);
25 static int find_tonic_i (Array<Musical_pitch> const*);
26 static int find_pitch_i (Array<Musical_pitch> const*, Musical_pitch p);
27 static int find_notename_i (Array<Musical_pitch> const*, Musical_pitch p);
28 static Array<Musical_pitch> missing_thirds_pitch_arr (Array<Musical_pitch> const* pitch_arr_p);
29 static void rebuild_from_base (Array<Musical_pitch>*, int base_i);
30 static void rebuild_insert_inversion (Array<Musical_pitch>*, int tonic_i);
31 static void rebuild_transpose (Array<Musical_pitch>*, Musical_pitch tonic, bool fix7_b);
32 static void rebuild_with_bass (Array<Musical_pitch>*, int bass_i);
33 static int step_i (Musical_pitch tonic, Musical_pitch p);
37 Chord (Array<Musical_pitch> pitch_arr, Musical_pitch* inversion_p, Musical_pitch* bass_p);
40 Array<Musical_pitch> to_pitch_arr () const;
42 Array<Musical_pitch> pitch_arr_;
44 Musical_pitch inversion_pitch_;
46 Musical_pitch bass_pitch_;
49 Chord to_chord (Musical_pitch tonic, Array<Musical_pitch>* add_arr_p, Array<Musical_pitch>* sub_arr_p, Musical_pitch* inversion_p, Musical_pitch* bass_p);
51 Chord to_chord (Array<Musical_pitch> pitch_arr, Tonic_req* tonic_req, Inversion_req* inversion_req, Bass_req* bass_req, bool find_inversion_b);
53 int compare (Chord*, Chord*);
55 Simultaneous_music *get_chord (Musical_pitch tonic,
56 Array<Musical_pitch>* add_arr_p,
57 Array<Musical_pitch>* sub_arr_p,
58 Musical_pitch* inversion_p,
59 Musical_pitch* bass_p,