diff options
author | nick_m <mainsbridge@gmail.com> | 2016-04-02 05:11:25 +1100 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2016-05-27 23:38:13 +1000 |
commit | 89f022cb53cc1b983b1a9a0249a0e371a68055c0 (patch) | |
tree | 2da656dd0139468462bf26cb81e3e29f30982a87 /libs/ardour | |
parent | 8efbbd2bddc1679ba4ecbdc9119208e00d130c25 (diff) |
Tempo ramps - rename - should be a no-op.
Diffstat (limited to 'libs/ardour')
-rw-r--r-- | libs/ardour/tempo.cc | 272 |
1 files changed, 136 insertions, 136 deletions
diff --git a/libs/ardour/tempo.cc b/libs/ardour/tempo.cc index dfe7515201..fe56f8013b 100644 --- a/libs/ardour/tempo.cc +++ b/libs/ardour/tempo.cc @@ -1222,7 +1222,7 @@ TempoMap::first_tempo () void TempoMap::recompute_tempos (Metrics& metrics) { - TempoSection* prev_ts = 0; + TempoSection* prev_t = 0; for (Metrics::const_iterator i = metrics.begin(); i != metrics.end(); ++i) { TempoSection* t; @@ -1231,21 +1231,21 @@ TempoMap::recompute_tempos (Metrics& metrics) if (!t->active()) { continue; } - if (prev_ts) { + if (prev_t) { if (t->position_lock_style() == AudioTime) { - prev_ts->set_c_func (prev_ts->compute_c_func_frame (t->pulses_per_minute(), t->frame(), _frame_rate)); - t->set_pulse (prev_ts->pulse_at_tempo (t->pulses_per_minute(), t->frame(), _frame_rate)); + prev_t->set_c_func (prev_t->compute_c_func_frame (t->pulses_per_minute(), t->frame(), _frame_rate)); + t->set_pulse (prev_t->pulse_at_tempo (t->pulses_per_minute(), t->frame(), _frame_rate)); } else { - prev_ts->set_c_func (prev_ts->compute_c_func_pulse (t->pulses_per_minute(), t->pulse(), _frame_rate)); - t->set_frame (prev_ts->frame_at_tempo (t->pulses_per_minute(), t->pulse(), _frame_rate)); + prev_t->set_c_func (prev_t->compute_c_func_pulse (t->pulses_per_minute(), t->pulse(), _frame_rate)); + t->set_frame (prev_t->frame_at_tempo (t->pulses_per_minute(), t->pulse(), _frame_rate)); } } - prev_ts = t; + prev_t = t; } } - prev_ts->set_c_func (0.0); + prev_t->set_c_func (0.0); } /* tempos must be positioned correctly */ @@ -1377,7 +1377,7 @@ double TempoMap::pulse_at_frame_locked (const Metrics& metrics, const framecnt_t& frame) const { /* HOLD (at least) THE READER LOCK */ - TempoSection* prev_ts = 0; + TempoSection* prev_t = 0; double accumulated_pulses = 0.0; for (Metrics::const_iterator i = metrics.begin(); i != metrics.end(); ++i) { @@ -1386,18 +1386,18 @@ TempoMap::pulse_at_frame_locked (const Metrics& metrics, const framecnt_t& frame if (!t->active()) { continue; } - if (prev_ts && t->frame() > frame) { + if (prev_t && t->frame() > frame) { /*the previous ts is the one containing the frame */ - const double ret = prev_ts->pulse_at_frame (frame, _frame_rate); + const double ret = prev_t->pulse_at_frame (frame, _frame_rate); return ret; } accumulated_pulses = t->pulse(); - prev_ts = t; + prev_t = t; } } /* treated as constant for this ts */ - const double pulses_in_section = (frame - prev_ts->frame()) / prev_ts->frames_per_pulse (_frame_rate); + const double pulses_in_section = (frame - prev_t->frame()) / prev_t->frames_per_pulse (_frame_rate); return pulses_in_section + accumulated_pulses; } @@ -1405,21 +1405,21 @@ TempoMap::pulse_at_frame_locked (const Metrics& metrics, const framecnt_t& frame double TempoMap::pulse_at_beat_locked (const Metrics& metrics, const double& beat) const { - MeterSection* prev_ms = 0; + MeterSection* prev_m = 0; double accumulated_beats = 0.0; for (Metrics::const_iterator i = metrics.begin(); i != metrics.end(); ++i) { MeterSection* m; if ((m = dynamic_cast<MeterSection*> (*i)) != 0) { - if (prev_ms && m->beat() > beat) { + if (prev_m && m->beat() > beat) { break; } accumulated_beats = m->beat(); - prev_ms = m; + prev_m = m; } } - double const ret = prev_ms->pulse() + ((beat - accumulated_beats) / prev_ms->note_divisor()); + double const ret = prev_m->pulse() + ((beat - accumulated_beats) / prev_m->note_divisor()); return ret; } @@ -1433,21 +1433,21 @@ TempoMap::pulse_at_beat (const double& beat) const double TempoMap::beat_at_pulse_locked (const Metrics& metrics, const double& pulse) const { - MeterSection* prev_ms = 0; + MeterSection* prev_m = 0; double accumulated_beats = 0.0; for (Metrics::const_iterator i = metrics.begin(); i != metrics.end(); ++i) { MeterSection* m; if ((m = dynamic_cast<MeterSection*> (*i)) != 0) { - if (prev_ms && m->pulse() > pulse) { + if (prev_m && m->pulse() > pulse) { break; } accumulated_beats = m->beat(); - prev_ms = m; + prev_m = m; } } - double const beats_in_section = (pulse - prev_ms->pulse()) * prev_ms->note_divisor(); + double const beats_in_section = (pulse - prev_m->pulse()) * prev_m->note_divisor(); return beats_in_section + accumulated_beats; } @@ -1464,7 +1464,7 @@ TempoMap::frame_at_pulse_locked (const Metrics& metrics, const double& pulse) co { /* HOLD THE READER LOCK */ - const TempoSection* prev_ts = 0; + const TempoSection* prev_t = 0; double accumulated_pulses = 0.0; for (Metrics::const_iterator i = metrics.begin(); i != metrics.end(); ++i) { @@ -1474,19 +1474,19 @@ TempoMap::frame_at_pulse_locked (const Metrics& metrics, const double& pulse) co if (!t->active()) { continue; } - if (prev_ts && t->pulse() > pulse) { - return prev_ts->frame_at_pulse (pulse, _frame_rate); + if (prev_t && t->pulse() > pulse) { + return prev_t->frame_at_pulse (pulse, _frame_rate); } accumulated_pulses = t->pulse(); - prev_ts = t; + prev_t = t; } } /* must be treated as constant, irrespective of _type */ double const pulses_in_section = pulse - accumulated_pulses; - double const dtime = pulses_in_section * prev_ts->frames_per_pulse (_frame_rate); + double const dtime = pulses_in_section * prev_t->frames_per_pulse (_frame_rate); - framecnt_t const ret = (framecnt_t) floor (dtime) + prev_ts->frame(); + framecnt_t const ret = (framecnt_t) floor (dtime) + prev_t->frame(); return ret; } @@ -1526,7 +1526,7 @@ TempoMap::bbt_to_beats_locked (const Metrics& metrics, const Timecode::BBT_Time& double accumulated_beats = 0.0; double accumulated_bars = 0.0; - MeterSection* prev_ms = 0; + MeterSection* prev_m = 0; /* because audio-locked meters have 'fake' integral beats, there is no pulse offset here. @@ -1534,20 +1534,20 @@ TempoMap::bbt_to_beats_locked (const Metrics& metrics, const Timecode::BBT_Time& for (Metrics::const_iterator i = metrics.begin(); i != metrics.end(); ++i) { MeterSection* m; if ((m = dynamic_cast<MeterSection*> (*i)) != 0) { - if (prev_ms) { - const double bars_to_m = (m->beat() - prev_ms->beat()) / prev_ms->divisions_per_bar(); + if (prev_m) { + const double bars_to_m = (m->beat() - prev_m->beat()) / prev_m->divisions_per_bar(); if ((bars_to_m + accumulated_bars) > (bbt.bars - 1)) { break; } accumulated_beats = m->beat(); accumulated_bars += bars_to_m; } - prev_ms = m; + prev_m = m; } } const double remaining_bars = (bbt.bars - 1) - accumulated_bars; - const double remaining_bars_in_beats = remaining_bars * prev_ms->divisions_per_bar(); + const double remaining_bars_in_beats = remaining_bars * prev_m->divisions_per_bar(); const double ret = remaining_bars_in_beats + accumulated_beats + (bbt.beats - 1) + (bbt.ticks / BBT_Time::ticks_per_beat); return ret; @@ -1564,7 +1564,7 @@ Timecode::BBT_Time TempoMap::beats_to_bbt_locked (const Metrics& metrics, const double& b) const { /* CALLER HOLDS READ LOCK */ - MeterSection* prev_ms = 0; + MeterSection* prev_m = 0; const double beats = (b < 0.0) ? 0.0 : b; uint32_t accumulated_bars = 0; double accumulated_beats = 0.0; @@ -1573,25 +1573,25 @@ TempoMap::beats_to_bbt_locked (const Metrics& metrics, const double& b) const MeterSection* m = 0; if ((m = dynamic_cast<MeterSection*> (*i)) != 0) { - if (prev_ms) { + if (prev_m) { if (m->beat() > beats) { /* this is the meter after the one our beat is on*/ break; } - const double beats_to_m = m->beat() - prev_ms->beat(); + const double beats_to_m = m->beat() - prev_m->beat(); /* we need a whole number of bars. */ - accumulated_bars += (beats_to_m + 1) / prev_ms->divisions_per_bar(); + accumulated_bars += (beats_to_m + 1) / prev_m->divisions_per_bar(); accumulated_beats += beats_to_m; } - prev_ms = m; + prev_m = m; } } const double beats_in_ms = beats - accumulated_beats; - const uint32_t bars_in_ms = (uint32_t) floor (beats_in_ms / prev_ms->divisions_per_bar()); + const uint32_t bars_in_ms = (uint32_t) floor (beats_in_ms / prev_m->divisions_per_bar()); const uint32_t total_bars = bars_in_ms + accumulated_bars; - const double remaining_beats = beats_in_ms - (bars_in_ms * prev_ms->divisions_per_bar()); + const double remaining_beats = beats_in_ms - (bars_in_ms * prev_m->divisions_per_bar()); const double remaining_ticks = (remaining_beats - floor (remaining_beats)) * BBT_Time::ticks_per_beat; BBT_Time ret; @@ -1609,7 +1609,7 @@ TempoMap::beats_to_bbt_locked (const Metrics& metrics, const double& b) const ret.ticks -= BBT_Time::ticks_per_beat; } - if (ret.beats >= prev_ms->divisions_per_bar() + 1) { + if (ret.beats >= prev_m->divisions_per_bar() + 1) { ++ret.bars; ret.beats = 1; } @@ -1628,7 +1628,7 @@ Timecode::BBT_Time TempoMap::pulse_to_bbt (const double& pulse) { Glib::Threads::RWLock::ReaderLock lm (lock); - MeterSection* prev_ms = 0; + MeterSection* prev_m = 0; uint32_t accumulated_bars = 0; double accumulated_pulses = 0.0; @@ -1637,8 +1637,8 @@ TempoMap::pulse_to_bbt (const double& pulse) if ((m = dynamic_cast<MeterSection*> (*i)) != 0) { - if (prev_ms) { - double const pulses_to_m = m->pulse() - prev_ms->pulse(); + if (prev_m) { + double const pulses_to_m = m->pulse() - prev_m->pulse(); if (accumulated_pulses + pulses_to_m > pulse) { /* this is the meter after the one our beat is on*/ break; @@ -1646,16 +1646,16 @@ TempoMap::pulse_to_bbt (const double& pulse) /* we need a whole number of bars. */ accumulated_pulses += pulses_to_m; - accumulated_bars += ((pulses_to_m * prev_ms->note_divisor()) + 1) / prev_ms->divisions_per_bar(); + accumulated_bars += ((pulses_to_m * prev_m->note_divisor()) + 1) / prev_m->divisions_per_bar(); } - prev_ms = m; + prev_m = m; } } - const double beats_in_ms = (pulse - prev_ms->pulse()) * prev_ms->note_divisor(); - const uint32_t bars_in_ms = (uint32_t) floor (beats_in_ms / prev_ms->divisions_per_bar()); + const double beats_in_ms = (pulse - prev_m->pulse()) * prev_m->note_divisor(); + const uint32_t bars_in_ms = (uint32_t) floor (beats_in_ms / prev_m->divisions_per_bar()); const uint32_t total_bars = bars_in_ms + accumulated_bars; - const double remaining_beats = beats_in_ms - (bars_in_ms * prev_ms->divisions_per_bar()); + const double remaining_beats = beats_in_ms - (bars_in_ms * prev_m->divisions_per_bar()); const double remaining_ticks = (remaining_beats - floor (remaining_beats)) * BBT_Time::ticks_per_beat; BBT_Time ret; @@ -1673,7 +1673,7 @@ TempoMap::pulse_to_bbt (const double& pulse) ret.ticks -= BBT_Time::ticks_per_beat; } - if (ret.beats >= prev_ms->divisions_per_bar() + 1) { + if (ret.beats >= prev_m->divisions_per_bar() + 1) { ++ret.bars; ret.beats = 1; } @@ -1728,7 +1728,7 @@ TempoMap::frame_time (const BBT_Time& bbt) bool TempoMap::check_solved (Metrics& metrics, bool by_frame) { - TempoSection* prev_ts = 0; + TempoSection* prev_t = 0; for (Metrics::const_iterator i = metrics.begin(); i != metrics.end(); ++i) { TempoSection* t; @@ -1736,21 +1736,21 @@ TempoMap::check_solved (Metrics& metrics, bool by_frame) if (!t->active()) { continue; } - if (prev_ts) { - if ((by_frame && t->frame() < prev_ts->frame()) || (!by_frame && t->pulse() < prev_ts->pulse())) { + if (prev_t) { + if ((by_frame && t->frame() < prev_t->frame()) || (!by_frame && t->pulse() < prev_t->pulse())) { return false; } - if (t->frame() == prev_ts->frame()) { + if (t->frame() == prev_t->frame()) { return false; } /* precision check ensures pulses and frames align independent of lock style.*/ - if (by_frame && t->frame() != prev_ts->frame_at_pulse (t->pulse(), _frame_rate)) { + if (by_frame && t->frame() != prev_t->frame_at_pulse (t->pulse(), _frame_rate)) { return false; } } - prev_ts = t; + prev_t = t; } } @@ -1783,7 +1783,7 @@ TempoMap::set_active_tempos (const Metrics& metrics, const framepos_t& frame) bool TempoMap::solve_map (Metrics& imaginary, TempoSection* section, const Tempo& bpm, const framepos_t& frame) { - TempoSection* prev_ts = 0; + TempoSection* prev_t = 0; TempoSection* section_prev = 0; framepos_t first_m_frame = 0; @@ -1810,20 +1810,20 @@ TempoMap::solve_map (Metrics& imaginary, TempoSection* section, const Tempo& bpm if (!t->active()) { continue; } - if (prev_ts) { + if (prev_t) { if (t == section) { - section_prev = prev_ts; + section_prev = prev_t; continue; } if (t->position_lock_style() == MusicTime) { - prev_ts->set_c_func (prev_ts->compute_c_func_pulse (t->pulses_per_minute(), t->pulse(), _frame_rate)); - t->set_frame (prev_ts->frame_at_pulse (t->pulse(), _frame_rate)); + prev_t->set_c_func (prev_t->compute_c_func_pulse (t->pulses_per_minute(), t->pulse(), _frame_rate)); + t->set_frame (prev_t->frame_at_pulse (t->pulse(), _frame_rate)); } else { - prev_ts->set_c_func (prev_ts->compute_c_func_frame (t->pulses_per_minute(), t->frame(), _frame_rate)); - t->set_pulse (prev_ts->pulse_at_frame (t->frame(), _frame_rate)); + prev_t->set_c_func (prev_t->compute_c_func_frame (t->pulses_per_minute(), t->frame(), _frame_rate)); + t->set_pulse (prev_t->pulse_at_frame (t->frame(), _frame_rate)); } } - prev_ts = t; + prev_t = t; } } @@ -1883,7 +1883,7 @@ TempoMap::solve_map (Metrics& imaginary, TempoSection* section, const Tempo& bpm bool TempoMap::solve_map (Metrics& imaginary, TempoSection* section, const Tempo& bpm, const double& pulse) { - TempoSection* prev_ts = 0; + TempoSection* prev_t = 0; TempoSection* section_prev = 0; section->set_pulse (pulse); @@ -1894,20 +1894,20 @@ TempoMap::solve_map (Metrics& imaginary, TempoSection* section, const Tempo& bpm if (!t->active()) { continue; } - if (prev_ts) { + if (prev_t) { if (t == section) { - section_prev = prev_ts; + section_prev = prev_t; continue; } if (t->position_lock_style() == MusicTime) { - prev_ts->set_c_func (prev_ts->compute_c_func_pulse (t->pulses_per_minute(), t->pulse(), _frame_rate)); - t->set_frame (prev_ts->frame_at_pulse (t->pulse(), _frame_rate)); + prev_t->set_c_func (prev_t->compute_c_func_pulse (t->pulses_per_minute(), t->pulse(), _frame_rate)); + t->set_frame (prev_t->frame_at_pulse (t->pulse(), _frame_rate)); } else { - prev_ts->set_c_func (prev_ts->compute_c_func_frame (t->pulses_per_minute(), t->frame(), _frame_rate)); - t->set_pulse (prev_ts->pulse_at_frame (t->frame(), _frame_rate)); + prev_t->set_c_func (prev_t->compute_c_func_frame (t->pulses_per_minute(), t->frame(), _frame_rate)); + t->set_pulse (prev_t->pulse_at_frame (t->frame(), _frame_rate)); } } - prev_ts = t; + prev_t = t; } } if (section_prev) { @@ -1968,7 +1968,7 @@ TempoMap::solve_map (Metrics& imaginary, TempoSection* section, const Tempo& bpm void TempoMap::solve_map (Metrics& imaginary, MeterSection* section, const Meter& mt, const framepos_t& frame) { - MeterSection* prev_ms = 0; + MeterSection* prev_m = 0; if (!section->movable()) { /* lock the first tempo to our first meter */ @@ -2007,34 +2007,34 @@ TempoMap::solve_map (Metrics& imaginary, MeterSection* section, const Meter& mt, double pulse = 0.0; pair<double, BBT_Time> b_bbt; if (m->movable()) { - const double beats = ((pulse_at_frame_locked (imaginary, frame) - prev_ms->pulse()) * prev_ms->note_divisor()) - prev_ms->beat(); - const double ceil_beats = beats - fmod (beats, prev_ms->divisions_per_bar()); - b_bbt = make_pair (ceil_beats, BBT_Time ((ceil_beats / prev_ms->divisions_per_bar()) + prev_ms->bbt().bars, 1, 0)); - const double true_pulse = prev_ms->pulse() + ((ceil_beats - prev_ms->beat()) / prev_ms->note_divisor()); - const double pulse_off = true_pulse - ((beats - prev_ms->beat()) / prev_ms->note_divisor()); + const double beats = ((pulse_at_frame_locked (imaginary, frame) - prev_m->pulse()) * prev_m->note_divisor()) - prev_m->beat(); + const double ceil_beats = beats - fmod (beats, prev_m->divisions_per_bar()); + b_bbt = make_pair (ceil_beats, BBT_Time ((ceil_beats / prev_m->divisions_per_bar()) + prev_m->bbt().bars, 1, 0)); + const double true_pulse = prev_m->pulse() + ((ceil_beats - prev_m->beat()) / prev_m->note_divisor()); + const double pulse_off = true_pulse - ((beats - prev_m->beat()) / prev_m->note_divisor()); pulse = true_pulse - pulse_off; } else { b_bbt = make_pair (0.0, BBT_Time (1, 1, 0)); } m->set_beat (b_bbt); m->set_pulse (pulse); - prev_ms = m; + prev_m = m; continue; } - if (prev_ms) { + if (prev_m) { if (m->position_lock_style() == MusicTime) { - const double pulse = prev_ms->pulse() + (m->beat() - prev_ms->beat()) / prev_ms->note_divisor(); + const double pulse = prev_m->pulse() + (m->beat() - prev_m->beat()) / prev_m->note_divisor(); m->set_frame (frame_at_pulse_locked (imaginary, pulse)); m->set_pulse (pulse); } else { double pulse = 0.0; pair<double, BBT_Time> b_bbt; if (m->movable()) { - const double beats = ((pulse_at_frame_locked (imaginary, m->frame()) - prev_ms->pulse()) * prev_ms->note_divisor()) - prev_ms->beat(); - const double ceil_beats = beats - fmod (beats , prev_ms->divisions_per_bar()); - b_bbt = make_pair (ceil_beats, BBT_Time ((ceil_beats / prev_ms->divisions_per_bar()) + prev_ms->bbt().bars, 1, 0)); - const double true_pulse = prev_ms->pulse() + (ceil_beats - prev_ms->beat()) / prev_ms->note_divisor(); - const double pulse_off = true_pulse - ((beats - prev_ms->beat()) / prev_ms->note_divisor()); + const double beats = ((pulse_at_frame_locked (imaginary, m->frame()) - prev_m->pulse()) * prev_m->note_divisor()) - prev_m->beat(); + const double ceil_beats = beats - fmod (beats , prev_m->divisions_per_bar()); + b_bbt = make_pair (ceil_beats, BBT_Time ((ceil_beats / prev_m->divisions_per_bar()) + prev_m->bbt().bars, 1, 0)); + const double true_pulse = prev_m->pulse() + (ceil_beats - prev_m->beat()) / prev_m->note_divisor(); + const double pulse_off = true_pulse - ((beats - prev_m->beat()) / prev_m->note_divisor()); pulse = true_pulse - pulse_off; } else { b_bbt = make_pair (0.0, BBT_Time (1, 1, 0)); @@ -2044,7 +2044,7 @@ TempoMap::solve_map (Metrics& imaginary, MeterSection* section, const Meter& mt, m->set_pulse (pulse); } } - prev_ms = m; + prev_m = m; } } @@ -2062,7 +2062,7 @@ TempoMap::solve_map (Metrics& imaginary, MeterSection* section, const Meter& mt, void TempoMap::solve_map (Metrics& imaginary, MeterSection* section, const Meter& mt, const double& pulse) { - MeterSection* prev_ms = 0; + MeterSection* prev_m = 0; section->set_pulse (pulse); @@ -2071,27 +2071,27 @@ TempoMap::solve_map (Metrics& imaginary, MeterSection* section, const Meter& mt, if ((m = dynamic_cast<MeterSection*> (*i)) != 0) { if (m == section){ section->set_frame (frame_at_pulse_locked (imaginary, pulse)); - const double beats = ((pulse - prev_ms->pulse()) * prev_ms->note_divisor()) - prev_ms->beat(); - const int32_t bars = (beats + 1) / prev_ms->divisions_per_bar(); + const double beats = ((pulse - prev_m->pulse()) * prev_m->note_divisor()) - prev_m->beat(); + const int32_t bars = (beats + 1) / prev_m->divisions_per_bar(); pair<double, BBT_Time> b_bbt = make_pair (beats, BBT_Time (bars + 1, 1, 0)); section->set_beat (b_bbt); - prev_ms = section; + prev_m = section; continue; } - if (prev_ms) { + if (prev_m) { if (m->position_lock_style() == MusicTime) { - const double pulse = prev_ms->pulse() + (m->beat() - prev_ms->beat()) / prev_ms->note_divisor(); + const double pulse = prev_m->pulse() + (m->beat() - prev_m->beat()) / prev_m->note_divisor(); m->set_frame (frame_at_pulse_locked (imaginary, pulse)); m->set_pulse (pulse); } else { double pulse = 0.0; pair<double, BBT_Time> b_bbt; if (m->movable()) { - const double beats = ((pulse_at_frame_locked (imaginary, m->frame()) - prev_ms->pulse()) * prev_ms->note_divisor()) - prev_ms->beat(); - const double ceil_beats = beats - fmod (beats, prev_ms->divisions_per_bar()); - b_bbt = make_pair (ceil_beats, BBT_Time ((ceil_beats / prev_ms->divisions_per_bar()) + prev_ms->bbt().bars, 1, 0)); - const double true_pulse = prev_ms->pulse() + (m->beat() - prev_ms->beat()) / prev_ms->note_divisor(); - const double pulse_off = true_pulse - ((ceil_beats - prev_ms->beat()) / prev_ms->note_divisor()); + const double beats = ((pulse_at_frame_locked (imaginary, m->frame()) - prev_m->pulse()) * prev_m->note_divisor()) - prev_m->beat(); + const double ceil_beats = beats - fmod (beats, prev_m->divisions_per_bar()); + b_bbt = make_pair (ceil_beats, BBT_Time ((ceil_beats / prev_m->divisions_per_bar()) + prev_m->bbt().bars, 1, 0)); + const double true_pulse = prev_m->pulse() + (m->beat() - prev_m->beat()) / prev_m->note_divisor(); + const double pulse_off = true_pulse - ((ceil_beats - prev_m->beat()) / prev_m->note_divisor()); pulse = true_pulse - pulse_off; } else { b_bbt = make_pair (0.0, BBT_Time (1, 1, 0)); @@ -2100,7 +2100,7 @@ TempoMap::solve_map (Metrics& imaginary, MeterSection* section, const Meter& mt, m->set_pulse (pulse); } } - prev_ms = m; + prev_m = m; } } @@ -2661,7 +2661,7 @@ TempoMap::tempo_at (const framepos_t& frame) const const Tempo TempoMap::tempo_at_locked (const framepos_t& frame) const { - TempoSection* prev_ts = 0; + TempoSection* prev_t = 0; Metrics::const_iterator i; @@ -2671,18 +2671,18 @@ TempoMap::tempo_at_locked (const framepos_t& frame) const if (!t->active()) { continue; } - if ((prev_ts) && t->frame() > frame) { + if ((prev_t) && t->frame() > frame) { /* t is the section past frame */ - const double ret = prev_ts->tempo_at_frame (frame, _frame_rate) * prev_ts->note_type(); - const Tempo ret_tempo (ret, prev_ts->note_type()); + const double ret = prev_t->tempo_at_frame (frame, _frame_rate) * prev_t->note_type(); + const Tempo ret_tempo (ret, prev_t->note_type()); return ret_tempo; } - prev_ts = t; + prev_t = t; } } - const double ret = prev_ts->beats_per_minute(); - const Tempo ret_tempo (ret, prev_ts->note_type ()); + const double ret = prev_t->beats_per_minute(); + const Tempo ret_tempo (ret, prev_t->note_type ()); return ret_tempo; } @@ -2732,20 +2732,20 @@ TempoMap::meter_at (framepos_t frame) const const MeterSection& TempoMap::meter_section_at (const double& beat) const { - MeterSection* prev_ms = 0; + MeterSection* prev_m = 0; Glib::Threads::RWLock::ReaderLock lm (lock); for (Metrics::const_iterator i = _metrics.begin(); i != _metrics.end(); ++i) { MeterSection* m; if ((m = dynamic_cast<MeterSection*> (*i)) != 0) { - if (prev_ms && m->beat() > beat) { + if (prev_m && m->beat() > beat) { break; } - prev_ms = m; + prev_m = m; } } - return *prev_ms; + return *prev_m; } XMLNode& @@ -2816,26 +2816,26 @@ TempoMap::set_state (const XMLNode& node, int /*version*/) for (Metrics::iterator i = _metrics.begin(); i != _metrics.end(); ++i) { MeterSection* m; TempoSection* t; - MeterSection* prev_ms = 0; - TempoSection* prev_ts = 0; + MeterSection* prev_m = 0; + TempoSection* prev_t = 0; if ((m = dynamic_cast<MeterSection*>(*i)) != 0) { - if (prev_ms && prev_ms->pulse() < 0.0) { + if (prev_m && prev_m->pulse() < 0.0) { /*XX we cannot possibly make this work??. */ - pair<double, BBT_Time> start = make_pair (((prev_ms->bbt().bars - 1) * prev_ms->note_divisor()) + (prev_ms->bbt().beats - 1) + (prev_ms->bbt().ticks / BBT_Time::ticks_per_beat), prev_ms->bbt()); - prev_ms->set_beat (start); - const double start_pulse = ((prev_ms->bbt().bars - 1) * prev_ms->note_divisor()) + (prev_ms->bbt().beats - 1) + (prev_ms->bbt().ticks / BBT_Time::ticks_per_beat); - prev_ms->set_pulse (start_pulse); + pair<double, BBT_Time> start = make_pair (((prev_m->bbt().bars - 1) * prev_m->note_divisor()) + (prev_m->bbt().beats - 1) + (prev_m->bbt().ticks / BBT_Time::ticks_per_beat), prev_m->bbt()); + prev_m->set_beat (start); + const double start_pulse = ((prev_m->bbt().bars - 1) * prev_m->note_divisor()) + (prev_m->bbt().beats - 1) + (prev_m->bbt().ticks / BBT_Time::ticks_per_beat); + prev_m->set_pulse (start_pulse); } - prev_ms = m; + prev_m = m; } else if ((t = dynamic_cast<TempoSection*>(*i)) != 0) { if (!t->active()) { continue; } - if (prev_ts && prev_ts->pulse() < 0.0) { - double const start = ((prev_ts->legacy_bbt().bars - 1) * prev_ms->note_divisor()) + (prev_ts->legacy_bbt().beats - 1) + (prev_ts->legacy_bbt().ticks / BBT_Time::ticks_per_beat); - prev_ts->set_pulse (start); + if (prev_t && prev_t->pulse() < 0.0) { + double const start = ((prev_t->legacy_bbt().bars - 1) * prev_m->note_divisor()) + (prev_t->legacy_bbt().beats - 1) + (prev_t->legacy_bbt().ticks / BBT_Time::ticks_per_beat); + prev_t->set_pulse (start); } - prev_ts = t; + prev_t = t; } } /* check for multiple tempo/meters at the same location, which @@ -2846,19 +2846,19 @@ TempoMap::set_state (const XMLNode& node, int /*version*/) for (Metrics::iterator i = _metrics.begin(); i != _metrics.end(); ++i) { if (prev != _metrics.end()) { MeterSection* ms; - MeterSection* prev_ms; + MeterSection* prev_m; TempoSection* ts; - TempoSection* prev_ts; - if ((prev_ms = dynamic_cast<MeterSection*>(*prev)) != 0 && (ms = dynamic_cast<MeterSection*>(*i)) != 0) { - if (prev_ms->pulse() == ms->pulse()) { - cerr << string_compose (_("Multiple meter definitions found at %1"), prev_ms->pulse()) << endmsg; - error << string_compose (_("Multiple meter definitions found at %1"), prev_ms->pulse()) << endmsg; + TempoSection* prev_t; + if ((prev_m = dynamic_cast<MeterSection*>(*prev)) != 0 && (ms = dynamic_cast<MeterSection*>(*i)) != 0) { + if (prev_m->pulse() == ms->pulse()) { + cerr << string_compose (_("Multiple meter definitions found at %1"), prev_m->pulse()) << endmsg; + error << string_compose (_("Multiple meter definitions found at %1"), prev_m->pulse()) << endmsg; return -1; } - } else if ((prev_ts = dynamic_cast<TempoSection*>(*prev)) != 0 && (ts = dynamic_cast<TempoSection*>(*i)) != 0) { - if (prev_ts->pulse() == ts->pulse()) { - cerr << string_compose (_("Multiple tempo definitions found at %1"), prev_ts->pulse()) << endmsg; - error << string_compose (_("Multiple tempo definitions found at %1"), prev_ts->pulse()) << endmsg; + } else if ((prev_t = dynamic_cast<TempoSection*>(*prev)) != 0 && (ts = dynamic_cast<TempoSection*>(*i)) != 0) { + if (prev_t->pulse() == ts->pulse()) { + cerr << string_compose (_("Multiple tempo definitions found at %1"), prev_t->pulse()) << endmsg; + error << string_compose (_("Multiple tempo definitions found at %1"), prev_t->pulse()) << endmsg; return -1; } } @@ -2880,7 +2880,7 @@ TempoMap::dump (const Metrics& metrics, std::ostream& o) const Glib::Threads::RWLock::ReaderLock lm (lock, Glib::Threads::TRY_LOCK); const MeterSection* m; const TempoSection* t; - const TempoSection* prev_ts = 0; + const TempoSection* prev_t = 0; for (Metrics::const_iterator i = metrics.begin(); i != metrics.end(); ++i) { @@ -2888,11 +2888,11 @@ TempoMap::dump (const Metrics& metrics, std::ostream& o) const o << "Tempo @ " << *i << t->beats_per_minute() << " BPM (pulse = 1/" << t->note_type() << ") at " << t->pulse() << " frame= " << t->frame() << " (movable? " << t->movable() << ')' << " pos lock: " << enum_2_string (t->position_lock_style()) << std::endl; o << "current : " << t->beats_per_minute() << " | " << t->pulse() << " | " << t->frame() << std::endl; - if (prev_ts) { - o << "previous : " << prev_ts->beats_per_minute() << " | " << prev_ts->pulse() << " | " << prev_ts->frame() << std::endl; - o << "calculated : " << prev_ts->tempo_at_pulse (t->pulse()) * prev_ts->note_type() << " | " << prev_ts->pulse_at_tempo (t->pulses_per_minute(), t->frame(), _frame_rate) << " | " << prev_ts->frame_at_tempo (t->pulses_per_minute(), t->pulse(), _frame_rate) << std::endl; + if (prev_t) { + o << "previous : " << prev_t->beats_per_minute() << " | " << prev_t->pulse() << " | " << prev_t->frame() << std::endl; + o << "calculated : " << prev_t->tempo_at_pulse (t->pulse()) * prev_t->note_type() << " | " << prev_t->pulse_at_tempo (t->pulses_per_minute(), t->frame(), _frame_rate) << " | " << prev_t->frame_at_tempo (t->pulses_per_minute(), t->pulse(), _frame_rate) << std::endl; } - prev_ts = t; + prev_t = t; } else if ((m = dynamic_cast<const MeterSection*>(*i)) != 0) { o << "Meter @ " << *i << ' ' << m->divisions_per_bar() << '/' << m->note_divisor() << " at " << m->bbt() << " frame= " << m->frame() << " pulse: " << m->pulse() << " beat : " << m->beat() << " pos lock: " << enum_2_string (m->position_lock_style()) << " (movable? " << m->movable() << ')' << endl; |