/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2004--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 2004--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Pitch *quote_pitch = unsmob_pitch (scm_cdar (entry));
/*
- The pitch that sounds like central C
+ The pitch that sounds when written central C is played.
*/
+ Pitch temp_pitch;
Pitch *me_pitch = unsmob_pitch (get_music ()->get_property ("quoted-transposition"));
if (!me_pitch)
me_pitch = unsmob_pitch (get_outlet ()->get_property ("instrumentTransposition"));
+ else
+ {
+ // We are not going to win a beauty contest with this one,
+ // but it is slated for replacement and touches little code.
+ // quoted-transposition currently has a different sign
+ // convention than instrumentTransposition
+ temp_pitch = me_pitch->negated ();
+ me_pitch = &temp_pitch;
+ }
SCM cid = get_music ()->get_property ("quoted-context-id");
bool is_cue = scm_is_string (cid) && (ly_scm2string (cid) == "cue");
if (me_pitch)
mp = *me_pitch;
- Pitch diff = pitch_interval (qp, mp);
+ Pitch diff = pitch_interval (mp, qp);
ev = ev->clone ();
+ ev->make_transposable ();
transpose_mutable (ev->get_property_alist (true), diff);
transposed_musics_ = scm_cons (ev->unprotect (), transposed_musics_);