Commit Graph

18360 Commits

Author SHA1 Message Date
a1699ff612 canvas: size_allocate() from GTK gives origin in parent coordinates.
Convert to canvas-relative origin when passing to root group for allocation
2021-10-03 19:47:18 -06:00
e670acbb0d canvastable: fix logic error in ::compute_bounding_box()
Since the bbox is determined by ::compute(), do not unconditionally clear it here
2021-10-03 16:46:25 -06:00
747a49006c canvastable: finish comment 2021-10-02 17:45:43 -06:00
a8cc0be45c canvastable: change some variable names; don't add per-col/row spacing twice 2021-10-02 17:09:01 -06:00
df5699b03e canvastable: fix comment to reflect split row/col homogeneity 2021-10-02 16:24:04 -06:00
8130d265fd canvas table: separate out row & col homogeneity 2021-10-02 16:19:49 -06:00
590866f8c1 canvas table; move computation of bounding box 2021-10-02 16:19:49 -06:00
88443586ef canvas table: clean up attach API; improve comments; move use of padding.right outside loop 2021-10-02 16:19:49 -06:00
c550a400b1 triggerbox: more properties 2021-10-01 18:39:06 -06:00
cc09576ef5 canvas table: dramatic fixes/extensions of table packing algorithm 2021-10-01 18:38:18 -06:00
e265b27f5d triggerbox: add quantization property and notify on changes 2021-09-29 18:00:55 -06:00
0e779fbec9 canvastable: if a cell is empty, still adjust horiz/vert coordinates so subsequent cells are aligned 2021-09-29 11:20:50 -06:00
378e4e7a03 canvastable: fix typo that led to mis-sized table (row/col mixup) 2021-09-29 11:20:50 -06:00
27ca49efd3 canvas: generic Item::_size_allocate() must adjust allocated space to parent-relative coords 2021-09-29 11:20:50 -06:00
542424e27d triggerbox: minor fixes to get properties working more correctly 2021-09-29 11:20:50 -06:00
ed3d374f47
Fix --no-nls compilation 1/2 -- #8802
pbd/i18n.h MUST NEVER be included from header files and always be
the last include. This is because `_` is declared other headers
notably boost and some apple headers.

leading to issues like
../libs/pbd/gettext.h:58:27: error: expected unqualified-id before ‘const’
   58 | # define gettext(Msgid) ((const char *) (Msgid))
