Commit Graph

223 Commits

Author SHA1 Message Date
Robin Gareus 6e12e71e8b
Show Progress when importing many channels/tracks
Track creation is a slow. Importing multi-channel files
to new tracks can take a significant amount of time.
This prevents the GUI from being marked as unresponsive and
shows progress.
2024-02-24 00:42:50 +01:00
Paul Davis b76c3b11d9 when importing SMF tempo map, use copy&paste to keep position 2023-11-17 10:02:34 -07:00
Ben Loftis 72761734e8 region groups: more fixes for drag-copy and range-paste operations 2023-09-27 11:06:40 -05:00
Ben Loftis fe2473b0cc
region groups: some actions must retain a group-id for the life of the op 2023-08-10 16:55:25 +02:00
Robin Gareus 5dd35ff86a
Fix duplicate whole-file regions when embedding sources
playlist->add_region() derives a region in case a whole-file
region is added to the playlist.
2023-05-28 04:39:06 +02:00
Paul Davis b35518e212 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
Paul Davis 2c7bfa9ead require use of BBT_Argument as both parameter and return type from most methods (GUI edition) 2023-02-15 16:02:56 -07:00
Robin Gareus 224f7bb263
Set imported regions to be opaque by default 2022-12-14 16:10:22 +01:00
Robin Gareus abf92e42c0
Do not explicitly copy [whole-file] Region
Playlist::add_region copies regions as needed (see 8d045e15dc),
without forking the Source.

This fixes an issue when importing MIDI files. When
midi-copy-is-fork is enabled (enabled by default), the
RegionFactory::create call used during import forked the
region. This resulted in two Sources being created for each
imported MIDI file.
2022-11-27 13:09:52 +01:00
Robin Gareus 6af9dffa7c
Remove UI code to import markers as locations (3/4) 2022-11-22 01:46:22 +01:00
Robin Gareus 4e77bbdd96
dd import_markers option (2/4) 2022-11-22 01:45:42 +01:00
Alexandre Prokoudine 05afb53743 Make capitalization more consistent across the UI
This commit mostly changes "Sample rate" to "Sample Rate"
2022-11-11 03:53:19 +03:00
Paul Davis 97a544390d use TempoMapChange to manage all feasible tempo map editing operations 2022-10-27 13:43:13 -06:00
Paul Davis 0c2176dd71 move default_triggers_per_box into a namespace ; change value for Ardour to 16 (GUI edition) 2022-10-04 19:55:15 -06:00
Robin Gareus 07dea50456
Fix DnD import to grouped tracks
Import via Drag/Drop previously worked by selecting a track,
and then importing to the selected track.

This approach fails when the selected track is in a track-group,
and selecting the track also selects other tracks of different type.

Now the track to drop onto is passed directly passed through to
::finish_bringing_in_material as existing_track.
2022-09-30 21:30:48 +02:00
Paul Davis 577c21776a fix position of imported tempo markers from SMF files 2022-09-27 09:32:19 -06:00
Robin Gareus bfe655775a
Set SMF::open option, do not scan since information is not needed 2022-09-25 02:47:14 +02:00
Paul Davis 399a5b3f25 convert use of operator* for tim::line types with ::scale(ratio_t) (GUI edition) 2022-05-27 12:47:44 -06:00
Paul Davis 883a44e6a4 temporal: TempoMap::use() returns a const ptr to enforce semantics (GUI version)
This commit leaves two issues outstanding:

1. unclear/ugly semantics for drag operations that reset the GUI thread's tempo map to the writable copy
2. undo/redo for the tempo map

