- audio_p_ = new Audio_key (); // *key_req_l_->key_);
- Audio_element_info info (audio_p_, key_req_l_);
+ SCM pitchlist = key_req_->get_mus_property ("pitch-alist");
+ SCM proc = scm_primitive_eval (ly_symbol2scm ("accidentals-in-key"));
+ SCM acc = gh_call1 (proc, pitchlist);
+ proc = scm_primitive_eval (ly_symbol2scm ("major-key"));
+
+ Pitch my_do (0,
+ gh_scm2int (ly_caar (pitchlist)),
+ gh_scm2int (ly_cdar (pitchlist)));
+
+ Pitch to_c (-1,
+ (7 - gh_scm2int (ly_caar (pitchlist))) % 7,
+ -gh_scm2int (ly_cdar (pitchlist)));
+
+ my_do.transpose (to_c);
+ to_c.alteration_ -= my_do.alteration_;
+
+ Key_change_req *key = new Key_change_req;
+ key->set_mus_property ("pitch-alist", scm_list_copy (pitchlist));
+ ((Music*)key)->transpose (to_c);
+ SCM c_pitchlist = key->get_mus_property ("pitch-alist");
+ SCM major = gh_call1 (proc, c_pitchlist);
+
+ audio_ = new Audio_key (gh_scm2int (acc), major == SCM_BOOL_T);
+ Audio_element_info info (audio_, key_req_);