Commit graph

35778 commits

Author SHA1 Message Date
cooltehno
b8f21b2acf Update dark-ardour.colors 2022-08-18 09:07:51 -06:00
Paul Davis
2f7f313f6d MIDI combine (basically operational)
May need some tweaks to address notes that are cut off by the end of the region
2022-08-18 07:45:05 -06:00
Paul Davis
ffc9239de5 ControlList: replace code use to interpolate MIDI CC curves
Original code is of questionable historical provenance, and
was needlessly (it seems) complexity. New code is relatively
simple arithmetic linear interpolation.
2022-08-17 20:55:17 -06:00
Paul Davis
fc6ad8ebd9 bbt markers: all the basics of dragging, editing, removing 2022-08-17 16:40:35 -06:00
Paul Davis
025dfa6062 tempo map: fix logic error in ::reset_starting_at() relating to tempo/bbt markers 2022-08-17 16:40:14 -06:00
Paul Davis
6784f0e5dc basic skeleton for BBT marker drag 2022-08-17 16:40:02 -06:00
Paul Davis
965fe9946b BBT markers: put BBT position in their tooltip
Tooltip will need updating once drag is working correctly
2022-08-17 16:39:46 -06:00
Paul Davis
3259ab2d41 tempodisplay: correctly redisplay tempo map stuff after adding a BBT marker 2022-08-17 16:39:32 -06:00
Robin Gareus
6371049eaf
OSX packaging, update x42-download URL/ID 2022-08-13 20:49:48 +02:00
Paul Davis
b03e9b4c10 NOOP: add helpful explanatory comment 2022-08-12 09:21:23 -06:00
Robin Gareus
ce46b791ea
VST3 scan: don't clutter log with bus-info messages 2022-08-12 16:08:23 +02:00
Robin Gareus
839400f438
Fix peak-thread race on session-load
Session dirs must exist when loading Sources of a project.
SourceFactory::init() starts the PeakFileBuilder background thread
early on when libardour is initialized.
This thread [re-]creates missing peak files when Sources are
created or loaded. However AudioSource::prepare_for_peakfile_writes
assumes the peak/ folder exists. This may not be true, which lead to
"AudioSource: cannot open _peakpath [..] (No such file or directory)"
errors.

Also drop creation from Source::get_transients_path() as this
may be called concurrently from Analyser background threads.
2022-08-12 01:36:43 +02:00
Ben Loftis
69d3bd8821 new-user dialog: updated text; more consistent fonts and layout 2022-08-11 16:53:56 -05:00
Paul Davis
610b5dddbf ControlList: GUARD_POINT_DELTA needs to take time domain into account 2022-08-11 15:26:42 -06:00
Paul Davis
373a73cb51 fix selectability of region-associated automation (i.e. MIDI)
The fix here is really just dropping the use of _offset when computing the session position
of a control point. This was just an arithmetical error.

However, session_sample_position() was redundant and just caused more work, so this
method was removed, and only ::session_position() is now used.

In addition, several closely related places now use C++11 (or later) "auto"
syntax for iterating over containers, for cleaner looking code
2022-08-11 15:26:42 -06:00
Robin Gareus
9327027d98
Revert "Ensure disk buffer refills happen in the right thread"
This reverts commit 96ebac646d.

There are some valid cases where refill is called from the GUI
thread. e.g adding tracks, or adding channels to an existing track.
2022-08-11 22:45:13 +02:00
Robin Gareus
96ebac646d
Ensure disk buffer refills happen in the right thread 2022-08-11 19:14:51 +02:00
Robin Gareus
63c068227f
Improve DR refill error messages to aid debugging 2022-08-11 19:14:51 +02:00
Robin Gareus
9453802248
Fix "when refilling, cannot write" disk-reader bug
This happened initially during session load.
The GUI thread performed a direct refill (blocking wait)

`Session::post_engine_init() -> Track::seek() -> DiskReader::seek() -> DiskReader::do_refill_with_alloc()`

while concurrently the butler thread does the same:

```
Session::butler_transport_work() -> Track::non_realtime_locate() -> Route::non_realtime_locate()
-> DiskIOProcessor::non_realtime_locate() -> DiskReader::seek() -> DiskReader::do_refill_with_alloc()
-> DiskReader::refill_audio()
```

