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