Commit Graph

35701 Commits

Author SHA1 Message Date
David Robillard 8eec6888fa Fix comment
This seems to have been mangled somehow in
9cbf3ae4ad.
2022-08-04 16:36:02 -04:00
David Robillard 5904eaae34 Replace check for LV2 1.17.2 with 1.18.0
LV2 1.17.2 was a development version at the time.  Now that the release has
been out for a while, it's better to depend on release versions to avoid
confusing people with versions that "don't exist".
2022-08-04 16:34:45 -04:00
David Robillard f2958e7e5e Bump LV2 requirement to 1.16.0 and use simplified includes 2022-08-04 16:32:08 -04:00
David Robillard 98524c9bfb Remove unused URIDs
These also had the wrong case: case is relevant here, classes are uppercase,
other things (properties and instances) are lowercase.  However, they seem to
be entirely unused now, so simply remove them instead of fixing this.
2022-08-04 16:26:58 -04:00
Ben Loftis 916fc4a2ee likely fix for cue-text sizing on windows 2022-08-04 13:40:06 -05:00
Paul Davis d10557fc8c fix exception when loading a region whose length exceeds its source and the time domains do not match
See code comment for more info
2022-08-04 09:51:20 -06:00
Paul Davis 32d99aa64f triggerbox: convert fast forward (and other) cerr output to DEBUG_TRACE 2022-08-03 17:15:58 -06:00
luz paz 47c525315d Fix various typos
Found via `codespell -q 3 -S *.po,./.git,./share/patchfiles,./libs,./msvc_extra_headers,./share/web_surfaces,*.patch  -L ba,buss,busses,discreet,doubleclick,hsi,ontop,ro,scrollin,seh,siz,sord,sur,te,trough,ue`
2022-08-03 12:10:01 -06:00
Paul Davis 5a0019f9a6 canvas: comment out unimplemented method 2022-08-03 12:08:57 -06:00
luz paz 36226cfd0a Fix various typos in libs/canvas 2022-08-03 12:07:46 -06:00
Paul Davis 014c6e7850 replace INT32_MAX with CueRecord::stop_all (gui) 2022-08-03 11:42:58 -06:00
Paul Davis dc5737a3bf replace INT32_MAX with CueRecord::stop_all (libs) 2022-08-03 11:42:51 -06:00
Paul Davis c25e96b545 triggerbox: rework fast_fwd code into a simpler design
Rather than start at zero, we now search backwards for the first relevant cue
before the locate position, making our task in ffwd'ing from there much simpler
since there are no other cues to consider
2022-08-03 11:00:37 -06:00
Paul Davis cc6a437faf temporal: fix a bug in BBT_Time::round_up_to_bar()
Also remove Meter:: versions of related methods, because they are not necessary. We
only need metrical information for operations like ::round_to_bar()
2022-08-03 10:59:29 -06:00
Robin Gareus 076ad9a9b6
NO-OP: simplify wscript 2022-08-02 00:22:44 +02:00
Robin Gareus 6b636b8220
AudioUnit: fix cocoa window resizing - part 2
Previously no unmap events were delivered (due to a bug in
Gtk EventBox), `lower_box_map` was called only once.

Furthermore when cross-compiling (ARM binary on Intel),
COCOA_LIVE_RESIZING was not detected.

see also df21698ea7
2022-08-02 00:22:44 +02:00
Robin Gareus a48df667f6
Consistent stdout/err AU debug log 2022-08-02 00:22:40 +02:00
Ben Loftis 22faf6f426 fix transport-freeze in some cases of MIDI cue ffwding
* there are rare cases where a midi clip would not advance the ffwd position, looping endlessly
* this problem did not occur when the user chose an explicit Follow Length (different code path)
2022-08-01 14:52:16 -05:00
Robin Gareus e04311b647
Work around cleanup unused regions removing trigger-regions
This workaround bypasses RegionMap and SessionPlaylist APIs
(region_use_count, destroy_region) which are not directly
applicable to Triggerboxes. There are likely various edge
cases until TriggerBoxes integrate with Session Playlist.

