summaryrefslogtreecommitdiff
path: root/libs/ardour/tempo.cc
AgeCommit message (Collapse)Author
2017-10-28Fix loading sessions w/new tempo-map.Robin Gareus
Newly constructed sessions don't save "Tempo-start" property. If there's no "start" node, _legacy_bbt is never explicitly set and the default c'tor is used, which sets bar = 1. The test for legacy session checks bar != 0. All new sessions were processed with fix_legacy_session(), which breaks the tempo-map and makes the session not loadable (duplicate Tempo).
2017-09-24fix header order and space alignmentPaul Davis
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-09-18fix issue with initialization of a BBT_Time variable.6.0-pre0Paul Davis
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-22TempoMap legacy session loading fixesnick_m
Ensure we set the last tempo end note types per minute. Clarify that we only set the end ntpm if unset.
2017-07-22Fis stray break statement when checking for a legacy tempo mapnick_m
This could result in legacy sessions not being identified correctly and loading with end tempi of -1.0.
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-22TempoMap : Remove old solve_map debugging codenick_m
2017-07-22Move some duplicated replace/add tempo section codenick_m
Resets the previous tempo section's end ntpm to match the start of a new section whenever a section is added to the map.
2017-07-22Remove redundant beat arg from TempoMap::add_meternick_m
BBT time should be enough to determine the beat.
2017-07-22Fix incorrect double-snap when moving audio-locked tempinick_m
2017-07-22Check for identical meter positions in old sessions by beat rather than pulsenick_m
2017-06-22Remove LocaleGuards from ARDOUR::Tempo classTim Mayberry
All float <=> string conversions are done for PBD::string_to/to_string and no longer require a LocaleGuard.
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-09Fix reversed logic in legacy tempo secton detectionnick_m
2017-06-08Fix uninitialised tempo section variablenick_m
Should fix 7390.
2017-05-23Sort tempo map after legacy sections have been assigned a pulsenick_m
2017-05-23Tempo sections with a BBT start XML node are never rampednick_m
2017-05-23Fix failure to laod old tempo mapsnick_m
I suspect this happened after an api change. Now, just use the position pair instead of a whole new variable.
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-10fix potential crash in LV2Plugin::connect_and_run() when music starts after 0nick_m
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-27fix crash in pinch dragnick_m
2017-02-27harden TempoMap::next_tempo_section () a bit.nick_m
2017-02-27amend last commit (don't depend on 0.0)nick_m
2017-02-27hopefully fix legacy session loading (tempo)nick_m
2017-02-27add TempoMap::next_tempo_section()nick_m
2017-02-27fix TempoMap::frame_at_tempo().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-27make new (ramped) tempi indidstiguishable from constant to the novice user.nick_m
- stretch drag (using shift on the curve) operates on the true meaning of constant. in other words, the only way you can make a tempo ramped is by adjusting the end tempo (shift drag on the *next* mark). from this point onwards. shift-drag the curve will change the start tempo and ctrl-drag the curve will change the end (needs work). to reset the curve to constant, 'make constant' should simply set the end tempo (unimplemented).
2017-02-27correct (?) behaviour of TempoMap::replace_temponick_m
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-16amend 32248b755ba (legacy tempo map).nick_m
2017-02-16fix loading of 4.x sessions with a missing initial tempo section.nick_m
- behaviour should match that of 4.x (move the first tempo to frame 0).
2017-02-14fix 'snap to beat' havoc-causing misplaced bracket.nick_m
- should fix 7234
2017-02-085.5 incorrectly marked the initial tempo as not locked to meter.nick_m
- the initial tempo must always be locked to meter, so i think it is safe to explicitly set it anyway.
2017-02-08fix legacy session where initial tempo was not locked to meter,nick_m
2017-02-05fix potential absorption of music-locked tempo into meter-locked one.nick_m
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-02-01Reduce continuous stream of warning messages (latent plugin, PH @ zero)Robin Gareus
2017-01-27mark session dirty when dragging tempo markers.nick_m
2017-01-07TempoMap - do frame conversion outside the lock when possible.nick_m
2017-01-07remove some excessive methods from TempoMap.nick_m
- the beginning of what hopefully will be a saner 'pulse' definition