We do not want the GUI to wait, so now we just request a locate
and let refill happen in the background.
2022-08-11 19:14:51 +02:00
Paul Davis
7aef0cd191 fader colors: use correct UIConfig var name and exclude master bus correctly 2022-08-11 08:45:31 -06:00
Paul Davis
870a51b691 fader coloring: ignore master, and rename UIConfig option to be more generic now (also text in prefs) 2022-08-11 08:22:49 -06:00
Paul Davis
04ad500998 set mixer strip fader name always, so that bg is set from style 2022-08-11 00:07:53 -06:00
Paul Davis
27f4302a7d ardourfader: more complete support for explicit fg 2022-08-11 00:07:30 -06:00
Paul Davis
24253c20f3 remove no-longer-used method 2022-08-11 00:07:05 -06:00
Paul Davis
340bba15f2 fix typo 2022-08-10 22:37:16 -06:00
Paul Davis
6d85759cf8 optionally tinted faders in mixer view 2022-08-10 22:34:52 -06:00
Paul Davis
9e8a5f15c9 optionall colored faders in editor 2022-08-10 22:34:36 -06:00
Paul Davis
f8a77c7dcb add API to GainMeterBase to allow use of explicit fader colors 2022-08-10 22:34:33 -06:00
Paul Davis
bfa40895b3 add 2nd method to RouteUI to get a (possible) variant of the route color for "tinting"
Currently returns the same value as ::route_color()
2022-08-10 22:33:40 -06:00
Paul Davis
aee41bfba6 ardourfader: basic use of explicit fg/bg color 2022-08-10 22:32:42 -06:00
Paul Davis
9ea1e5bdee move color utility functions from ARDOUR_UI_UTILS to Gtkmm2ext namespace (GUI) 2022-08-10 21:11:52 -06:00
Paul Davis
a2e4897a49 move color utility functions from ARDOUR_UI_UTILS to Gtkmm2ext namespace (libs) 2022-08-10 21:11:46 -06:00
Paul Davis
32c2ed3f21 ardourfader: further steps to per-fader colors 2022-08-10 18:26:49 -06:00
Paul Davis
9459ca5583 ardourfader: beginning of per-fader color 2022-08-10 18:15:39 -06:00
Paul Davis
e0d33bb726 cairowidget: add supplementary set_source_rgb_a() method that uses the uint32 Color type 2022-08-10 18:15:25 -06:00
Paul Davis
5dbcd76cb1 led widget: disambiguate namespace for Color type 2022-08-10 18:14:28 -06:00
Paul Davis
9178758f54 fix redisplay of track headers after changing track-name-numbering 2022-08-10 16:44:43 -06:00
Ben Loftis
8b28a284ba Cue markers must be centered after their text is assigned 2022-08-10 15:15:49 -05:00
Robin Gareus
df66482b89
Indicate current snapshot
Since 02b0ecdacb, the selected snapshot is no longer the currently
active one. This adds a dedicated indicator for this.
2022-08-10 03:20:29 +02:00
Robin Gareus
b5d96f0de2
Do not allow to delete the last snapshot
In case a user manually renames a session-folder and snapshot
it should still be impossible to delete the last snapshot
even if it is not named after the session-dir.

In theory this is impossible (one cannot delete the current snapshot)
2022-08-10 03:14:08 +02:00
Paul Davis
6dc1e1f778 trigger strips: name button was intended to be colored
Gtk::Widget::modify_bg() will do nothing to a cairo widget
2022-08-09 17:36:14 -06:00
Robin Gareus
42cb321039 Amend previous commit (window settings, ignore size)
When loading a session it is preferable to use the window size from
Config's instant.xml (local machine screen sizes).
2022-08-10 01:00:29 +02:00
Robin Gareus
acf13e9498 Restore "Main" UI Tab setting from sesion instant.xml
Previously this setting was ignored. It is relevant when loading a demo
session, where initially there is no user Config instant.xml.

ARDOUR_UI::setup_windows is called directly after the engine starts, but
before the session is set.
2022-08-10 00:50:02 +02:00
Paul Davis
bfedf7168e new GUI appearance option to offer track/bus colors (muted) as backgrounds for editor & mixer strips 2022-08-09 16:18:32 -06:00
Colin Fletcher
c9446aa1e1 gtk2_ardour: set region marks into currently recording regions
Region actions are generally set insensitive whilst recording, so
special-case the "add-region-cue-marker" action by explicitly enabling it
when starting to roll in record. Additionally, the action becomes disabled
again after it's been executed, so re-enable it after queuing the cue when
recording.
2022-08-09 14:03:16 -06:00
Colin Fletcher
cef86efe1b libs/ardour: allow creating region source markers while recording
Add a list of marker locations to the session, for the the UI to add the
current location to when "add-region-cue-marker" happens whilst recording.
On record-stop, create source markers at the locations in that list in all
newly-recorded audio regions.
2022-08-09 14:03:03 -06:00
Paul Davis
f96946d566 remove more debugging output 2022-08-09 12:54:45 -06:00
Paul Davis
5cc28b4024 remove debug output 2022-08-09 12:37:48 -06:00
Paul Davis
1c59a2dff0 triggerbox/route: a cleaner method of ensuring trigger alignment
This change still runs the triggerbox during latency-preroll, but as with the disk reader,
the transport speed argument is set to zero. The triggerbox notices this and behaves
appropriately (I think !)
2022-08-09 12:33:37 -06:00
Paul Davis
bedb94e534 triggerbox: do absolutely nothing if transport is moving backwards 2022-08-09 12:31:37 -06:00