Commit graph

20553 commits

Author SHA1 Message Date
Paul Davis
f8ed004be0 make MIDISurface::midi_input_handler() public
It needs to be public to bind it to a signal from a derived class.
Silly C++.
2023-08-30 16:06:13 -06:00
Paul Davis
7130deafdf fix AbstractUI redefine of DEBUG_TRACE to still use PBD::debug_print-ish stuff 2023-08-30 16:06:13 -06:00
Paul Davis
37f859197b use PBD::DEBUG::Threads as a toggle to show thread ID/name with debug output 2023-08-30 16:06:13 -06:00
Paul Davis
a59c217205 extend PBD::Debug API to provide a method that doesn't send to debug Transmitter 2023-08-30 16:06:13 -06:00
Paul Davis
36ada549b2 lppro: scroll text method (doesn't seem to work) and new sysex header vector 2023-08-30 16:06:13 -06:00
Paul Davis
599998bd1f midisurface: add a vector constructor for MidByteArry
plus a few minor code tweaks
2023-08-30 16:06:13 -06:00
Paul Davis
7e0315bc5e lppro: working mode setting and control 2023-08-30 16:06:13 -06:00
Paul Davis
45e3408595 minor tweak to MIDISurface API
Allows connecting additional ports to our parsers
2023-08-30 16:06:13 -06:00
Paul Davis
13508efef3 lpp: successfully enter programmer mode 2023-08-30 16:06:13 -06:00
Paul Davis
b93385e9ae lppro: steps to an ecology of ... no wait, just some stuff 2023-08-30 16:06:13 -06:00
Paul Davis
9d153af72d image for launchpad pro "gui" 2023-08-30 16:06:13 -06:00
Paul Davis
c4529f4654 NO-OP: variable name tweak 2023-08-30 16:06:13 -06:00
Paul Davis
3fa15d9162 skeleton for launchpad pro support 2023-08-30 16:06:13 -06:00
Paul Davis
6c44dbf9d6 temporal: a guess at how to use BBT markers from within TempoMap::paste()
Basically, if the paste position is not zero and not on a bar line, we will a BBT marker there,
using the existing tempo & meter at that position before the paste.

If the end of the paste is not on a bar line, we will place a BBT marker there,
using the tempo & meter that existed before the paste.

TempoMap::paste() now also accepts an optional final argument that if provided is
used to name the BBT markers, if they are created
2023-08-30 15:21:55 -06:00
Paul Davis
7aa1863c0f somewhat working tempo map cut/copy/paste 2023-08-30 14:16:21 -06:00
Paul Davis
a5055a2227 various changes related to tempo map copy/cut/paste section
Tempo map is currently still excluded from the editor operation
2023-08-30 14:16:21 -06:00
Paul Davis
2e08ff01f5 temporal: add TempoMapCutBuffer::empty() 2023-08-30 14:16:21 -06:00
Robin Gareus
6b8c7292a5
Do not use session-range as implicit section 2023-08-29 00:29:06 +02:00
Paul Davis
8c9b6812d7 fix crash during tempo mapping
Region _length values are not stashed during tempo mapping
if the region is already in the intermediate time domain, so do
not assert when they cannot be found at the end of the operation
2023-08-27 09:41:47 -06:00
Ben Loftis
8fd8eaa01d UF8: parameterize the device name and pass to MackieControlProtocol 2023-08-26 17:34:04 -05:00
Paul Davis
845600b261 fix off-by-one pixel error caused by using floor() instead of round() 2023-08-26 10:07:41 -06:00
Robin Gareus
46a916f0b4
Add method to query sections 2023-08-26 14:09:53 +02:00
Robin Gareus
6cf2659f8b
Add Location flags to define sections 2023-08-26 14:09:53 +02:00
Paul Davis
32ef2d5a0f temporal: add a music-time (BBT) point at the cut site 2023-08-25 17:39:00 -06:00
Paul Davis
4d8ba938f1 temporal: during cut(), break out of loop once we pass the end time 2023-08-25 17:39:00 -06:00
Robin Gareus
848f74d803
MCU/UF8: Fix issue with windows build
Enable Surface, show GUI, disable surface. repeat.
Previously this cased a crash in glibmm:

The type name `glibmm__CustomBoxed_N13ArdourSurface6NS_UF86Button2IDE'
has been registered already.
2023-08-25 21:08:14 +02:00
Paul Davis
c6b43155bc gain-like automation controls need to use the right limits for group value setting 2023-08-25 12:23:44 -06:00
Robin Gareus
4f7bd872be
MCU/UF8: use dedicated ctrl-protocol 2023-08-25 18:12:35 +02:00
Robin Gareus
c0366a5f13
MCU/UF8: Continued work to special case Mackie surface
* Use dedicated port-names for UFx
* Do not show SSL-UFx device-info files in MCU
* Fix Window namespacing/missing symbols
* Address Windows ambiguous symbols (Button, Surface)
  Those used to have a Mackie:: prefix, now they need
  MACKIE_NAMESPACE

When re-opening the GUI, there is still a somewha mysterious warning:
```
glibmm-WARNING **: file value_custom.cc: (Glib::custom_boxed_type_register): The type name `glibmm__CustomBoxed_N13ArdourSurface6NS_UF86Button2IDE' has been registered already.
```
2023-08-25 18:09:27 +02:00
Robin Gareus
70a4f29c59
Fix location ripple when cutting locations 2023-08-25 04:01:58 +02:00
Robin Gareus
f38a984396
Fix deadlock when undoing Location removal 2023-08-25 03:36:04 +02:00
Robin Gareus
efcef70d9a
Ensure that fatal does exit
Previously it was possible to just press "Esc" which closes the
dialog with Gtk::RESPONSE_DELETE_EVENT and Ardour continues
to run (and may or may not crash later).
2023-08-24 20:00:45 +02:00
Ben Loftis
ec365820d8
MCU/UF8: reuse and special-case Mackie ctrl surface for SSL-UF8
This adds a unique namespace to the MCU source code, so it can be
compiled multiple times resulting in different ctrl surfaces.
2023-08-24 19:19:10 +02:00
Robin Gareus
e3297a6a84
Fix MIDI deinterlace #9422
De-interlace works by first creating 16 SMF Sources, and then
only using sources that are actually required.

However SourceFactory::createWritable by default emits SourceCreated,
which added all the 16 Sources to the Session. Later adding only the
required Sources resulted in duplicate IDs.
2023-08-22 19:00:58 +02:00
Robin Gareus
dd4e5dfc96
Build-system: remove duplicate dis/en/able options
e.g. we had both --vst3 (default) and --no-vst3.
A user could specify both, which is confusing.
2023-08-21 19:25:26 +02:00
Paul Davis
e9be3beb2a add get/set state methods to TimeDomainProvider
These are not used yet, because only the Session really acts as a Provider
and it uses the Config::default_time_domain to serialize that state
2023-08-16 16:33:17 -06:00
Paul Davis
0227eab138 remove unused source file 2023-08-16 12:33:09 -06:00
Paul Davis
c5a0c0f6e0 remove some debug output 2023-08-16 09:33:16 -06:00
Paul Davis
0e40f030ad reversible domain swaps for Locations 2023-08-16 09:32:41 -06:00
Paul Davis
06e9bf6ca4 domain swaps for MIDI CC and other controls 2023-08-16 09:06:10 -06:00
Paul Davis
b240423e50 session: add API to get access to the current reversible command (if any) 2023-08-16 09:04:22 -06:00
Paul Davis
f7fd015cb3 no, really, no Pitches handling (extends previous commit) 2023-08-15 11:29:52 -06:00
Paul Davis
4246009864 no need for domain bouncing for "pitches" in a MIDI model
The Pitches representation is just an optimization in Evoral::Sequence, and just
represents note data differently
2023-08-15 11:25:54 -06:00
Paul Davis
a50f38d164 domain bounce handling for sysex and patch changes 2023-08-15 10:27:21 -06:00
Paul Davis
f92dcfa068 domain bouncing for Automatable/ControlLists 2023-08-15 08:34:42 -06:00
Paul Davis
457b94ba65 fix computation of note length after tempo mapping 2023-08-15 00:04:19 -06:00
Paul Davis
71d27e7d81 add a couple of #warnings 2023-08-14 23:42:08 -06:00
Paul Davis
076cb86912 next iteration of changes to handle time domain bounces as undoable 2023-08-14 23:42:08 -06:00
Ben Loftis
fd5dfe27c5
region groups: some operations should implicitly group new regions
* imported regions
* newly-recorded regions
* regions that result from a Split or Separate
* pasted regions
2023-08-10 16:55:25 +02:00
Ben Loftis
d1ee95e886
region groups: use group-id instead of equivalent-region, when provided 2023-08-10 16:55:25 +02:00