summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/tempo.h
AgeCommit message (Collapse)Author
2017-09-24convert codebase to use Temporal for various time typesPaul Davis
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode and video in order to keep the legible
2017-08-20Don't use references for constant c-typesRobin Gareus
This fixes various Lua-scripts: There are no explicit bindings to turn int64_t, uint64_t into a const reference. Besides it doesn't make sense to use a reference for constant _t that can be directly loaded in CPU register or on the stack.
2017-07-22Rework tempo marker editing menu functionsnick_m
Setting a tempo to 'Continue' via right click puts it in a permanent state of continuing the previous section's end tempo (basically what 'Lock Continue' should have been). This can be disabled (unlocked) by selecting 'Don't Continue'. Remove the previous temporary 'Continue' function. Reorganise menu to separate position lock style from more commonly used functions.
2017-07-22Calculate clamped tempo stretch ratios using the correct (musical) domainnick_m
2017-07-22Remove redundant beat arg from TempoMap::add_meternick_m
BBT time should be enough to determine the beat.
2017-06-09Add a method for obtaining the frame position of beat/whatever zeronick_m
2017-06-09Tempo lines display subdivisions correctly over a tempo changenick_m
TempoMap::get_grid() supplies a list of beat positions, leaving the lines to work out any subdivision positions. This is fine, unless a tempo section falls in between beats. Use a BeatsFramesConverter along with a quarter note position (in the BBTPointsList) to make this easier.
2017-06-08Fix uninitialised tempo section variablenick_m
Should fix 7390.
2017-04-19Use XMLNode::get/set_property API in Tempo/Time related classesTim Mayberry
2017-03-18Resolve copy-c'tor and assignment issue with TempoMapRobin Gareus
There are various issues with copy-construction: no readlock is taken, Tempo/Metric Sections were static-cast to non-const pointers and passed as references... This remove the [now] unused copy-c'tor, and fixes various const issues.
2017-03-05tempo editing updatesnick_m
- a tempo marker may now be set to always continue (clamped) this means that the end tempo of the previous section will track the start tempo during tempo ops. it mimics the behaviour in 5.8, with the gui indicating the curves to be changed.
2017-03-01allow continuation of tempo via right-click 'Continue' where appropriate.nick_m
- this is the opposite of 'Ramp to Next'. it removes discontinuities between the last end tempo and the current by altering the current one.
2017-02-27add TempoMap::next_tempo_section()nick_m
2017-02-27complete changes to tempo type.nick_m
- this implements in the intention behind the previous commit. a tempo mark is constant until its end has been changed by a shift-drag on the next marker.
2017-02-27compile fixBen Loftis
2017-02-27rework tempo editing.nick_m
most changes are due to a new design where tempo discontinuities at the beginning of a ramped section may be set. this allows easier mapping of live performance, especially in the common case of a ramped ritard before the beginning of a new section. feature summary: holding constraint modifier (shift) while dragging the BBT ruler area drags the tempo lines by changing the start tempo (as before) holding copy modifier (control) while dragging the BBT ruler area drags the tempo lines by changing the end tempo (ahem. not quite there) dragging a tempo mark while holding constraint (shift) will change the previous end tempo to match the marker position *worth trying*. holding constraint and copy modifier (control + shift) while dragging the BBT ruler area attempts to'pinch' or twist the surrounding tempi sp that later ones are not repositioned (currently suffereng from rounding errors)
2017-02-04remove unused empoMap::round_to_beat_subdivision()nick_m
2017-02-04rework snapnick_m
snap now fills in a struct (MusicFrame) which contins a snapped frame along with a music divisor. this gives useful information wrt magnetic snap which may or may not have rounded to an exact musical position. region position may now be set musically (using quarter notes for now). this patch fixes several problems in the current code: - dragging a list of music-locked regions now maintains correct musical offsets within the list. - splitting regions using magnetic snap works correctly (#7192) - cut drag should now work correctly with magnetic snap. - musical length of split midi regions is no longer frame based.
2017-01-27mark session dirty when dragging tempo markers.nick_m
2017-01-07remove some excessive methods from TempoMap.nick_m
- the beginning of what hopefully will be a saner 'pulse' definition
2017-01-07more no-op renaming - TempoSection::compute_c_func_* -> compute_c_nick_m
2017-01-07rename TempoSection::c_func() -> c(). ensure constant tempi have this set to 0.nick_m
2017-01-06prevent meter-locked tempi from being moved directly when replacing.nick_m
- the audio-locked meter owns it.
2017-01-05add Meter::operator==.nick_m
2016-12-28Some operators need to have different visibility (as they're now used ↵John Emmas
outside of libardour)
2016-12-19TempoMap - rename some methods.nick_m
gui_move_tempo -> gui_set_tempo_position gui_move_meter -> gui_set_meter_position gui_dilate_tempo -> gui_stretch_tempo
2016-12-19add frame parameter for Meter ctor and TempoMap::replace_meter(). allow for ↵nick_m
various failures.
2016-12-16add copy constructor, operator= and a clean ::dump() method for TempoMapPaul Davis
2016-12-12no-op - rename TempoMap::set_active_tempos -> TempoMap::set_active_tempinick_m
2016-12-12rename MetricSection movable -> initial, but of course initial is !movable..nick_m
2016-11-23constify some TempoMap functions.nick_m
2016-11-11rename note_divisions_per_minute -> ote_types_per_minute (double note_type)nick_m
2016-11-11add empoMap::quarter_notes_between_frames().nick_m
- in an ideal world, this wouldn't be here at all, but is required to support framewalk_to_qn(). if Beats are at tick resolution, the frame-induced temporal rounding is acceptable.
2016-11-11TempoSection::tempo_at methods return a Tempo, document the opposite direction.nick_m
2016-11-11rename Tempo _beats_per_minute to _note_types_per_minute, provide pulse helpers.nick_m
- adds quarter_notes_per_minute(), note_divisions_per_minute (double) pulses_per_minute() and frames_per_quarter_note() - this should be a no-op except for the use of tempo by the vst callback which definitely uses quarter notes per minute. - the XML node for TempoSection named 'beats-per-minute' has been renamed.
2016-11-11tempo doc explains that currently Tempo::beats_per_minute means something else.nick_m
- Tempo beats_per_minute() is currently implemented as note types per minute. a further patch will change Tempo to reflect this and provide some helpers.
2016-11-11more tempo documentation.nick_m
2016-11-11remove unused TempoMap::tempo_at_beat(). implement unused ↵nick_m
tempo_at_quarter_note().
2016-11-11tempo.h reorganization. should be a no-opnick_m
2016-11-11remove remaining frame api from TempoSection.nick_m
2016-11-11remove public pulse methods from TempoMap.nick_m
- the only object whose musical position is not expressed in quarter notes is MetricSection. there is now no need to expose this.
2016-11-11Refactor tempo api, include quarter-note distance in frames method.nick_m
- moves frame rounding up to TempoMap, which is needed in order to calculate pulse distance without frame rounding. - the time unit for tempo is still minute, but this now also applies to meter sections. (new audio locked meter sections no longer require a frame position). - there is no longer a discontinuity in the pulse for audio-locked meter/tempi. - temporarily add debugging output in Region::set_position() to test for region beat not matching region frame.
2016-10-19Improve bbt ruler drawing performance for large time ranges.nick_m
- when the timeline displays many bars, zoom/autoscroll speed is improved by calculating the bbt ruler scale first then requesting a suitably scaled grid.
2016-10-18Initialize TempoMetric _pulse in sonstructor.nick_m
2016-10-09TempoSection methods deal in beats rather than pulses per minute.nick_m
- removes note type from curve function for a slightly more accurate result.
2016-10-02Remove unused methods, add tests to ensure meter divisors don't mess with Beats.nick_m
- TempoMap::framepos_minus_beats() was only used by its test, so don't build the test.
2016-09-05Fix the tempo note-type hallucination.nick_m
- after reports that a tempo with non-4.0 note type would produce a ramp in the preceding section, an incorrect assumption was made leading to a bogus 'fix' that redefined Tempo's pulses_per_minute(). the real fix was simple: the ramp's function constant was calculated using the note type of the proceding tempo rather than the current one. - this patch reverts e82482e8e9c and a4d67279e0086258 and maintains the old definition of Tempo::pulses_per_minute()
2016-09-04Revert part of d50df8279966.nick_m
2016-09-03Fix various paste errors in tempo.cc. Should fix recent regressions.nick_m