2021-09-27 16:28:44 +02:00
2000bc6ea0 triggerbox: add use_follow and start using actual Properties for trigger properties 2021-09-26 21:59:15 -06:00
cc6c0f1263 there is no Properties::position any more
Position is a part of a length property (a duple specifying
"duration AT position", and there is no distinct property
for just the position itself.
2021-09-25 16:49:51 -06:00
64db1367bb Change name of Stateful::apply_changes (PropertyBase) to the singular form.
Makes it slightly easier to read+parse what is happening. Yes, for a
Sequence property, the call could apply several changes, but overwhelmingly
it is used to apply a single change.
2021-09-25 16:49:51 -06:00
30a00c5e9f Fix implementation of timecnt_t::operator==() to compare both duration and position 2021-09-25 16:49:51 -06:00
43c7a39f18 Additional removal of a PropertyTemplate::call() site 2021-09-25 16:49:51 -06:00
2ed1bdd243 Remove PropertyTemplate::call() and replace with code that uses ::set()
This makes undo/redo work correctly.
2021-09-25 16:49:51 -06:00
5287bbb31e
Fix horiz meter expose 2021-09-25 00:01:23 +02:00
1c34a3dcbb
Add missing includes 2021-09-25 00:01:23 +02:00
e165e92268
Remove annoying debug message 2021-09-25 00:01:23 +02:00
368e98336f gtkmm2ext: if a CairoWidget is used in the canvas, we do not need to realize the Gtk::EventBox
This may be a breaking change, but seems ok from superficial testing.
2021-09-23 11:48:29 -06:00
d07436b15d canvas: much more work on table layout 2021-09-23 11:48:29 -06:00
5a1201f05b
Fix duplicate libs 2021-09-19 23:39:51 +02:00
29f96ad13e
Fix cross-compile (undefined references for canvas-tests) 2021-09-19 23:38:44 +02:00
5fb54c008d
Fix shortcut display in editor tooltips #8798
After the editor is attached as tab to the main window,
looking up keyboard bindings using get_toplevel() no longer
works.

This uses the widget-hierarchy just like ARDOUR_UI does.
2021-09-19 18:46:06 +02:00
John Emmas
666e62076c Part 2: Complete the changes needed to make 'boost::intrusive::list' work with MSVC
It turned out that 'boost::intrusive::list_base_hook<>' won't compile if its parent class is declared using '__declspec(dllexport)' - so rather than exporting each entire class, let's use the alternative approach and export the various class members individually.
2021-09-18 13:40:22 +01:00
47f7958714 canvastable: remove unused vars; rename others 2021-09-17 14:36:09 -06:00
44b1cea54a canvastable: minor optimization 2021-09-17 12:53:16 -06:00
59c8b99fee canvastable: remove rows/cols members, reuse ::compute() for ::size_request() 2021-09-17 12:51:26 -06:00
98e0ad901a canvas: significant design changes and implementation fixes for Table 2021-09-17 12:34:13 -06:00
e5599d1c85
Fix div/zero, allow switching backends
This is another attempt replacing 1288262ca7,
which performs better.
2021-09-15 17:52:59 +02:00
cb81b06a5d
Revert "Fix div/zero, allow switching backends"
This reverts commit 1288262ca7.
2021-09-15 17:52:53 +02:00
John Emmas
840e63e6b2 Prefer tags for 'boost::intrusive::list' rather than list_member_hook<>
list_member_hook<> is very troublesome in MSVC and is known to cause problems in other compilers when used inside a class which has a virtual base class.
2021-09-15 09:28:54 +01:00
999fe54ab8 canvas: a few variable cleanups in Table and more use of for (auto ..) 2021-09-14 22:39:59 -06:00
6aaba192a0 canvas: improve computation of Table bounding box 2021-09-14 21:39:24 -06:00
b3854c2e92 canvas: just use stack and size counter instead of std::vector<> 2021-09-14 21:22:56 -06:00
1c42c733f7 canvas: remove use of Table::Index from API of Table::attach() 2021-09-14 21:18:44 -06:00
c952c57a99 canvas: actually follow CSS conventions for 1/2/3/4 arguments in padding 2021-09-14 21:18:44 -06:00
5eee8bf1a3
Allow to change process graph while auditioning
This fixes an issue with adding/removing tracks while auditioning.

Session::remove_routes() calls Graph::clear_other_chain(),
which will block until the graph chains have been swapped.
2021-09-15 04:03:18 +02:00
473ef54614 canvas: fix initialization of FourDirections object 2021-09-14 18:49:41 -06:00
d6208eabd8 canvas: fix handling of expanding items in table layout 2021-09-14 18:42:59 -06:00
5def36f780 canvas: somewhat functional homogenous table layout 2021-09-14 18:29:39 -06:00
d71fcf1955 canvas: add Table debug bit 2021-09-14 18:29:39 -06:00
f05bb4afab canvas: new type, to centralize CSS-style padding/spacing initialization (but only used by Table so far) 2021-09-14 18:29:39 -06:00
c5fcdc1119 canvas: more work on table layout, still incomplete 2021-09-14 18:29:39 -06:00
3195fb720a
Fix latency signal emission sequence when using JACK
Capture latency needs to be updated before playback latency,
various internal parts depend on this order (which is also
the default for libjack itself).
2021-09-14 22:03:51 +02:00
2c4a2fc6fa
Fix ambiguous latency detection (mostly revert eb0498bb2) 2021-09-14 21:39:53 +02:00
4998b2711b
Amend f301e692a: expose compensated port-latency
Retain min/max when copying inherited latency from
connected ports.

When there is a direct connection port A out -> port B in,
min/max latency range should be retained in direction
of signal flow.

Ardour can only adjust latency in reverse direction of signal flow
to match min = max with an internal delay-line. ie set playback
latency of an input port, or capture latency of an output port.
2021-09-14 21:39:53 +02:00
a84cb976a0
Add API to query I/O latency from port-engine
This allows to get public latency ranges for any port
including Ardour's latency-compensation as well as including
any latency induced by external JACK applications.

It is mainly useful to detect ambiguous latency and to
forward public port latency of connected ports.
2021-09-14 21:39:53 +02:00
f2ea9461f2
Fix API, Route::apply_latency_compensation() is not virtual 2021-09-14 21:39:53 +02:00
44b11802bf canvas: initial (probably incorrect) implementation of Canvas::Table 2021-09-13 22:00:33 -06:00
1288262ca7
Fix div/zero, allow switching backends
When switching backends, the effective sample-rate is zero.
This only affects the butler thread (the only active thread when
stopped). The actual issue here is the butler calling
"non-realtime-stop" without a backend. However fixing 0/0
generally seems appropriate.
```
#0 in int_div_round<long>(long, long) (x=0, y=0) at ../libs/pbd/pbd/integer_division.h:36
#1 in Temporal::samples_to_superclock(int64_t, int) (samples=0, sr=0) at ../libs/temporal/temporal/superclock.h:39
#2 in Temporal::timepos_t::timepos_t(long) (this=0x7f94bc0a5890, s=0) at ../libs/temporal/temporal/timeline.h:55
#3 in ARDOUR::Automatable::non_realtime_locate(long) (this=0x55a12a980cc8, now=0) at ../libs/ardour/automatable.cc:421
#4 in ARDOUR::Route::non_realtime_locate(long) (this=0x55a12a980ae0, pos=0) at ../libs/ardour/route.cc:5462
#5 in ARDOUR::Session::non_realtime_stop(bool, int, bool&) (this=0x55a12e0cd000, abort=false, on_entry=1, finished=@0x7f94bc0a5e0f: true) at ../libs/ardour/session_transport.cc:1487
#6 in ARDOUR::Session::butler_transport_work(bool) (this=0x55a12e0cd000, have_process_lock=false) at ../libs/ardour/session_transport.cc:1153
#7 in ARDOUR::Butler::thread_work() (this=0x55a12f3b7000) at ../libs/ardour/butler.cc:222
#8 in ARDOUR::Butler::_thread_work(void*) (arg=0x55a12f3b7000) at ../libs/ardour/butler.cc:16
```
2021-09-11 04:54:40 +02:00
df1780f09d triggerbox: use uint64_t instead of size_t
Somewhat unbelievably, macOS defines size_t as unsigned long, which the compiler there
believes is distinct from unsigned long long even then they have the same bitwidth
and signedness. We don't have any string converters for unsigned long, only uint64_t
(unsigned long long), so various things break.
2021-09-10 13:12:14 -06:00
e777acb7f9 triggerbox: add void* pointer to hold reference to anonymous UI object 2021-09-10 13:04:49 -06:00
00d4765b57 gtkmm2ext: move initialization of CairoWidget members into initializer context 2021-09-10 13:03:57 -06:00
9f0f1f1772 gtkmm2ext: when calling ::get_width()/get_height() on a cairowidget, if allocation is zero, use widget size 2021-09-10 13:03:32 -06:00
d50693b97d cnavas: add lots more debug traces to box, and an explanatory comment 2021-09-10 13:02:01 -06:00
107ff8466a canvas: box should not try to reposition children for a zero-sized allocation 2021-09-10 13:01:26 -06:00
63a74d0911 Canvas: improve behavior of Widget::compute_bounding_box()
Firstly, ::compute_bounding_box() cannot allocate space, so do not try to do that here.
Secondly, if there is no allocation yet, use the CairoWidget's own size_request()
2021-09-10 12:59:29 -06:00
be461e95e1 canvas: remove debug output 2021-09-10 12:57:43 -06:00
4806e10aa1 session: wrap undo history loading in catch/try to avoid throwing errors to glibmm 2021-09-10 12:15:24 -06:00
1904c4aa29 temporal: fix operator>> for Beats when handling pre-nutempo formats (double) 2021-09-10 12:15:24 -06:00
300ca3124b canvas; temporarily resurrect ConstraintPacker interactive tests 2021-09-10 12:15:24 -06:00
494bc8da14 canvas: add ::set_size_request_to_display_given_text() analogous to Gtkmm2ext utility 2021-09-10 12:15:24 -06:00
90322399fc canvas: use fwd decl instead of header inclusion for CairoWidget 2021-09-10 12:15:24 -06:00
4bbfc60126 add 2 new canvas debug bits 2021-09-10 12:15:24 -06:00
eb0498bb28
Overhaul ambiguous latency detection
Simply comparing connected latency min/max is insufficient
and allows for false positives.

get_connected_latency_range() reports private, uncompensated
latency for internal ports. In this case an additional test
is required to match it against the reported latency of
connected ports.

Since 13b8a9727bb05 remote connected ports now correctly
report latency for both internal as well as external ports.
2021-09-08 22:39:32 +02:00
6199d08f71
Add API to report I/O Latency 2021-09-08 22:39:32 +02:00
f301e692a7
Expose compensated port-latency, fix ambig. latency detection
Previously Ardour only announced processor latency.
Routes that had additional latency to compensate for those
have not published this delay.

This is of no concern with internal backends, however with JACK,
Ardour reported incorrect *individual* port-latencies of
routes that perform PDC.

Since public port latency now includes delay-compensation,
some extra work is required to unset it before recalculating
latency of paths that include external ports.
2021-09-08 22:39:32 +02:00
c342e4bfa9
Add API to announce managed MIDI port latency
Since Ardour implements jack latency callback, Arodur
is responsible to the set latency of those ports.
2021-09-08 22:39:32 +02:00
1978d3723e
Fix latency debug messages 2021-09-08 22:39:31 +02:00
Hector Martin
d4b0090850
Cache the absence of ffmpeg_harvid
Without this, absence of the transcode tool causes it to be searched for
for every entry in the file picker.
2021-09-07 04:33:07 +02:00
50b01732fd midi buffer handling: fix some logic errors in dealing with MidiRingBuffer reads 2021-09-06 13:55:26 -06:00
7932c9bde1 triggerbox: more behavioral improvements 2021-09-05 10:40:58 -06:00
c2abde9199 triggerbox: closing in on a one-at-a-time design 2021-09-04 23:20:08 -06:00
2cd88a67f1 triggerbox: start redesign based on only 1 trigger running at a time 2021-09-04 23:20:08 -06:00
e057088195 remove unused, empty glib event source/callback code (was from an experiment during nutempo2 development) 2021-09-04 07:39:27 -06:00
John Emmas
dda7612479 A few visibility changes needed for linking to libpbd (when building with MSVC) 2021-09-04 12:35:44 +01:00
John Emmas
f6ed73986b A few visibility changes needed for linking to libtemporal (when building with MSVC) 2021-09-04 12:28:15 +01:00
John Emmas
d7d966e02b Adapt 'Temporal::TempoMap::tempo_map_p' to be buildable with MSVC
Whenever a variable gets declared using 'thread_local' MSVC requires that it should not be compiled with DLL linkage (i.e. it mustn't be exportable). So for Temporal::TempoMap we'll need to export the required members individually, rather than exporting the entire class.
2021-09-03 10:02:41 +01:00
c74f80caa4
NO-OP: clean up maths, remove extra brackets
This may also help due to huge xdelta numbers.
2021-09-02 20:45:30 +02:00
8087bad9a0 triggerbox: create regions and sources using factories, and restore region in set_state() 2021-08-31 22:35:14 -06:00
7dba843cb4 temporal: fix error in operator>> for BBT_offset 2021-08-31 22:33:33 -06:00
dcfbdb482d triggerbox: reload sessions containing triggerboxen 2021-08-31 19:03:32 -06:00
af8be5e71d triggerbox: restore state initial implementation (incomplete) 2021-08-31 18:36:16 -06:00
a9d4668dee triggerbox: state saving 2021-08-31 16:46:19 -06:00
b46eaebb76 triggerbox: add enums to libardour enum decls 2021-08-31 16:46:14 -06:00
4eda53c8c9 temporal: add to_string() converters for BBT_Offset 2021-08-31 16:45:44 -06:00
51110a92d9 canvas: fix computation of Box bounding box 2021-08-31 13:21:12 -06:00
584e5c5b45 triggerbox: various improvements, including legato support, state tracking 2021-08-31 11:53:24 -06:00
3734277263 canvas: improve box packing - compute child dimensions more correctly 2021-08-30 17:40:06 -06:00
b47fbc91e0 canvas: provide Rect::shrink () with four arguments 2021-08-30 17:39:39 -06:00
2aa313eb4e triggerbox: actually fully stop trigger when explicitly requested, rather than use follow action 2021-08-30 16:32:02 -06:00
13a0f74ce4 triggerbox: add more debugging 2021-08-30 16:31:35 -06:00
940f3022c1 prevent addition of events to a ControlList whose time-domain does not match the ControlList's own time-domain 2021-08-30 15:15:14 -06:00
4fb3e24bd6 evoral: tentative fix for problems with Curve::multipoint_eval()
Now that we use superclock_t for audio time, it is possible for the square of an audio time value to overflow int64_t quite easily.
This change fixes that (and cleans up other code a little), but probably a different solution would be a good idea
2021-08-30 14:29:11 -06:00
25093af986 triggerbox: fix uninitialized variable 2021-08-30 09:13:48 -06:00
0699449f29 evoral: debugging curve errors 2021-08-30 09:04:27 -06:00
4cef8c681c evoral: fix for Curve coefficient computation 2021-08-30 09:04:27 -06:00
Nil Geisweiller
21c94b23f3 Make BBT_Time::print_padded const
As this method does not modify BBT_Time it can be const.  This allows such
method to be called over a const BBT_Time instance.
2021-08-30 02:24:38 +03:00
John Emmas
2de2ab8f91 Use std::vector<Sample*> rather than a simple array
(for a simple stack-based array, MSVC requires that the size should be known at compile time)
2021-08-29 15:40:59 +01:00
John Emmas
d3cd621f7a Initial changes needed for building libtemporal with MSVC
Later I'll need to push some extra changes (to support 'tempo_map_p' and 'boost::intrusive::list' etc) but these initial ones (hopefully!) won't cause any issues for the other builds.
2021-08-29 11:03:58 +01:00
cd792f3713 avoid intermediate unnecessary shared_ptr 2021-08-27 17:25:51 -06:00
fad71ce748 when creating new MIDI sources, be sure that we create a stub file on disk
These files will be removed at session close if they are still empty. Their existence prevents
collisions across snapshots and likely some other wierdness that relied on file existence for
various tests and conditions
2021-08-27 16:52:53 -06:00
eb0f353716
Session-cleanup: clear route references from graph
resort_routes() is a no-op during session destruction,
however _current_route_graph can still hold references
to routes. A GraphVertex is-a boost::shared_ptr<Route>.
2021-08-27 06:42:56 +02:00
8c7f2c93f0
VST3: Ignore .vst3 dll in bundle of wrong architecture 2021-08-24 21:58:02 +02:00
fee4292bde allow negative superclock -> negative beats computation 2021-08-23 11:36:54 -06:00
1e84f217ac
VST3: clear in-place MIDI buffers #8789 2021-08-23 07:09:16 +02:00
73326ade90
Don't include i18n in headers
The i18n header needs to be included last, since it defines
`_` which results in conflicts with other headers.

see #8361 and e.g.
boost/function_types/detail/class_transform.hpp:23:26:
error: ‘boost::mpl::placeholders::_’ has not been declared
using mpl::placeholders::_;
2021-08-23 06:43:16 +02:00
Hector Martin
9b99633abe
Fix MIDI send latency compensation 2021-08-20 17:37:09 +02:00
a556e96ed0
Fix latency report for unconnected tracks
When a track's output is not connected, its alignment
can /float/. Previously it assumed the worst (compensate
for worst-case latency).

The track itself has no playback latency, so any send would
delay the 'thru' path to match the send's playback latency.
This resulted in the track reporting a non-zero latency which
is not really present, nor relevant.
2021-08-16 22:33:15 +02:00
b4b4745bd4
Amend 55211b8d (PRNG seed, use local address) 2021-08-16 04:59:10 +02:00
baf5a13f17
Update atomic/volatile compat
With glib 2.64, volatile gint produce annoying Wcast-qual
compiler warnings with mingw/gcc-8.

Even though the the build succeeds, and only glib 2.68+
requires non-volatile atomics this results in a much
cleaner build-log.
2021-08-16 04:26:55 +02:00
55211b8dd6
Update triggerbox RNG API calls 2021-08-15 16:04:08 +02:00
a3b28b4114
Move PCG RNG implementation out of header, update API 2021-08-15 16:03:01 +02:00
e4d1d82ea7
Fix rt-safe PRNG (seed once, not every call) 2021-08-15 15:24:23 +02:00
63fbc87177 triggerbox: use new rt-safe RNG 2021-08-13 17:34:07 -06:00
10253a6ae4
Fix Windows builds, remove unnecessary srandom() calls
Since fc90c92a49 Gtkmm2ext::random_color () uses g_random_int()
which is implicitly seeded when first used.
2021-08-14 01:29:49 +02:00
bf26be71aa move constraint packing tests out of the way 2021-08-13 17:27:20 -06:00
bbe1dbc3a0
Amend previous commit (missing brace) 2021-08-14 01:16:49 +02:00
c3de8c0b16
Fix Windows builds (missing Temporal Lua declarations) 2021-08-14 01:13:36 +02:00
fc90c92a49
Fix Windows builds (rand/random API) 2021-08-14 01:07:13 +02:00
79baf356b9
Add realtime safe random number generator 2021-08-14 01:03:37 +02:00
41796ecc14 soundtouch support is not enabled by default and currently will not compile 2021-08-13 16:19:47 -06:00
2f90425173 amend 506d0efc32 and improve; use g_random_int() instead of random() 2021-08-13 16:09:59 -06:00
506d0efc32 compilation fix for windows (random() <=> rand() 2021-08-13 16:08:17 -06:00
fe271f04c7 maybe fix a gcc error/warning 2021-08-13 16:03:36 -06:00
55025cc82a remove some more unnecessary headers 2021-08-13 15:34:39 -06:00
2f4a623c56 remove unnecessary headers 2021-08-13 15:31:43 -06:00
0095681493 fix cast in call to time(2) 2021-08-13 14:11:41 -06:00
b3fff25d5c
Fix --maschine builds (pure virtual) 2021-08-13 21:53:18 +02:00
a563d5f0d7 triggerbox: add more framwork to looping sections and fixup issue with uninitialized variable 2021-08-13 12:51:37 -06:00
75f8b9a083 triggerbox: fix repeat launch style 2021-08-13 12:51:37 -06:00
b6de89d35c post-rebase manual fixups (libs) 2021-08-13 12:51:37 -06:00
ec4e09c12a triggerbox: missing setter 2021-08-13 12:51:37 -06:00
c620d3d411 triggerbox: follow action "probability" 2021-08-13 12:51:37 -06:00
4ee02182fe triggerbox: 2 possible follow actions 2021-08-13 12:51:37 -06:00
0d104e85c1 triggerbox: get closer to Live semantics and descriptions for follow action/launch style 2021-08-13 12:51:37 -06:00
17b7e0648f triggerbox: initial support for "reapeat" launch style.
Don't change it while the trigger is running!
2021-08-13 12:51:37 -06:00
bab6c5cbdd triggbox: clean up compiler warnings 2021-08-13 12:51:37 -06:00
e9f0aeae3a triggerbox: add start + usable length fields to address (a) repeat launch style (b) clip "editing" 2021-08-13 12:51:37 -06:00
7be493bc46 triggerbox: fixed gated trigger behavior 2021-08-13 12:51:37 -06:00
edbafd9f5b triggerbox: more significant design clean-ups, and follow actions now work (basically) 2021-08-13 12:51:37 -06:00
147ca2108f triggerbox: redesign around a state machine concept, and just iterating over current triggers, no queues 2021-08-13 12:51:37 -06:00
e1652811f5 triggerbox: when a trigger is done, remove it as well as change 2021-08-13 12:51:37 -06:00
1a29a58a05 NOOP: comment whitespace fix 2021-08-13 12:51:37 -06:00
58aa2026dc fix incorrect assert 2021-08-13 12:51:37 -06:00
b98c22dbba triggerbox: emit prop change for running 2021-08-13 12:51:37 -06:00
7ac80607ea triggerbox: add a useful property 2021-08-13 12:51:37 -06:00
b76744d28d triggerbox: better handling of clip end, and some code cleanup 2021-08-13 12:51:37 -06:00
029231b8ef triggerbox: further steps to seamless looped clips, and tiny beginnings for follow actions 2021-08-13 12:51:37 -06:00
7458f47bb7 triggerbox: fix stretching and redesign to try to prevent clicks when looping clips set to launch in "Loop" mode 2021-08-13 12:51:37 -06:00
d2b2b73c82 canvas; provide Rectangle::{height,width}() 2021-08-13 12:51:37 -06:00
5ac3d2c581 triggerbox: we're doing offline RB processing, not realtime 2021-08-13 12:51:37 -06:00
44176aa2e4 triggerbox: add RubberBandStretcher for static stretch of regions in slots 2021-08-13 12:51:37 -06:00
a8f32b28e1 triggerbox: start using PBD::Property stuff to be able to signal property changes 2021-08-13 12:51:37 -06:00
28e4e36b00 triggerbox: somewhat more sane behavior at sample end 2021-08-13 12:51:37 -06:00
724087f3fd triggerbox: drop autoamtic sample load for testing, allowing others to start trying it 2021-08-13 12:51:37 -06:00
d0e9b5d66d triggerbox: tweaks, redesigns etc. to get more functionality 2021-08-13 12:51:37 -06:00
a5ffed49cc triggerbox: regions get set after construction; provide ::set_from_path() 2021-08-13 12:51:37 -06:00
0296b0b0cb canvas: don't call ::size_allocate() for children unless there is just one child and it is "layout sensitive
the dumb/Item version of ::size_allocate_children() doesn't do anything but give its full allocation to children, and if there
was more than one child, this could not be done in a "dumb" way. Likewise, if the sole child is not layout sensitive, it
doesn't care about size allocation
2021-08-13 12:51:37 -06:00
b416caf1bb canvas: several steps further with box packing and size allocation 2021-08-13 12:51:37 -06:00
88b95bc8f8 canvas: size_allocate() as a way to set position is only for layout-sensitive item trees 2021-08-13 12:51:37 -06:00
a1c67b4ad7 canvas: remove intrinsic size concept, fall back to requested size; converge on gtk style size_request 2021-08-13 12:51:37 -06:00
9698de0212 canvas: missing method 2021-08-13 12:51:37 -06:00
1a70cf5b8e canvasL Item gets packing options similar to GTK 2021-08-13 12:51:37 -06:00
5e3460aaae canvas: start to extend size allocation process for box packing 2021-08-13 12:51:37 -06:00
b0e9ad07ca use region name for trigger name 2021-08-13 12:51:37 -06:00
33fed0f689 libardour: start transport when handling UI trigger requests 2021-08-13 12:51:37 -06:00
4a700f270d canvas: remove debug output 2021-08-13 12:51:37 -06:00
dc6a162ca1 canvas: remove Box::render() (it should just use Rectangle::render()) 2021-08-13 12:51:37 -06:00
85edd83338 canvas: correctly set Box _rect after repositioning children 2021-08-13 12:51:37 -06:00
da3ea7e236 canvas: rename variable for clarity 2021-08-13 12:51:37 -06:00
6f883650d8 canvas: use combined outline enum value for clarity 2021-08-13 12:51:37 -06:00
71fe17a241 canvas: impl of Rectangle::dump() 2021-08-13 12:51:37 -06:00
b2aa14a90b canvas; remove already-commented debug output 2021-08-13 12:51:37 -06:00
341a355de4 canvas: remove debug output 2021-08-13 12:51:37 -06:00
a55a004142 canvas: another fix to bounding box computation, this time for Item itself 2021-08-13 12:51:37 -06:00
b8b392f729 canvas: use whoami() instead of whatami() in some debugging output 2021-08-13 12:51:37 -06:00
a36d43c845 canvas: NOOP whitespace/indent a line 2021-08-13 12:51:37 -06:00
16bbf79cae canvas: decl for Rectangle::dump() 2021-08-13 12:51:37 -06:00
dc48f55285 canvas: bounding box changes for Container 2021-08-13 12:51:37 -06:00
9095057675 canvas: call Item::bounding_box() to recompute bounding box when needed
Since 74fe396cc5 compute_bounding_box() by itself does not do the entire computation, so we
must call into Item::bounding_box() to get the result with children added also
2021-08-13 12:51:37 -06:00
c0425ba70f canvas: items should not add child bboxes in their ::compute_bounding_box() method, Item::bounding_box() does that 2021-08-13 12:51:37 -06:00
ad6afbe68a canvas: use Item::bb_clean() to mark _bounding_box_dirty false 2021-08-13 12:51:36 -06:00
5b123441f4 canvas; change operator<<() for Rect to show BIG instead of gigantic 64 bit numbers 2021-08-13 12:51:36 -06:00
ddcd004350 canvas: only reset _bounding_box_dirty in the parent if the child's bbox did change 2021-08-13 12:51:36 -06:00
c1fa1e1a29 canvas: when an item's position is set, its bounding box has changed 2021-08-13 12:51:36 -06:00
f5753dcd07 missing member initialization 2021-08-13 12:51:36 -06:00
9c2e4ec6d2 libtemporal: fix timepos_t::set_time_domain()
For legacy reasons, this was going via a sample intermediate representation
2021-08-13 12:51:36 -06:00
1927e4673b remove StepSequencer, BeatBox and BeatBoxGUI from wscripts and #ifdef code occurences. Files remain 2021-08-13 12:51:36 -06:00
7066db16bd remove dangling method from rebase issues 2021-08-13 12:51:36 -06:00
e7cdca1ea2 remove some debug output 2021-08-13 12:51:36 -06:00
c452dcda53 add access for triggerbox as a well-known (possibly null) processor in a route 2021-08-13 12:51:36 -06:00
a82b05b49c fix paths for testing samples 2021-08-13 12:51:36 -06:00
14621f3634 add missing Box::set_homogenous() method 2021-08-13 12:51:36 -06:00
043544c059 triggerbox: continued evolution, and new test sample paths 2021-08-13 12:51:36 -06:00
f7c6d17ee3 Lots more changes to triggerbox implementation
Multichannel regions, on/off all quantized.
2021-08-13 12:51:36 -06:00
e52eead1b6 Add Session::start_transport_from_processor() (for process() context use only) 2021-08-13 12:51:36 -06:00
8eed420ad4 triggerbox: lots of design changes and implementation tweaks. Gate launch style now works 2021-08-13 12:51:36 -06:00
50d68a6a34 start to accumulate trigger properties
They will need to become properties eventually, I think
2021-08-13 12:51:36 -06:00
2995b2a0bb super-basic working MIDI triggering for TriggerBox 2021-08-13 12:51:36 -06:00
84790dff1d add state methods to TriggerBox (stubs for now) 2021-08-13 12:51:36 -06:00
b41e240f10 potentially add a TriggerBox if with_triggers is true 2021-08-13 12:51:36 -06:00
b8e38ed777 tweak TriggerBox API 2021-08-13 12:51:36 -06:00
e9401a945f add new argument @param with_triggers to Session::new_midi_track()
Lua binding for Session::new_midi_track() temporarily commented out due to some templating/types issue
2021-08-13 12:51:36 -06:00
04b4fc531d remove default args to Session::new_midi_track() (libs edition) 2021-08-13 12:51:36 -06:00
b0d422e345 fix timeline types for Triggerbox 2021-08-13 12:51:36 -06:00
b8a3b25dee add TriggerBox processor (extremely prototypical)
This takes some barely working ideas from the old ableton branch and turns it into a processor instead of a separate track object
2021-08-13 12:51:36 -06:00
d772ea3fdf manual post-conflict-resolution cleanups (library edition) 2021-08-13 12:51:36 -06:00
b55bb41832 fix timeline type -> sample in ::write_one_track()
This needs to be modified to use Beats not samples.
2021-08-13 12:51:36 -06:00
e519dfc0aa fix timeline types in Region::move_cue_markers() decl 2021-08-13 12:51:36 -06:00
6895e6840d remove mistakenly remaining code (post rebase conflict resolution) 2021-08-13 12:51:36 -06:00
411a6f2385 fix timeline arithmetic in cue marker motion 2021-08-13 12:51:36 -06:00
3def228560 fix timeline types for ffmpegsource 2021-08-13 12:51:36 -06:00
4f18d7f220 fix timeline types for Location::ripple() method 2021-08-13 12:51:36 -06:00
c8dc300fe7 fix missing method return type (post rebase conflict resolution) 2021-08-13 12:51:36 -06:00
5bb1c01482 fix timeline types (post-rebase conflict resolution) 2021-08-13 12:51:36 -06:00
318ab0c338 add cue markers member to Source (post-rebase conflict resolution) 2021-08-13 12:51:36 -06:00
2330e867b9 remove code no longer required (post-rebase conflict resolution) 2021-08-13 12:51:36 -06:00
d4cfedf6d4 fix duplication of method-scope variable decl 2021-08-13 12:51:36 -06:00
cd1f6269a9 not entirely what this fix is, but i think it is just whitespace (post-rebase conflict resolution) 2021-08-13 12:51:36 -06:00
5498c433ad fix incorrect lexical scope introduced during rebase conflict resolution 2021-08-13 12:51:36 -06:00
029fb065b7 fix timeline type issues 2021-08-13 12:51:35 -06:00
0e264ad2db fix timeline arithmetic operations 2021-08-13 12:51:35 -06:00
12fb9608d9 fix some timeline type issues 2021-08-13 12:51:35 -06:00
5f4fa2d9ea fix gap callback argument types at point of use 2021-08-13 12:51:35 -06:00
0114516c82 add Playlist::remove_gaps() with nutempo timeline types 2021-08-13 12:51:35 -06:00
8fca5796d6 fix declaration of Playlist::ripple_unlocked() (lost in rebase conflict resolution) 2021-08-13 12:51:35 -06:00
6e7f9029ec fix types of Playlist member objects (lost in rebase conflict resolution) 2021-08-13 12:51:35 -06:00
caba355012 Add required copy constructor for Temporal::Meter 2021-08-13 12:51:35 -06:00
ba3fc66aa5 cleanup mess from manual rebase against master 2021-08-13 12:51:35 -06:00
8cc54e5c7e fix use of timepos_t for locates after rebase with new transport API changes 2021-08-13 12:51:35 -06:00
f749d4f03e fix rebase issue with positional math (we don't allow " - 1") 2021-08-13 12:51:35 -06:00
38aa2560f3 libtemporal: remove unnecessary initialization 2021-08-13 12:51:35 -06:00
f61adcd738 temporal: knarly template code to consolidate and rationalize duplicated methods 2021-08-13 12:51:35 -06:00
5838bcbe7c clean up unsafe use of printf() by commenting it out 2021-08-13 12:51:35 -06:00
5327cf7be7 allow the click points for the click to contain points before the start (gracefully) 2021-08-13 12:51:35 -06:00
73ad70648d bump session file version 2021-08-13 12:51:35 -06:00
585346ce56 libtemporal: fix many different issues with tempo ramps
API changes, ensuring omega is computed, saved, and restored, generic methods to get tempo/meter at a position, and lots more
2021-08-13 12:51:35 -06:00
18e2c36648 libevoral: fix arguments to Sequencer::iterator::invalidate()
clang picked up the mismatch (gcc did not), which reflects a realization while working
on the nutempo2 branch that nothing ever used the old set<Notes> that was being passed
as an argument
2021-08-13 12:51:35 -06:00
3076d22987 macOS 10.12 finally started defining CLOCK_{REALTIME,MONOTONIC} and I think this is the correct way to test for that 2021-08-13 12:51:35 -06:00
3256350ef8 libtemporal: needs "OSX" pseudo-lib to pick up required macOS flags 2021-08-13 12:51:35 -06:00
5895909188 libtemporal: remove unnecessary inclusion of pbd/compose.h from beats.h
this causes breakage in clangs ADL lookup of various operator<<() overloads
2021-08-13 12:51:35 -06:00
a7535ae8aa clang knows that we cannot use printf() to print Evoral::Event::time() ...
(why doesn't gcc?)
2021-08-13 12:51:35 -06:00