13
0
Commit Graph

21599 Commits

Author SHA1 Message Date
f295b59439 add useful comment 2024-10-31 12:22:35 -06:00
a9e1a591aa remove debug output 2024-10-31 12:22:35 -06:00
d7a390f5ed NO-OP: whitespace adjustment 2024-10-31 12:22:35 -06:00
883ec6aa68 NO-OP: misc whitespace adjustments 2024-10-31 12:22:35 -06:00
eebdb63014 propagate SMFSource length into MidiModel
When we "sync-to-source" from a MidiModel (IS-A Evoral::Sequence),
we will mark the end (length) just like when capturing MIDI. So
the MidiModel/Sequence needs to know the actual length, not just
the time of the last event.
2024-10-31 12:22:35 -06:00
39661732c3 modify how Evoral::SMF (maybe) writes an EOT event into an SMF
every write pass deletes existing tracks, which means it also deletes any existing
EOT event. Rather than try to replicate the _length value() that is kept in a
Source object in the SMF object, add a virtual method to SMF that returns
the _length value (or std::numeric_limits<Beats>::max() if not set).

If the _length value is not the max, we will add EOT events to each track
(usually just one) right before writing to disk.
2024-10-31 12:22:35 -06:00
a5dac1578e implement stop-on-grid 2024-10-31 12:22:35 -06:00
c8313cd749 add a new global quantization value for a Session
The initial value is taken from the Config object. Currently this
is only used for stop-on-grid, and only BBT(_Offset) is observed, and
implicitly means "1 bar" for now.
2024-10-31 12:22:35 -06:00
364598e94f temporal: add round_up_to_bar() methods to Meter, Metric and TempoMap 2024-10-31 12:22:35 -06:00
428437ed72 add a new rc-variable, default-quantization 2024-10-31 12:22:35 -06:00
5204a24291 add a new type for AnytTime (BBT_Offset) and make it serializable 2024-10-31 12:22:35 -06:00
f59e0cb289 add a new RC variable, stop-on-grid 2024-10-31 12:22:35 -06:00
34731250f4 braces, please 2024-10-31 12:22:35 -06:00
3acde0965a don't cast to the same type 2024-10-31 12:22:35 -06:00
3be642ec17 fixups after a rebase 2024-10-31 12:22:35 -06:00
ebcc6b8250 add the concept of a length that is data-independent to MIDI files (libs) 2024-10-31 12:22:35 -06:00
f8ddc827c7 NO-OP: tweak comemnt that still referenced frames instead of samples 2024-10-31 12:22:35 -06:00
9ed9567b43 Evoral: add new is_xxxx() methods for various MIDI events, including is_realtime() 2024-10-31 12:22:35 -06:00
c88d370136
Implement Windows multitouch support 2024-10-31 02:02:20 +01:00
952ec57a26 Special case first touch-event: grab and emulate mouse button 2024-10-30 19:19:30 +01:00
23d5dcd080 Fix touch event propagation (custom grab)
See also 79dae5f2b4
2024-10-30 19:13:24 +01:00
b45e3ecc0c
Allow Lua Processors to declare parameter inline visibility 2024-10-27 17:15:54 +01:00
8f32862e58
Humble beginnings of implementing Touch API for YDK/Windows 2024-10-26 14:55:35 +02:00
000a1aaa46
Touch Support for Ardour Fader 2024-10-24 23:33:31 +02:00
24b916d125
Touch Support for Ardour Button 2024-10-24 23:33:31 +02:00
79dae5f2b4
Implement multitouch grab 2024-10-24 23:33:31 +02:00
5cf392b17a
Implement YDK Touch API for Linux/X11 2024-10-24 23:33:31 +02:00
89da2f2c87
Define YDK/YTKMM Touch Event API 2024-10-24 23:33:28 +02:00
Matthew Smith
84027120cc
Fix OSC observer heap buffer-overflow 2024-10-23 14:54:00 +02:00
86a4447805
OSC: Never, ever bind a shared_ptr<T> to a signal
This fixes crashes when controllable are destroyed, or
OSC surface is disabled (signals retain a reference).
2024-10-23 01:39:05 +02:00
2816c85324
Fix OSC observer heap buffer-overflow
OSCCueObserver::send_init may populate a sparse map, rather
than a contiguously indexed vector
2024-10-23 01:39:05 +02:00
43961e2d86 remove debug output (and an inaccurate comment) 2024-10-22 14:49:50 -06:00
c986405fe0 fix two unintentionally committed API changes 2024-10-22 14:49:50 -06:00
e11caf2dea various changes to get MIDI clip recording to display the post-capture region 2024-10-22 14:49:50 -06:00
aa2fb8c1d4 SMF: add a set_length() method which will place TrkEnd meta-events 2024-10-22 14:49:50 -06:00
769920d337 add a "region" property so that we can properly signal when it has changed inside a Trigger 2024-10-22 14:49:50 -06:00
Mads Kiilerich
e520cf6bac
wscript: Actually invoke autowaf.build_i18n_pot in i18n_pot_func 2024-10-22 00:37:39 +02:00
Mads Kiilerich
8e2a9dfd91
wscript: Fix i18n names for tk 2024-10-22 00:37:39 +02:00
590400a95f trigger arming must be mutually exclusive within a triggerbox 2024-10-21 10:45:47 -06:00
Mads Kiilerich
3228a61e62 wscript: the i18n worker functions do not define the i18n waf commands
Rename the worker functions to make it clear that their name in this
case isn't magic. These functions "are not" the waf commands. It is the
custom build context class definitions that define the i18n commands ...
which will invoke these top level worker functions which in turn invoke
the others recursively.

