Paul Davis
483bdd99cc
libardour: new SegmentDescriptor type added (but not used)
2021-12-12 10:55:05 -07:00
Paul Davis
96e1735646
triggerbox: add heuristic to extract bpm from filename
...
If found, we do not do analysis of the audio data
2021-12-11 21:05:32 -07:00
Robin Gareus
3753d97599
Add Lua binding for Temporal::TempoMap::write_copy
2021-12-11 18:30:29 +01:00
Robin Gareus
ce15b6ed66
Cont'd work on TempoMap Lua bindings
2021-12-11 17:43:12 +01:00
Robin Gareus
3b18b025e3
Fix Lua TempoMap bindings
...
* Resolve ambiguity between typef'ed ARDOUR::timepos_t and
Temporal::timepos_t (and timecnt_t, superclock_t)
* Add missing classes TempoPoint, MeterPoint, which are
return value for various TempoMap methods.
* Change TempoMap into a shared_ptr<> class.
* Move Tempo and Meter out of ARDOUR into Temporal namespace.
* add various bindings to access the TempoMap
* move Temporal enums out of ARDOUR::Temporal namespace
2021-12-11 16:49:28 +01:00
Robin Gareus
60be0c27a1
Use updated temporal API 1/2
2021-12-11 14:42:36 +01:00
Robin Gareus
506bc3a6f6
Disambiguate zero(bool) constructor and is_zero() comparison
...
This is mainly for the benefit of Lua bindings, but also increases
overall API naming consistency with functions and methods
`is_XYZ()` being used elsewhere.
This API change breaks builds!
2021-12-11 14:33:45 +01:00
Paul Davis
6f91dc0799
canvas: fix an issue with event coordinate translation by ScrollGroup
...
If there's a grabbed item (GtkCanvas only at present) then unless it belongs to the scroll
group used for scroll offset translation, the event coordinates should not be translated,
even if the mouse pointer moves into the scroll group.
2021-12-10 18:17:58 -07:00
Paul Davis
08e50934c9
canvas: add scroll offset info to Item::dump()
2021-12-10 17:16:10 -07:00
Ben Loftis
972229a02f
Remove some spurious printouts
2021-12-08 13:39:38 -06:00
Ben Loftis
3918ee2ed6
Add New Region variables for Clips
...
Properties are created for announcing changes, but values are not actually stored as undo-able properties.
2021-12-08 12:57:48 -06:00
Ben Loftis
dc826c6521
ArdourCanvas Rectangle: allow subclasses access to _rect
2021-12-07 16:32:49 -06:00
Robin Gareus
0ee628d170
Add preference to show fader on meter-bridge
2021-12-07 17:56:35 +01:00
Paul Davis
7b8be04623
triggerbox: fix mis-designed handling of dest_offset when a trigger starts within the same run() call as another
2021-12-06 14:06:48 -07:00
Paul Davis
bc7e14c8ac
remove misleading content from a comment
2021-12-06 14:05:59 -07:00
Paul Davis
0a0ca81e11
triggerbox: add missing property defn
2021-12-06 10:36:57 -07:00
Paul Davis
ef9cca2c07
triggerbox: add missing property defn
2021-12-06 10:27:59 -07:00
Paul Davis
a14bcc455b
triggerbox: more properties for Triggers
2021-12-06 09:26:18 -07:00
Paul Davis
4918e4bcb9
triggerbox: change return type for Triggerbox::currently_playing(); add position-as-fraction to Triggerbox
2021-12-06 09:06:46 -07:00
Paul Davis
9a89dd8981
triggerbox: add TriggerBox currently_playing property, and rename ::currently_running() to ::currently_playing
2021-12-06 08:57:06 -07:00
Paul Davis
86f239f185
triggerbox: add 3 additional property descriptors for Triggers
2021-12-06 08:47:29 -07:00
Paul Davis
96b21c4824
fix crash in Playlist::relayer() when there are no regions
2021-12-05 10:36:26 -07:00
Paul Davis
17832e9f86
remove another instance of std::numeric_limits<timecnt_t>::max()
2021-12-05 09:24:13 -07:00
Paul Davis
887cd070b0
remove another instance of std::numeric_limits<timepos_t>::max()
2021-12-05 09:23:33 -07:00
Paul Davis
a72108636b
remove another instance of std::numeric_limits<timecnt_t>::max()
2021-12-05 09:23:05 -07:00
Paul Davis
646d1e9a22
remove use of std::numeric_limits<time{pos,cnt}_t> from Playlist
...
::max() is time-domain dependent, and cannot be encapsulated via a single value.
2021-12-05 09:01:49 -07:00
Robin Gareus
d29d40c1ec
Fix stacked region view
...
Previously this looped endlessly in RegionView::update_coverage_frame()
if the return value was undefined (or wrong time-domain) and smaller
than pos.
2021-12-05 15:05:12 +01:00
Paul Davis
af0e6872b4
triggerbox: handle None trigger follow action
2021-12-04 13:33:32 -07:00
Paul Davis
c1de82f833
triggerbox: fix return value from MidiTrigger::run() when there was an event
...
last_event_samples was being set to buffer/process()-relative samples, but
needed to be timeline-relative samples.
2021-12-04 13:25:33 -07:00
Paul Davis
65c69b6818
triggerbox: resolve MIDI notes at end of buffer, not one beyond the end
2021-12-04 11:50:31 -07:00
Paul Davis
b3f866b86e
triggerbox: more debug trace statements
2021-12-04 11:50:31 -07:00
Paul Davis
4a13a1fa62
triggerbox: fix up what happens at the end of a MIDI trigger
2021-12-04 11:50:31 -07:00
Paul Davis
050b046e4d
triggerbox: stop immediately when stop_all() is used
2021-12-04 11:50:31 -07:00
Paul Davis
0c7d578199
NOOP: comments to document Trigger state enum and some methods
2021-12-04 11:50:31 -07:00
Houston4444
36a2fb1ba8
JACK: re-create backend when re-connecting to the server
...
This updates the client-name when re-connecting to the
server, which is apparently useful with NSM.
2021-12-04 14:39:22 +01:00
John Emmas
6eb1559f79
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-12-03 14:31:45 +00:00
Robin Gareus
948fc37b47
Remove '\0' from source file
2021-12-03 13:53:08 +01:00
Robin Gareus
cc34eac4a5
Fix new_midi_track Lua binding
...
see also e9401a945f
and 1c0593201c
2021-12-03 13:34:42 +01:00
Robin Gareus
1c0593201c
Allow Lua bindings up to 12 method arguments
2021-12-03 13:32:49 +01:00
Paul Davis
2b6b7226b0
triggerbox: more substantial changes to the new (justifiable) design; audio triggers seem ok, MIDI triggers untested
2021-12-02 11:27:35 -07:00
Robin Gareus
3b5dbf2252
Mark new Tracks with TB to present them
2021-12-01 23:10:07 +01:00
Robin Gareus
3a2566b4af
Add API to set TriggerTrack flag
...
This is intended to decide if a track will be visible on the
Trigger-Tab/Page. It should be kept in sync with trigger-processor
enable.
2021-12-01 23:10:04 +01:00
Paul Davis
7edbf06420
PluginInsert::silence() should never change the status of _active
2021-12-01 13:26:27 -07:00
Paul Davis
ebc5195490
switch to a more efficient implementation of Processor::check_active()
2021-12-01 13:26:27 -07:00
Robin Gareus
786388b5b6
Fix connections when re-starting engine
...
The connection was stored by the Port where it was initiated from:
1. Connect A to B
2. Disconnect B from A
(1) Port A remembers the connection to B
(2) Port B does not know about the connection from A
Since disconnect is initiated on port B, port A still retained
the connection information.
When restarting the engine, Port::reconnect() reestablished the
connection.
This is only relevant when libardour's own connection information is
used. e.g. the session is closed without engine, or when re-starting
the engine while the session is open.
2021-11-30 19:41:39 +01:00
Robin Gareus
a393f75694
Use shared port engine MIDI event compare operator
2021-11-30 19:41:39 +01:00
Robin Gareus
dbd8089fb8
Sort concurrent MIDI events on port-level #8828
...
See also 8dbbc19567 as well as
Evoral::Sequence<Time>::const_iterator::choose_next
ARDOUR::MidiBuffer::second_simultaneous_midi_byte_is_first
2021-11-30 19:41:39 +01:00
Paul Davis
e56085b581
triggerbox; quick pass at fixing up MIDI triggers to work with the new scheme (untested)
...
This also removes the call to the now-removed ::peek_next_trigger()
2021-11-30 07:57:34 -07:00
Paul Davis
8fa62eac7a
triggerbox: significant redesign of trigger mechanisms
...
Changes include workarounds for weird Rubberband API (pad, drop, truncate requirements),
and a shift to push logic after a slot is finished back up into the TriggerBox.
Not finished yet, some easily encountered bugs remain
2021-11-29 21:50:29 -07:00
Paul Davis
940d8844e3
temporal: fix implementation of Beats::snap_to(), and add variants
...
::snap_to() was intended to round a Beats value to the nearest multiple
of another Beats value. It did not do that, but instead rounded down.
Worse, it used Beats::operator/ which in turn uses int_div_round(),
which is incorrect for a situation where we need integer truncation.
The changes fix the actual arithmetic and add 2 variant functions so that the
API includes round down, round up and round to nearest.
2021-11-29 21:50:29 -07:00