These will be addressed in future commits
2022-04-08 11:58:04 -06:00
Robin Gareus 9f45e1a1fe
Copy Bank/Patch changes from auditioner to trigger-slot
This will need some refinement, we should only copy the settings
if the file in question was previously auditioned, and perhaps
only if GMsynth.lv2 is used.
2022-02-10 02:22:35 +01:00
Paul Davis c6a31250ba alter Source::_length from timecnt_t to timepos_t
THe length of a Source(File) is always measured from its start. In this sense,
the length is like a position on the timeline, which is a duration with an
implicit origin, or a Region start, also a duration with an implicit origin (in
that case the start of the Source). There is no good reason for using
a timecnt_t for this value, because the position component of a timecnt_t
(the origin for the duration) is implicit and always zero. So we make
this property into a timepos_t, and include a number of asserts() to check
for common possible coding errors related to the time domain
2022-01-28 15:52:27 -07:00
Robin Gareus 9b224a79d4
Mixbus prefers stereo-tracks when importing files as triggers 2022-01-24 18:52:51 +01:00
Paul Davis 2152e7ba3b triggerbox: change FollowActions into an object with a target list (GUI edition) 2022-01-19 15:50:55 -07:00
Robin Gareus f2a4ec3776
Only ImportAsTrigger shows the track on the TriggerPage 2022-01-14 22:46:51 +01:00
Robin Gareus 96137739a7
Reduce includes required for Selection
Previously a triggerbox_ui.h change triggered a complete UI
rebuild. This follows the concept of other editor_selection
lists which use forward declarations.
2022-01-11 05:21:51 +01:00
Robin Gareus 547465e1fa
Implement ImportAsTrigger w/ImportSerializeFiles
Place imported files on the same new track on consecutive
trigger slots.
2022-01-04 02:26:04 +01:00
Robin Gareus e0c07e2306
Add ImportAsTrigger mode
This is like ImportAsTrack, except the imported region is not
added to the timeline, but the first trigger slot.
2022-01-03 23:51:33 +01:00
Paul Davis 139a051b18 remove default args to Session::new_midi_track() (gui edition) 2021-08-13 12:51:36 -06:00
Paul Davis 857ca46a95 fix timeline type usage 2021-08-13 12:51:36 -06:00
Paul Davis 36609c4067 remove public ::bbt_at (INTEGER) methods, because of superclock_t/samplepos_t confusion (GUI edition) 2021-08-13 12:51:35 -06:00
Paul Davis a8f9f268b4 use integer division when computing tempo map positions from SMF data 2021-08-13 12:51:33 -06:00
Paul Davis 97a3469972 use new Tempo API in two places where Tempo is explicitly constructed 2021-08-13 12:51:33 -06:00
Paul Davis 993186e9fc start time for whole file regions based on MIDI should be in BeatTime, in AudioTime for audio files 2021-08-13 12:51:32 -06:00
Paul Davis b451a50b95 use explicit timepos_t() for region start property in property lists (gui edition) 2021-08-13 12:51:31 -06:00
Paul Davis f0ff72c669 remove old call to set libtemporal thread local sample rate 2021-08-13 12:51:31 -06:00
Paul Davis cce695d33a changes required by fixing ambiguities in timepos_t/timecnt_t API (GUI edition) 2021-08-13 12:51:31 -06:00
Paul Davis a41a1ffa04 use a better initializer for region creation during import 2021-08-13 12:51:30 -06:00
Paul Davis 18d64f0402 change all Region::nt_*() methods to names without the nt_ prefix (GUI version) 2021-08-13 12:51:30 -06:00
Paul Davis ae01dafcce use Temporal::set_thread_sample_rate() rather than explicit assignment 2021-08-13 12:51:30 -06:00
Paul Davis e1620a22cf temporal thread init for import thread 2021-08-13 12:51:30 -06:00
Paul Davis 60d1c5f722 remove tempo map from Session 2021-08-13 12:51:30 -06:00
Paul Davis c434289973 remove lock, _dirty and _generation nonsense from TempoMap (pre-RCU management) 2021-08-13 12:51:30 -06:00
Paul Davis 7ef11dc698 continued work on using new tempo map API (before switch to RCU) 2021-08-13 12:51:30 -06:00
Paul Davis f67029bd02 random commit to facilitate trivial move of work from laptop back to main system 2021-08-13 12:51:29 -06:00
Paul Davis 2a08e4bdaa continued work on timeline types conversion. in theory, just editor_ops.cc remains 2021-08-13 12:51:29 -06:00
Paul Davis 7433bc27e0 intermediate, unfinished snapshot of ongoing timeline types work on GTK GUI 2021-08-13 12:51:29 -06:00
Paul Davis f4490f54c5 change Timecode::BBT_Time to use Temporal namespace, plus a couple of other minor changes to enable compilation
This still uses the tempo map object in libs/ardour, not the new one in libs/temporal, and isn't likely to be functional
(though it could be)
2021-08-13 12:51:28 -06:00
Paul Davis 636f1331e8 stop using ripple callback API, add Editor::should_ripple() and Editor::do_ripple() to manage rippling 2021-08-13 12:51:27 -06:00
Paul Davis 0e2bd5383c GUI changes to follow new Playlist::ripple() API
Current ripple callback does nothing at all
2021-08-13 12:51:27 -06:00
Robin Gareus 2b066293fb
Set playlist ID when importing to new tracks
This amends 730a0954 and b27bb586.
This also restores the original API for do_import()
and do_embed() as used by Lua scripts.

Note that this uses distinct IDs when importing both audio
and MIDI in the same DnD request.
2021-07-08 05:28:10 +02:00