e.g. whole file regions generated for regions/source used by
triggerboxes are cleaned up.
2022-08-01 20:48:02 +02:00
Robin Gareus bd6df4a40d
Fix session-archive of nested sources in unused regions
A compound region itself may be unused, but the nested source
it provides can be used in another region compound.

In this case the first, unused, region needs to be saved
to save the nested source.
2022-08-01 00:59:01 +02:00
Robin Gareus df21698ea7 Fix relative AU window sizing
Rosetta bridge plugins have an initial size of 0x0 pixel.
Ardour's AU window size is set relative to the previous size. So the
window grows by the actual real initial size of the AU View.
However the window is already allocated and has a non-zero width given
by the plugin's toolbar.

This lead to oversize windows.
2022-07-30 06:38:44 +02:00
Paul Davis 371f386b8b improve comment accuracy 2022-07-29 14:04:28 -06:00
Paul Davis 81f22662c0 some more logic changes to triggerbox fast forward to try to make it reliable 2022-07-29 14:04:28 -06:00
Ben Loftis f6630ad31c Fix tooltip for mixer scenes 2022-07-29 11:13:24 -05:00
Paul Davis f18803e19f fix boost warnings when *not* using --cxx11
Ultimately we should probably move to std::bind and std::placeholders
2022-07-29 09:42:18 -06:00
Paul Davis 2471e90fae LV2 0.18.6 no longer provides a top-level lv2.h
Until it does, standardize on a single include path for lv2.h, even if this
path is the sort of thing that leads to CLAP
2022-07-29 08:51:49 -06:00
Paul Davis 9d197c0702 fix copy-n-paste of audio region envelopes and other automation data
Constructing a playlist from another playlist plus an offset used the wrong
RegionFactory::create method. By failing to pass in the offset to the region
constructor, the newly created region gets its envelope (and possibly other
automation data) from the start of the existing region, not its own start.
2022-07-28 18:01:14 -06:00
Paul Davis 96dc3cce88 use C++11 auto iterator syntax 2022-07-28 18:01:14 -06:00
Robin Gareus 48dbd5801a
Coreaudio: enable MIDI by default 2022-07-27 15:31:20 +02:00
Robin Gareus 84d6a0a75d
Copy demo sessions (if any) for new-users
* Fix demo-session glob (missing "*" + session_archive_suffix)
* Copy demo-session also when copying settings from older version
* Also add demo-session to recent-list if it was previously unpacked
  for new major versions.
2022-07-27 01:08:01 +02:00
Robin Gareus 8cf3ff37ed
Do not save EngineHints with session-archives
This will prevent a "Engine I/O device has changed" warning dialog
when the archive is opened later.
2022-07-27 01:08:01 +02:00
Paul Davis ae7b39022e triggerbox: improve fast forward behavior
There was a logic error previously which failed to consider follow actions (and follow count).
Now we find a relevant cue, and use follow actions and follow counts as we move forward
in time
2022-07-25 22:02:12 -06:00
Paul Davis b0b5ec1c89 non-compilable, non-functioning branch to make work on the road possible.
Laptop is already packed
2022-07-25 22:02:12 -06:00
Robin Gareus faa1e984ab
Sort ports by name in the connnection-matrix
This should fix a long-standing issue with interleaved display
of clients since jack_get_ports() does not return a well defined order.

(Internal backends based on Ardour::PortEngine keep ports sorted)
2022-07-26 01:58:11 +02:00
Robin Gareus 191dbf7c34
Connect LV2 Atom ports for latency compute run
This fixes an issue with LV2 plugin that unconditionally
initialize LV2 Atom ports even if they are not connected.
eg. JUCE7 produces LV2s at the time of writing.
2022-07-24 17:38:53 +02:00
Robin Gareus 5f5f4599f2
Fix MIDISource event-interpolation state save
The actual goal here is to use direct InterpolationStyle serialization
in MidiSource (identical to AutomationList). enum_2_string()
does not work for Evoral types.