The bare printing of the build environment in the top level i18n command
seems to be old debug code that safely can be removed.
2024-10-20 19:52:14 -06:00
Mads Kiilerich
48fcb30608 wscript: fix whitespace formatting
No tabs and no trailing spaces.
2024-10-20 19:52:14 -06:00
dab3cc3501
Disable RegionFX plugins in safe-mode 2024-10-21 02:28:34 +02:00
Mads Kiilerich
05699c2d1a Fix invalid beatbox #include syntax ... but it still doesn't compile
It has been broken for 2½ year.
2024-10-20 03:30:48 +02:00
Mads Kiilerich
b4ff4f356c Make header files more self-contained - add missing Ardour and lib includes 2024-10-20 03:30:46 +02:00
Mads Kiilerich
955e634371 Make header files more self-contained - add missing std includes 2024-10-20 03:11:53 +02:00
Mads Kiilerich
8a5f21d8e3 Drop some unused files - avoid trying to maintain stuff that can't be tested 2024-10-20 03:11:53 +02:00
Mads Kiilerich
140670541f Use .inc.h for #include files that not are plain headers
Regular .h files *should* be self-contained and independent of previous
includes and guarded to only include once. Make it clear which files
that *doesn't* apply for at all.
2024-10-20 03:11:53 +02:00
Mads Kiilerich
38db12c9ea Drop Frontier Tranzport surface - it has been dead for a decade 2024-10-20 03:08:03 +02:00
0d71876189
signals_generated.h is no longer required 2024-10-19 21:54:34 +02:00
7b74faaf57
Tidy up libs/lua/LuaBridge/detail/Userdata.h 2024-10-19 18:38:59 +02:00
Mads Kiilerich
a7eb3b7341 un-boost: Add missing #include <cmath> in audiographer silence_trimmer.h 2024-10-19 12:56:43 +02:00
Mads Kiilerich
d217b2f8ad un-boost: Add missing #include <functional> in rt_task.h 2024-10-19 12:42:25 +02:00
f8e05a595d
Remove conflicting include 2024-10-19 06:27:50 +02:00
7b24d38c0f
Add more missing include (fix windows builds) 2024-10-19 04:58:30 +02:00
af4d70c243
Use heap to build peak data 2024-10-19 04:49:13 +02:00
0a36cdedac
Add missing include (fix windows builds) 2024-10-19 04:46:35 +02:00
74c4ca3e52
Reduce reliance on boost - the hard part
the rest from `tools/convert_boost.sh`.

* replace boost::function, boost::bind with std::function and std::bind.

