13
0
Commit Graph

31176 Commits

Author SHA1 Message Date
7a536524db no need to compute x-axis coordinate when adding an automation event 2021-01-19 13:04:34 -07:00
7cf435a876 deselect everything when the first MIDI note is selected
See comments in code for more information
2021-01-18 16:07:20 -07:00
6bd12a4e83 clearing note selection in internal edit mode also deselects regions 2021-01-18 16:07:20 -07:00
8386874a03
OSC: Allow to specify marker name #8543
Patch from atsampson
2021-01-18 23:36:35 +01:00
983c577945
Fix send panner when copying sends
* Unlinked panners now retain their state during copy/paste.
 * Linked send panners can no longer override parent route panning
 * Unlinked panner state is retained across link/unlink.
2021-01-18 18:58:10 +01:00
9c06f693e9
Fix mp3 and video-export (ffmpeg/ffprobe detection)
A call to `transcoder_exe (unused, unused)` passes the same
string reference for `ffmpeg` and `ffprobe`. If this happens
during the first call of this function, the path for the latter
is cached for both external tools.
2021-01-18 17:21:26 +01:00
528cf92ed5
Hide "Midi Through" on Linux only
Note HAVE_ALSA is mandatory for Linux builds, even when only
using JACK.
2021-01-18 16:16:25 +01:00
c02169a6c8
Micro-optimization: pre-calculate pan-law
powf() is very expensive to call, and as long as the pan-law
is fixed, there is no need to re-calculate coefficient scale
factor on every update.
2021-01-18 16:14:16 +01:00
31691a6ad4
Fix Aux-send copy/paste
* Create new IDs
* Allow to link with route's panner
2021-01-18 16:07:31 +01:00
1fc8b55314
Fix Intel/AMD FMA mix_buffers_with_gain()
_mm256_fmadd_ps (a, b, c) performs (a * b + c)
2021-01-18 16:07:21 +01:00
097e5a7145
Implement dynamic input port meters
This is a revision of the initial API 8ba7df9105, to
address issues with dynamica ports (fa791ae9cc).

* Group meter + scope/monitor per port (atomic access)
* Use shared pointer to allow access while ports change
* Use RCU to update port map
* Add/remove ports without clearing the map
* Add signal to notify GUI about Input Port changes
2021-01-18 03:18:21 +01:00
c5b986f420
ALSA: set pretty port names for audio I/O 2021-01-18 03:18:21 +01:00
edd3179fbf
VKeybd: show pretty-name in port-connector
This follows a special case in PortGroupList::gather().
The Virtual Keyboard is an Ardour owned async terminal port,
that is in a session bundle (not a UserBundle).

