source file of the GNU LilyPond music typesetter
- (c) 1999--2000 Jan Nieuwenhuizen <janneke@gnu.org>
+ (c) 1999--2001 Jan Nieuwenhuizen <janneke@gnu.org>
*/
#include "chord.hh"
}
}
}
+ else
+ member = gh_car (member);
return member;
}
}
}
}
+ else
+ member = gh_car (member);
return member;
}
int i = unsmob_pitch (p)->notename_i_
- unsmob_pitch (tonic)->notename_i_
+ (unsmob_pitch (p)->octave_i_
- - unsmob_pitch (tonic)->octave_i_ ) * 7;
+ - unsmob_pitch (tonic)->octave_i_) * 7;
while (i < 0)
i += 7;
i++;
for (SCM i = add; gh_pair_p (i); i = gh_cdr (i))
{
Pitch* p = unsmob_pitch (gh_car (i));
+ /* Ugr
+ This chord modifier stuff should really be fixed
+ Cmaj7 yields C 7/7-
+ */
if (p->octave_i () == -100)
{
p->octave_i_ = 0;
if (highest_step < 5)
tmp = ly_snoc (fifth, tmp);
else if (dim_b)
- add = lower_step (tonic, add, gh_int2scm (5));
+ {
+ add = lower_step (tonic, add, gh_int2scm (5));
+ add = lower_step (tonic, add, gh_int2scm (7));
+ }
/* find missing thirds */
SCM missing = missing_thirds (tmp);
n->set_mus_property ("duration", dur);
n->set_mus_property ("inversion", SCM_BOOL_T);
list = gh_cons (n->self_scm (), list);
- scm_unprotect_object (n->self_scm ());
+ scm_gc_unprotect_object (n->self_scm ());
}
else
warning (_f ("invalid inversion pitch: not part of chord: %s",
n->set_mus_property ("duration", dur);
n->set_mus_property ("bass", SCM_BOOL_T);
list = gh_cons (n->self_scm (), list);
- scm_unprotect_object (n->self_scm ());
+ scm_gc_unprotect_object (n->self_scm ());
}
for (SCM i = pitches; gh_pair_p (i); i = gh_cdr (i))
n->set_mus_property ("pitch", gh_car (i));
n->set_mus_property ("duration", dur);
list = gh_cons (n->self_scm (), list);
- scm_unprotect_object (n->self_scm ());
+ scm_gc_unprotect_object (n->self_scm ());
}
- Simultaneous_music*v = new Request_chord (list);
+ Simultaneous_music*v = new Request_chord (SCM_EOL);
+ v->set_mus_property ("elements", list);
return v;
}