Commit Graph

42 Commits

Author SHA1 Message Date
Ben Loftis 3af055e0c0 tempo-marker start bpm text was not being updated during+after a mouse drag 2023-09-28 09:09:37 -05:00
Paul Davis 0d89bc5789 fix height of tempo ruler curve elements
These were being drawn in a way that failed to really convey relative
tempos very well. This is now better, though perhaps there are other
improvements possible
2023-08-31 18:25:18 -06:00
Paul Davis da9140a390 polish the way we print tempo numerics in tempo ruler 2023-08-31 10:34:48 -06:00
Paul Davis 43d6d4187c display tempo with only 1 digit of decimals 2023-08-31 10:34:48 -06:00
Paul Davis 602a029773 tempo curves: fix width so that the curve from the Nth marker does not overlap the Nth+1 2022-06-27 22:21:27 -06:00
Paul Davis 4fd676aad5 fix optimized build buffer size/snprintf warning 2022-06-22 13:31:07 -06:00
Paul Davis fdd634f530 add ctrl-drag on tempo bar/ruler to adjust tempo more directly 2022-05-29 14:19:27 -06:00
Paul Davis ccc4cd1bb1 fix incorrect drawing of tempo curves 2022-05-02 12:20:48 -06:00
Robin Gareus 92024cac99
Remove debug messages (2/2) 2022-03-16 17:08:15 +01:00
Paul Davis 320a20cbab tempo display: during ressaociate markers, update tempo curves as well 2022-03-10 08:27:24 -07:00
Paul Davis c916d3d952 Substantial overhaul of tempo display code
Major changes: do not delete and recreate markers and curves for every tempo map
change, attach tempo curves directly to their (preceding) tempo marker, notable
cleanup of TempoCurve class to remove unnecessary members.

More tweaks expected since algorithm for matching markers and tempo map
points is not correct yet.
2022-01-18 19:47:20 -07:00
Paul Davis 0d41f87f4b incorrect printf argument type 2021-08-13 12:51:29 -06:00
Paul Davis 749a49c278 incorporating new tempo map API 2021-08-13 12:51:29 -06:00
Robin Gareus aa564efa86
using std::max was removed from header 2020-06-18 01:21:31 +02:00
Robin Gareus 4050ca5633
Update GPL boilerplate and (C)
Copyright-holder and year information is extracted from git log.

git history begins in 2005. So (C) from 1998..2005 is lost. Also some
(C) assignment of commits where the committer didn't use --author.
2019-08-03 15:53:15 +02:00
Paul Davis 30b087ab3d globally change all use of "frame" to refer to audio into "sample".
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-18 12:39:17 -04:00
Thomas Brand 63ea7b6516 NO-OP whitespace (updated GH PR #357) 2017-07-01 19:28:26 +02:00
nick_m e55b882a09 _group, group.. who cares? 2017-02-27 20:16:10 +01:00
nick_m 07b4da44bf clicking on curve text does the right thing. 2017-02-27 20:16:10 +01:00
nick_m 4496babc8f initial rework of tempo text display (numbers are curve items)
- move tempo numbers to a layer above the curve.

	- the offset of the text box in Marker is horrible here.
	  what to do?
2017-02-27 20:16:10 +01:00
nick_m f8a6f8918d back to using shift-ctrl for pinch drag. set colours of affected curves. 2017-02-27 20:16:10 +01:00
nick_m ccb51a8ddb rework tempo editing.
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-27 20:16:10 +01:00
nick_m d855ad2856 rename TempoSection::c_func() -> c(). ensure constant tempi have this set to 0. 2017-01-07 01:27:06 +11:00
nick_m 22f17a3007 tempo curve fiddling. 2016-12-11 23:55:13 +11:00
nick_m a432f6585c TempoSection::tempo_at methods return a Tempo, document the opposite direction. 2016-11-11 03:37:08 +11:00
nick_m 33e95a1577 rename Tempo _beats_per_minute to _note_types_per_minute, provide pulse helpers.
- 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-11 03:37:08 +11:00
nick_m 0e867b544b Refactor tempo api, include quarter-note distance in frames method.
- 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-11-11 03:37:08 +11:00
nick_m 92920307ae Tempo curve cleanup, now also works on optimized builds. 2016-10-17 01:28:33 +11:00
nick_m 2f72b42385 TempoSection methods deal in beats rather than pulses per minute.
- removes note type from curve function for a slightly more
	  accurate result.
2016-10-09 03:46:50 +11:00
nick_m 74a604d261 Fix the tempo note-type hallucination.
- 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 e82482e8e9 and a4d67279e0
	  and maintains the old definition of Tempo::pulses_per_minute()
2016-09-05 16:28:46 +10:00
nick_m a4d67279e0 Fix graphical issues in tempo curve. 2016-09-04 03:18:12 +10:00
Paul Davis cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
nick_m b8a7ee001b Fix potential infinite loop in TempoCurve::set_position()
- it was previously possible for frame_step to be zero for tempo sections with
	  a short duration, resulting in endlessly adding 0 to current_frame.
2016-07-11 03:53:36 +10:00
nick_m 8b0c5b8426 Register colour aliases for tempo curve. 2016-06-16 02:06:40 +10:00
nick_m fa50cf50d1 Clamp tempo curve height. 2016-06-04 07:24:04 +10:00
nick_m a9921c10eb Gd Lk ramps - rework auto scaling. change colour. 2016-05-27 23:38:17 +10:00
nick_m 1927a707c5 Tempo ramps - fix huge marker height mark, remove unused var. 2016-05-27 23:38:17 +10:00
nick_m 2d3d7a5355 Tempo ramps - fix ambiguous api, fix flickering tempo curves. 2016-05-27 23:38:16 +10:00
nick_m 0c7ecc6cbb Tempo ramps - add Canvas::FramedCurve and use it in the tempo marker bar. 2016-05-27 23:38:16 +10:00
nick_m 8724a9f68f Tempo ramps - improve constraint mod + bbt dragging begavior. 2016-05-27 23:38:16 +10:00
nick_m ccf6ce76d9 Tempo ramps - clean up tempo curve a bit. 2016-05-27 23:38:16 +10:00
nick_m 86b0268e8b Tempo ramps - add visualtempo curve, dragging bbt or music rulers with constraint modifier dilates previous tempo. 2016-05-27 23:38:16 +10:00