13
0
Commit Graph

39983 Commits

Author SHA1 Message Date
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
0631f99f15 add ability to change stop-on-grid from Preferences 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
8986768731 fix invisble notes in MidiRegionView after transport stopped-recording
MidiCueView needs an _active_notes array setup when it is assigned a track that is
already rec-enabled, because we can start clip recording without session record-enable
being active.

MidiRegionView does not need this; it uses session rec-enable status to create or delete
_active_notes (also transport stop, sometimes)
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
c7192b4cc0 add the concept of a length that is data-independent to MIDI files (GUI) 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
John Emmas
42602e0329 Add an alternative #include
Having removed boost::function.hpp we need to replace it with gtkmm2ext/actions.h - otherwise, glibmm/refptr.h can't make sense of the type 'Gtk::ActionGroup' (go figure...)
2024-10-26 14:50:22 +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
7a4fe02d53
wscript: waf i18n is usually running pot&po&mo and should thus also run appdata_i18n_mo 2024-10-22 00:37:40 +02:00
Mads Kiilerich
6742c1e4b4
wscript: waf i18n should generate gtk2_ardour/appdata/ardour.appdata.pot when invoking appdata_i18n_pot 2024-10-22 00:37:40 +02: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
b5d6b97fd2
Keep inline control state in sync with editor-mixer 2024-10-22 00:36:50 +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
27acda4ccd wscript: the i18n class names do not define the i18n waf command names
Try to make it a bit more clear what is going on with class and def for
i18n commands.

It was confusing that we first defined i18n classes in the beginning of
the wscript file, and then replaced them with "plain" functions with the
same name at the end. pyflakes also didn't like it.

It seemed magic. The i18n functionality easily broke if trying to touch
that. It deserves an explanation to make it maintainable ... and some
cleanup.

Simple functions in the top level wscript file are generally exposed as
custom waf commands. The command will have the same name as the function
and will get a plain Context. But that simple method doesn't work for
these i18n commands. They have to be declared in a different way with a
custom BuildContext, as seen and described in the comment.

The name of the BuildContext classes doesn't matter, so we change the
name to avoid the name collision and to give a hint how they actually
just are contexts for the commands - they are not the command itself. We
also place the classes next to the corresponding functions so it is more
obvious that they are related.
2024-10-20 19:52:14 -06:00
Mads Kiilerich
c78b3289d5 wscript: set PROGRAM_NAME in env early, not as set_compiler_flags side effect 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