]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/chord.hh
e60fe80483420efb404d6f5808a535ea15e2ea94
[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--2001 Jan Nieuwenhuizen <janneke@gnu.org>
7 */
8
9 #ifndef CHORD_HH
10 #define CHORD_HH
11
12 #include "pitch.hh"
13
14 /*
15   This is not an Item, just a collection of Chord manipulation helper
16   functions
17   
18   ``chord'' is encoded:
19  (PITCHES . (INVERSION . BASS))
20
21   Chord:: namespace...  */
22 class Chord
23 {
24 public:
25   static SCM base_pitches (SCM tonic);
26   static SCM transpose_pitches (SCM tonic, SCM pitches);
27   static SCM lower_step (SCM tonic, SCM pitches, SCM step);
28   static SCM member_notename (SCM p, SCM pitches);
29   static SCM member_pitch (SCM p, SCM pitches);
30   static SCM step_scm (SCM tonic, SCM p);
31   static SCM missing_thirds (SCM pitches);
32   static SCM to_pitches (SCM chord);
33   static SCM add_above_tonic (SCM pitch, SCM pitches);
34   static SCM add_below_tonic (SCM pitch, SCM pitches);
35   static SCM tonic_add_sub_to_pitches (SCM tonic, SCM add, SCM sub);
36   static Simultaneous_music *get_chord (SCM tonic, SCM add, SCM sub, SCM inversion, SCM bass, SCM dur);
37 };
38
39 #endif /* CHORD_HH */