Commit Graph

37765 Commits

Author SHA1 Message Date
Robin Gareus dfc52fd5fb
Plugin analysis: cairo coordinate system fixes 2023-07-18 18:13:34 +02:00
Albert Graef e448895acf Add a map for the Donner StarryPad drum pad controller. 2023-07-18 13:34:40 +04:00
Paul Davis ec7d502959 cairo single pixel line offset fix, part 2
This will need careful visual inspection of the items drawn by the
affected code to make sure they are still precisely as intended
2023-07-17 20:55:13 -06:00
Paul Davis 4c845eb2a0 cairo single pixel line offset fix, part 1 2023-07-17 20:54:33 -06:00
Paul Davis 8c479ff425 lv2: if bpm is a double it may as well be a double from the start 2023-07-17 16:46:54 -06:00
Paul Davis cbde791805 short doc on drawing cairo single pixel lines 2023-07-17 16:46:54 -06:00
Robin Gareus 3ab3ef3b55
Fix lineset drawing (again), apply cairo 0.5px offset
see also f08299ea1e
2023-07-17 23:28:36 +02:00
Robin Gareus 2698b23f82
VST3: try an alternative approach use kMono as flag, not arrangement
See also 920a6a46c3 and 445e5162fd.
2023-07-17 20:48:45 +02:00
Robin Gareus 8aebfc45dc
Revert "VST3: work around UADx crash when in mono configuration"
This reverts commit 920a6a46c3.
2023-07-17 20:45:44 +02:00
Paul Davis 8a5f370994 lv2: correctly compute tempo for tempo markers delivered as position events 2023-07-17 11:39:47 -06:00
Paul Davis 93cbbf57d1 lv2: reserve vector for return values from TempoMap::get_grid() 2023-07-17 11:39:47 -06:00
Paul Davis 9fd0076c93 lv2plugins: correctly compute tempo to be passed to LV2 plugins 2023-07-17 11:39:47 -06:00
Robin Gareus f08299ea1e
Fix lineset drawing for lines > 1px width
This is a follow up to 248e37ac0c.

A line at 0 with 1px width should draw from 0.5 to 1.5
(cairo pixel offset). The same line with a width of 3px
is -0.5 to 2.5.

The self.intersection code calculates this correctly, subtracting
shift, the drawing code however incorrectly added it.

This fixes MIDI track grid/note offset as well as a bleed
below the track.
2023-07-17 05:05:20 +02:00
Robin Gareus 8a371bcaa2
Fix tempo-map backward compatibility
Moving forward tempo-type is saved without `Tempo::`
prefix again.
2023-07-17 00:35:05 +02:00
Robin Gareus b61f84e872
Print messages for each possible session-load failure 2023-07-16 16:16:59 +02:00
Paul Davis c31c1906f7 temporal: fix dangling confusion about "omega"
Remove all reference to "omega_sc" and rename "omega_beats" as omega
2023-07-15 21:45:11 -06:00
Paul Davis 2aa7dd42ea lv2: plugins get an iterator to (sometimes|often) speed up ::get_grid() calls 2023-07-15 11:30:40 -06:00
Paul Davis ea2d2b4760 temporal: rename ::get_grid_with_iterator()
Because I like polymorphism
2023-07-15 11:23:45 -06:00
Paul Davis b2a57108c3 actually reserve space for click grid points, to void RT memory allocation 2023-07-15 11:08:45 -06:00
Paul Davis b8af596a92 update all marker positions after a tempo map change 2023-07-15 11:08:45 -06:00
Paul Davis 422fa7255b temporal: further extensions to GridIterator API to handle bar_mod/beat_div parameters
Also try to comment class definition to add a little clarity
2023-07-15 11:08:45 -06:00
Paul Davis 460266de13 NOOP: whitespace fix 2023-07-15 11:08:45 -06:00
John Emmas 35c04d0ee7 Add a missing namespace specifier 2023-07-15 12:55:30 +01:00
Paul Davis cbaa335946 temporal: some cleanup of the GridIterator API 2023-07-14 21:32:40 -06:00
Robin Gareus a857a0af4d
Update Luabindings for new TempoMap API 2023-07-14 23:48:13 +02:00
Paul Davis 509efdb290 temporal: refactor ::get_grid() for performance reasons
the API now provides the option to call ::get_grid() with an iterator which may
be re-used on subsequent calls. This avoids unbounded O(N) "walks" from the
marker preceding the start point of the grid to the start point.