See also 728d2a3771 and 559ffcff63
2021-01-18 03:18:21 +01:00
e49adb55c0
Fix MidiPortOptions Preferences
* Show Treeview again if it was hidden
* Hide heading(s) and table when no ports are available
* Fix memory leak, unmanaged OptionEditorHeading
* remove unused members
2021-01-18 03:18:20 +01:00
0b0339f089
Re-implement MidiPortOptions with new API 2021-01-18 03:18:20 +01:00
bbb6851468
Subscribe to pretty-port name changes (surfaces) 2021-01-18 03:18:20 +01:00
b2c4e71a45
Subscribe to pretty-port name changes (GUI) 2021-01-18 03:18:20 +01:00
21e66216be
Separate user-set pretty-names from hardware I/O names
This allow to restore original engine port-names as set
by the backend. ALSA MIDI, CoreAudio, CoreMIDI and PortAudio
drivers can provide human readable physical port names for
some devices.
2021-01-18 03:18:20 +01:00
01502c6805
Allow to set pretty name for all port 2021-01-18 03:18:20 +01:00
a04a2bd0be
Prepare for API change, MidiPortOptions::setup_midi_port_view 2021-01-18 03:18:20 +01:00
0890b638b9 ptformat: Update to upstream 232ba25 2021-01-17 13:19:54 +11:00
ec5a809f54 pt import: Fix crash with bringing in material
Hopefully the weird pt import crash is now gone!
2021-01-17 13:19:54 +11:00
772512a62d pt import: Correct the log warning message when at least one audio file failed to load 2021-01-17 13:19:54 +11:00
2645ab2e73 pt import: Fix import -> cancel -> import by clearing status 2021-01-17 13:19:54 +11:00
5d0de7e037 pt import: Fix progress bar to span the whole import 2021-01-17 13:19:54 +11:00
ea8b855b4a pt import: Clean up track naming 2021-01-17 13:19:54 +11:00
12d62cd16e pt import: Fix race condition/threading, don't call new_audio_track() in bg thread 2021-01-17 13:19:54 +11:00
a307cc602c remove duplicate initialization of PBD::DEBUG::Selection 2021-01-14 11:25:29 -07:00
21822a45fb
Remove duplicate rdfs label in a-comp 2021-01-14 18:35:07 +01:00
0c81ba33d2
JACK latency compensation for newly created tracks #8472
Ardour native backends trigger a latency-callback when ports_changed.
This was lost for JACK when the shared port engine was implemented.
2021-01-14 03:22:25 +01:00
350938b68e
Fix crash at exit when EngineDialog shows some page other than 1st
#1  std::operator==<char> (__lhs=<error reading variable: Cannot access memory at address 0x801f0f1f>) at /usr/include/c++/8/bits/basic_string.h:6058
#2  EngineControl::get_matching_state at ../gtk2_ardour/engine_dialog.cc:1874
#3  EngineControl::get_saved_state_for_currently_displayed_backend_and_device() at ../gtk2_ardour/engine_dialog.cc:1893
#4  EngineControl::post_push() at ../gtk2_ardour/engine_dialog.cc:2655
#5  EngineControl::push_state_to_backend(bool) at ../gtk2_ardour/engine_dialog.cc:2643
#6  EngineControl::on_switch_page(_GtkNotebookPage*, unsigned int) (this=0x55bc43fd4d40, page_num=1) at ../gtk2_ardour/engine_dialog.cc:2988
[...]
#20  () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#21 g_object_run_dispose () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#22 Gtk::VBox::~VBox() () at /usr/lib/x86_64-linux-gnu/libgtkmm-2.4.so.1
#23 EngineControl::~EngineControl() (this=0x55bc43fd4d40, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at ../gtk2_ardour/engine_dialog.cc:73
2021-01-14 01:54:43 +01:00
fa791ae9cc
Static input port meters, ignore dynamic ports for now
Hotplugging devices will need to be special-cased.
Currently there is no API to notify the PortManager about
hotplugged devices.
2021-01-14 01:54:40 +01:00
c803911873 Sort input port signal meters by port name 2021-01-11 00:07:08 +01:00
John Emmas
6c1dea8df2 Add/remove source(s) in our MSVC project (libardour) 2021-01-10 18:45:25 +00:00
344d163875 Use libc++/clang on OSX 10.10.x 2021-01-10 14:05:09 +01:00
7ef55225a0
Plug a tiny memory leak 2021-01-09 20:18:12 +01:00
36d2b4ea2e
Fix C++11ism 2021-01-09 05:18:50 +01:00
9b1a2e6dba
Indicate that plugin-window MIDI keyboard is not recorded 2021-01-08 22:50:53 +01:00
0257804c57
Fix default track name patterns, remove additional space 2021-01-08 22:50:50 +01:00
5974e61854
Add option to skip MIDI track input auto-connect 2021-01-08 22:50:45 +01:00
038307fef6
Allow Lua bindings up to 11 args 2021-01-08 22:50:37 +01:00
44528f4fd0
Fix editor summary exposure rectangle
Rectangle uses position and width, not coordinate pairs.
2021-01-08 18:39:57 +01:00
aecd84e7fd
Update session extents calculation
* Expose API via Public Editor
* Skip hidden tracks in calculation
* Use a single call to query playlist extents.
  This way the playlist read-lock is needed at most once per track
  which speeds up calculation.
2021-01-08 18:39:57 +01:00
548db7a9a4
NO-OP: code formatting and cleanup, thanks clang-format 2021-01-08 18:39:57 +01:00
e644cb4577
Do not hold RegionWriteLock while emitting signals
Various playlist operations can change region-properties
which results in Region::send_change being emitted while
the Playlist::RegionWriteLock is held.

This can result in recursive lock and/or deadlocks or crashes. e.g.
Insert time -> Playlist::shift -> Region::RegionPropertyChanged
-> EditorSummary::set_background_dirty -> Editor::session_gui_extents
-> Playlist::get_extent -> read-lock is taken after write-lock.
2021-01-08 18:39:57 +01:00
ba123dfe87
Cache playlist extents
Calculating the extents iterates over all regions which
can be expensive. Ardour's GUI calls this periodically to
calculate session_gui_extents().
2021-01-08 18:39:56 +01:00
4769c387f3
Expose EditorCursor via public editor API
This is in preparation to subscribe to playhead cursor position
changes in the recorder-UI.

This change also clean up the API, replacing a public variable
with a const access method and follows #12 of
https://ardour.org/styleguide.html
2021-01-08 18:39:56 +01:00
8ba7df9105
Add input port signal meters, scopes and monitors 2021-01-08 18:39:56 +01:00
9a7379dfff
Add a CircularSampleBuffer for input port scopes 2021-01-08 18:39:56 +01:00
303d7bb2e8
Do not allow feedback override on foldback sends
FoldbackStrip::update_send_box() GUI relies on ->fed_by() to
determine if a FB bus has a send from a route.

Under the hood this uses direct_feeds_according_to_reality()
and InternalSend::feeds(). When `allow_feedback` is set a send is
assumed to not directly feed a target (to allow loopbacks).

This mode must not be used for foldback sends.
2021-01-08 18:39:07 +01:00