As side-effect virtual base-classes have been changed to pass
Parameters as const references
2022-07-22 03:38:41 +02:00
Robin Gareus 1b6e9fdaf8
Correctly save MidiSource Automation state 2022-07-22 03:38:37 +02:00
Robin Gareus 2245042b85
Fix crash when adding events to disabled MIDI event-lane
In case of MIDI CC/Bend/Pressure etc events, the underlying
data is provided by a MidiTrack (is-a Automatable) and not
an automation-control.

When directly calling AutomationControl::set_automation_state,
the AC disables automation-watch using shared_from_this().
With the Evoral::Control used for MidiTrack event-lists this
results in a tr1::bad_weak_ptr.
2022-07-22 03:38:34 +02:00
Robin Gareus 62aae6cffb
Consistently replace colons in IO/Port names
This fixes an issue when creating tracks or busses with a colon
in the name. Renaming those tracks later IO::set_name()
crashed in current_name.replace(std::string::npos,..).

`IO::build_legal_port_name` uses ";" instead of ":" while
`IO::set_name` replaced it with a "-".

Initially the IO name included the colon, so ports created
use a semicolon. But after renaming the IO, ::set_name() applies
the replacement and the IO's name is changed to include the "-".

This leads to a conflict with ports that already have the semicolon
in the port-name.
2022-07-20 18:50:29 +02:00
Ben Loftis 85f640c31a ripple: prevent session/punch/loop markers moving during ripple-all
Locations::ripple() skips these markers when the ripple action is committed.

...but the editor moves the marker-items as a visual aid, before actually
  committing the changes to Locations()

...so the editor needs the same logic, to avoid visually inconsistent behavior
2022-07-19 12:33:33 -05:00
Ben Loftis 904491611f rippled region drags should apply on all tracks with selected regions 2022-07-19 12:33:33 -05:00
Robin Gareus 9e5fb6ea40
DnD: prefer explicit "first-move-happened" (see also 4556f55d8e)
In case of auto-scroll it is apparently possible that the
move_threshold_passed, but ::motion() is not called.

There already is an explicit _starting_point_passed variable
that is set when first_move occurred. So far it was just unused.
2022-07-18 18:41:17 +02:00
Ben Loftis 5df0e3d226 relax the requirement that Cue Markers must be quantized to the grid,
when dragging their location

* it should be possible to launch an arbitrary (non-quantized) sound
 'anytime' on the timeline

* this was already possible anyway, by switching the Grid to None
2022-07-18 11:34:57 -05:00
Robin Gareus 79f8606b2d
LV2: announce bufz:boundedBlockLength feature (#8942) 2022-07-18 15:42:44 +02:00
Robin Gareus 4556f55d8e
Fix Trim-drag abort
When no movement has occurred, TrimDrag::motion was never called
and `begin_reversible_command()` was not called. There is nothing
to undo. This fixes
`commit_reversible_command(Command*): Assertion `_current_trans' failed`
2022-07-17 16:02:53 +02:00
Robin Gareus ef08c819da
Fix crash on port unregistration
pr->erase (*i); deletes the iterator, it cannot be safely
dereferenced again later.
2022-07-16 20:26:56 +02:00
Ben Loftis b9419aa405 another attempt to catch details of a rare region-gain undo crash 2022-07-16 10:01:33 -05:00
Robin Gareus 1f65c66727
MCU: fix mixer-strip buttons (see also 0d9656ef82) 2022-07-15 23:46:28 +02:00
Robin Gareus 2de84c97d0
Fix Temporal::Range::squish reduced to samples
Loop Location start="a1665678660" end="b145920"
Loop-end (at 122BPM) is a2109859636
at 48kHz this is sample 1794098.32

Now play the loop and play sample 1794098 = a2109859248
Range::squish start: a1665678660 end: a2109859636 squish: a2109859248

squish() does nothing, since there are still 388 superclock-ticks
until the end of the loop.

However, DiskReader::get_midi_playback convertes the value back
to samples(), this leads to effective_start == loop_end;
resulting in an endless loop.

Thanks to MikeLupe to provide a session to reproduce this issue.
2022-07-15 19:54:21 +02:00
Ben Loftis 419f934ecd support group-override when starting a new Range selection 2022-07-14 17:28:07 -05:00