This commit also includes "fast-path" code for the common case of a single
tempo and single meter
2023-07-14 13:03:36 -06:00
Paul Davis ae5755dbe5 do not mark sections of menu/action paths as translatable, since they are not 2023-07-14 13:03:36 -06:00
Paul Davis ed869da97e reserve space for tempo map grid (GUI side) 2023-07-14 13:03:36 -06:00
Paul Davis 81384537ef temporal: remove useless _floating member and API from TempoMapPoint 2023-07-14 13:03:36 -06:00
Paul Davis ed43ac3a28 remova Lua version of count_bars() since it is not longer in TempoMap 2023-07-14 13:03:36 -06:00
Paul Davis f41505a8c6 add Editor::count_bars() after removing it from libtemporal 2023-07-14 13:03:36 -06:00
Paul Davis 039f2d5d0e remove TempoMap::count_bars()
It's the only place in libtemporal that would require
a TempoMapPoints allocation, and there's no reason to do
this inside the library.
2023-07-14 13:03:36 -06:00
Paul Davis 52f1b88749 temporal: remove ill-conceived lookup tables from tempo map (never publically visible)
These were not thread safe, and could not be: to be useful, a thread looking up a time
conversion could cache the result, but it would be using the global (shared) copy
of the map (because lookup is read-only, and so no write-copy is required). But
inserting into the lookup table wasn't lock protected (and shouldn't be because otherwise
that defeats the point of RCU).

So just drop it.
2023-07-14 13:03:26 -06:00
Paul Davis df52c39ce0 freehand line drawing: automation & velocity share the same basic code 2023-07-14 13:03:26 -06:00
Robin Gareus 2c48aabe08
Handle race condition when removing route before routeUI
This fixes a crash when removing the monitor section.
The monitor route goes away, but the GUI remains. The
IOButton may still process previously queued
cross-thread signals.

In many cases this was not an issue since the route's
memory was not immediately released or shared_ptr
destruction only happened a short time later.
2023-07-14 19:03:32 +02:00
Robin Gareus bedab69338
Pin Dialog: hide send polarity invert 2023-07-14 16:59:54 +02:00
Albert Graef 37c000c967 Add binding maps for the AKAI APC mini (mk1 and mk2) and the MPK miniplus. 2023-07-12 22:31:27 +02:00
Robin Gareus f2c5f9da25
Lua: allow to reserve STL vector size 2023-07-12 18:23:51 +02:00
Robin Gareus 72522dd05d
Lua bindings for TempoMap::get_grid 2023-07-11 23:01:09 +02:00
Robin Gareus fd6d88583f
LV2 MIDI synths: only tx tempo-map if plugin asks for it
This is a slight improvement on 8d97db101 to further mitigate
excessive overhead introduce in a591fb64a.
2023-07-11 21:52:58 +02:00
Robin Gareus 8d97db101e
LV2Plugin: do not unconditionally call TempoMap::get_grid 2023-07-11 19:15:40 +02:00
Robin Gareus 8145e92b43
Clarify Control point edit dialog messages, add tooltip 2023-07-11 01:16:58 +02:00
Robin Gareus 4c8b414fb6
Allow to numeric ctrl point edit to apply to all selected points 2023-07-11 00:53:48 +02:00
Paul Davis ac68fcb880 automation drawing: fix right-to-left free drawing 2023-07-10 14:39:23 -06:00
Paul Davis f6f1f3393d automation drawing: fatter line 2023-07-10 14:38:58 -06:00
Paul Davis d12aa315fc automation drawn: ensure the right-to-left drawn lines are ordered correctly 2023-07-10 14:23:39 -06:00
Paul Davis 459659d229 ControlList: do not handle mis-ordered OrderedPoints 2023-07-10 14:23:17 -06:00
Paul Davis 9c590c1ed1 syntactic tweak 2023-07-10 14:17:10 -06:00
Paul Davis 9d5b6a78d5 automation drawing: better line color 2023-07-10 14:16:59 -06:00
Paul Davis 64dc7557cf automation drawing: some code cleanup and thinko fixes for ::editor_add_ordered() 2023-07-10 14:05:27 -06:00