]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/chord.hh
patch::: 1.3.108.jcn1
[lilypond.git] / lily / include / chord.hh
1 /*
2   chord.hh -- declare Chord
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1999--2000 Jan Nieuwenhuizen <janneke@gnu.org>
7 */
8
9 #ifndef CHORD_HH
10 #define CHORD_HH
11
12 #include "pitch.hh"
13
14 /*
15   ``chord'' is encoded:
16   (PITCHES . (INVERSION . BASS))
17
18   Chord:: namespace...
19  */
20 class Chord
21 {
22 public:
23   static SCM pitches_and_requests_to_chord (SCM pitches,
24                                      SCM tonic_req,
25                                      SCM inversion_req,
26                                      SCM bass_req,
27                                      bool find_inversion_b);
28   static SCM base_pitches (SCM tonic);
29   static SCM transpose_pitches (SCM tonic, SCM pitches);
30   static SCM lower_step (SCM tonic, SCM pitches, SCM step);
31   static SCM member_notename (SCM p, SCM pitches);
32   static SCM member_pitch (SCM p, SCM pitches);
33   static int step_i (Pitch tonic, Pitch p);
34   static SCM step_scm (SCM tonic, SCM p);
35   static SCM missing_thirds (SCM pitches);
36   static SCM to_pitches (SCM chord);
37   static SCM guess_tonic (SCM pitches);
38   static SCM add_above_tonic (SCM pitch, SCM pitches);
39   static SCM add_below_tonic (SCM pitch, SCM pitches);
40   static SCM tonic_add_sub_inversion_bass_to_scm (SCM tonic, SCM add, SCM sub,
41                                             SCM inversion, SCM bass);
42   static Simultaneous_music *get_chord (SCM tonic, SCM add, SCM sub, SCM inversion, SCM bass, SCM dur);
43 };
44
45 #endif /* CHORD_HH */