X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fspan-dynamic-performer.cc;h=8f6cfc95e00db8799167306355e8de15b8caa5d5;hb=38269bfebef7893a1bd82fd2182155f77a59e5a7;hp=46a3b3f8cad24b0928c429d8afe1108656a08890;hpb=94375d04f45b415ad705fd444fdb344416f116d9;p=lilypond.git diff --git a/lily/span-dynamic-performer.cc b/lily/span-dynamic-performer.cc index 46a3b3f8ca..8f6cfc95e0 100644 --- a/lily/span-dynamic-performer.cc +++ b/lily/span-dynamic-performer.cc @@ -13,7 +13,7 @@ struct Audio_dynamic_tuple { - Audio_dynamic* audio_l_; + Audio_dynamic* audio_; Moment mom_; }; @@ -33,12 +33,12 @@ protected: virtual void start_translation_timestep (); private: - Audio_dynamic* audio_p_; + Audio_dynamic* audio_; Real last_volume_; - Span_req* span_start_req_l_; + Span_req* span_start_req_; Drul_array span_req_l_drul_; - Array dynamic_tuple_arr_; - Array finished_dynamic_tuple_arr_; + Array dynamic_tuples_; + Array finished_dynamic_tuples_; Direction dir_; Direction finished_dir_; }; @@ -47,15 +47,15 @@ Span_dynamic_performer::Span_dynamic_performer () { span_req_l_drul_[START] = 0; span_req_l_drul_[STOP] = 0; - span_start_req_l_ = 0; - audio_p_ = 0; + span_start_req_ = 0; + audio_ = 0; last_volume_ = 0; } void Span_dynamic_performer::acknowledge_audio_element (Audio_element_info i) { - if (Audio_dynamic * d = dynamic_cast (i.elem_l_)) + if (Audio_dynamic * d = dynamic_cast (i.elem_)) { last_volume_ = d->volume_; } @@ -64,20 +64,20 @@ Span_dynamic_performer::acknowledge_audio_element (Audio_element_info i) void Span_dynamic_performer::process_music () { - if (span_start_req_l_ || span_req_l_drul_[START]) + if (span_start_req_ || span_req_l_drul_[START]) { - audio_p_ = new Audio_dynamic (0); - Audio_element_info info (audio_p_, span_req_l_drul_[START] + audio_ = new Audio_dynamic (0); + Audio_element_info info (audio_, span_req_l_drul_[START] ? span_req_l_drul_[START] : span_req_l_drul_[STOP]); announce_element (info); - Audio_dynamic_tuple a = { audio_p_, now_mom () }; - dynamic_tuple_arr_.push (a); + Audio_dynamic_tuple a = { audio_, now_mom () }; + dynamic_tuples_.push (a); } if (span_req_l_drul_[STOP]) { - if (!span_start_req_l_) + if (!span_start_req_) { span_req_l_drul_[STOP]->origin ()->warning (_ ("can't find start of (de)crescendo")); span_req_l_drul_[STOP] = 0; @@ -85,34 +85,34 @@ Span_dynamic_performer::process_music () else { finished_dir_ = dir_; - finished_dynamic_tuple_arr_ = dynamic_tuple_arr_; + finished_dynamic_tuples_ = dynamic_tuples_; } - dynamic_tuple_arr_.clear (); - span_start_req_l_ = 0; + dynamic_tuples_.clear (); + span_start_req_ = 0; } if (span_req_l_drul_[START]) { String t = ly_scm2string (span_req_l_drul_[START]->get_mus_property ("span-type")); dir_ = (t == "crescendo") ? RIGHT : LEFT; - span_start_req_l_ = span_req_l_drul_[START]; + span_start_req_ = span_req_l_drul_[START]; - dynamic_tuple_arr_.clear (); - Audio_dynamic_tuple a = { audio_p_, now_mom () }; - dynamic_tuple_arr_.push (a); + dynamic_tuples_.clear (); + Audio_dynamic_tuple a = { audio_, now_mom () }; + dynamic_tuples_.push (a); } if (span_req_l_drul_[STOP]) { - finished_dynamic_tuple_arr_.top ().audio_l_->volume_ = last_volume_; + finished_dynamic_tuples_.top ().audio_->volume_ = last_volume_; } if (span_req_l_drul_[START]) { - dynamic_tuple_arr_[0].audio_l_->volume_ = last_volume_; + dynamic_tuples_[0].audio_->volume_ = last_volume_; } - span_start_req_l_ = 0; + span_start_req_ = 0; span_req_l_drul_[START] = 0; span_req_l_drul_[STOP] = 0; } @@ -120,10 +120,10 @@ Span_dynamic_performer::process_music () void Span_dynamic_performer::stop_translation_timestep () { - if (finished_dynamic_tuple_arr_.size () > 1) + if (finished_dynamic_tuples_.size () > 1) { - Real start_volume = finished_dynamic_tuple_arr_[0].audio_l_->volume_; - Real dv = finished_dynamic_tuple_arr_.top ().audio_l_->volume_ + Real start_volume = finished_dynamic_tuples_[0].audio_->volume_; + Real dv = finished_dynamic_tuples_.top ().audio_->volume_ - start_volume; /* urg. @@ -141,25 +141,25 @@ Span_dynamic_performer::stop_translation_timestep () // urg. 20%: about two volume steps dv = (Real)finished_dir_ * 0.2; if (!start_volume) - start_volume = finished_dynamic_tuple_arr_.top - ().audio_l_->volume_ - dv; + start_volume = finished_dynamic_tuples_.top + ().audio_->volume_ - dv; } - Moment start_mom = finished_dynamic_tuple_arr_[0].mom_; - Moment dt = finished_dynamic_tuple_arr_.top ().mom_ - start_mom; - for (int i=0; i < finished_dynamic_tuple_arr_.size (); i++) + Moment start_mom = finished_dynamic_tuples_[0].mom_; + Moment dt = finished_dynamic_tuples_.top ().mom_ - start_mom; + for (int i=0; i < finished_dynamic_tuples_.size (); i++) { - Audio_dynamic_tuple* a = &finished_dynamic_tuple_arr_[i]; + Audio_dynamic_tuple* a = &finished_dynamic_tuples_[i]; Real volume = start_volume + dv * (Real) (a->mom_ - start_mom).main_part_ / (Real)dt.main_part_; - a->audio_l_->volume_ = volume; + a->audio_->volume_ = volume; } - finished_dynamic_tuple_arr_.clear (); + finished_dynamic_tuples_.clear (); } - if (audio_p_) + if (audio_) { - play_element (audio_p_); - audio_p_ = 0; + play_element (audio_); + audio_ = 0; } }