This required some manual fixes, notably std::placeholders,
some static_casts<>, and boost::function::clear -> = {}.
2024-10-19 03:47:21 +02:00
ff95d81612
Reduce reliance on boost - the easy part
* boost::unordered_map -> std::unordered_map
* BOOST_STATIC_ASSERT/static_assert
* BOOST_FOREACH -> for
* boost::tuple -> std::tuple/g
* boost::math::isnormal -> std::isnormal
* boost::container::set -> std::set
* boost::none -> std::nullopt
* boost::optional -> std::optional
2024-10-19 03:41:16 +02:00
168b917730
Prepare for std::optional 2024-10-19 03:40:04 +02:00
8eb9263af2
Replace boost::format with PBD::string_compose 2024-10-19 03:39:57 +02:00
Alejandro Domínguez
2436b4df06
Replace boost::noncopyable with C++11 deleted copy constructors 2024-10-19 01:04:15 +02:00
Alejandro Domínguez
915200699b
Replace boost::lexical_cast with std equivalent functions 2024-10-19 01:04:15 +02:00
Alejandro Domínguez
7a0428644f
Replace boost::assign::map_list_of with initializer_list constructor 2024-10-19 01:04:15 +02:00
Alejandro Domínguez
abf7a78984
Replace boost::ptr_list with std::list 2024-10-19 01:04:14 +02:00
Alejandro Domínguez
e326426dbc
Replace boost type traits with std version 2024-10-19 01:04:14 +02:00
Alejandro Domínguez
88e38b2699
Replace boost atomics with std version 2024-10-19 01:04:14 +02:00
Alejandro Domínguez
1ee044c5fc
Replace boost::erase_first with std equivalent 2024-10-19 01:04:14 +02:00
Alejandro Domínguez
1ffb70f670
Replace boost::scoped_ptr with std::unique_ptr (1/2) 2024-10-19 01:04:14 +02:00
30dc9ccc86
Replace boost::scoped_array<T> 2024-10-19 01:04:02 +02:00
2c503eab09
Remove old Coreaudio OSX 10.5 support 2024-10-18 22:52:34 +02:00
99906a2215
Drop build-system support for macOS < 10.13 (require C++17) 2024-10-18 22:52:29 +02:00
bd8525e5f1
Remove deprecated PBD::SignalN 2024-10-18 20:46:31 +02:00
2d7cce44f1
Replace PBD::Signals (1/2) 2024-10-18 20:41:08 +02:00
Alejandro Domínguez
0ade0b2212
Deduplicate SignalWithCombiner<Combiner, void, A...> specialization 2024-10-18 20:41:08 +02:00
Alejandro Domínguez
16dd8528c8
Make SignalN template variadic 2024-10-18 20:41:05 +02:00
837ea32898 actally stop doing clip recording visual stuff when disarmed (libs) 2024-10-18 09:50:48 -06:00
92e452609a
Fix I/O Tasklist RR schedule option 2024-10-18 15:11:08 +02:00
7608d4ade2 API changes for clip recording in TriggerBox
Also, disarm all triggers when track-level rec-enable is disabled
2024-10-17 07:44:33 -06:00
a8f58105a9 provide a class-level static PBD::Signal for Trigger (Slot) arming 2024-10-17 07:44:33 -06:00
6b1659497d add #warning 2024-10-17 07:44:33 -06:00
7c944687c9 preparations for clip data display (MIDI) while recording 2024-10-17 07:44:33 -06:00
c03c3dd918 fix unused variable warning from clang 2024-10-17 07:44:32 -06:00
dab9775223 fix bitwise-vs-logic AND (thanks, clang!) 2024-10-17 07:44:32 -06:00
c2deacdd54 fix definition of Trigger::playable()
The recent change to only use the data object breaks GUI handling
of a PropertyChange signal after _region is set following a drag
and drop
2024-10-17 07:44:32 -06:00
62a4df52c7 tentative steps in infrastructure for displaying clip data during capture 2024-10-17 07:44:32 -06:00
6193535a31 apply a fade in & out to captured audio clip data, before writing to disk
This policy may need revising later.
2024-10-17 07:44:32 -06:00
87ab0a9e0f add config vars to control max size of captured MIDI and audio clips 2024-10-17 07:44:32 -06:00
8305ea5762 during MIDI clip recording, convert audio->beat time at capture time
This distributes whatever cost there is associated with the domain conversion across
multiple process() calls, rather than doing it all in the process() call where
capture finishes.
2024-10-17 07:44:32 -06:00
Paul Davis
cbc0021182 fix typo (| instead of ||) 2024-10-17 07:44:32 -06:00
1e8b2c521c provide a better method to decide if a trigger(slot) is occupied
This is necessary with clip recording because for some short time after recording,
a trigger may be playable despite not yet having a region.

libs edition.
2024-10-17 07:44:32 -06:00
596c54d742 fix ups for record state in TriggerBox 2024-10-17 07:44:32 -06:00
d7d208dc34 move RecordState enum from ARDOUR::Session to ARDOUR so we can use it in TriggerBox (libs) 2024-10-17 07:44:32 -06:00
6ef4a74728 cleanup of bits of clip recording code 2024-10-17 07:44:32 -06:00
4466563a89 avoid double delete of clip recording audio buffers 2024-10-17 07:44:32 -06:00
25400a4936 fix appending new audio data during clip recording 2024-10-17 07:44:32 -06:00
7455b99b45 account for clip recording when computing monitoring state 2024-10-17 07:44:32 -06:00
a357575954 less debugging 2024-10-17 07:44:32 -06:00
423148c2af tweaks to cleanup and get much closer to full audio clip recording 2024-10-17 07:44:32 -06:00
26fb50d1a9 a bit more type-safety when handling audio data during clip recording 2024-10-17 07:44:32 -06:00
d7c424c440 attempt to write and use audio data to disk for audio clip recording 2024-10-17 07:44:32 -06:00