Commit Graph

31149 Commits

Author SHA1 Message Date
Paul Davis a307cc602c remove duplicate initialization of PBD::DEBUG::Selection 2021-01-14 11:25:29 -07:00
Robin Gareus 21822a45fb
Remove duplicate rdfs label in a-comp 2021-01-14 18:35:07 +01:00
Robin Gareus 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
Robin Gareus 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
Robin Gareus 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
Robin Gareus 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
Robin Gareus 344d163875 Use libc++/clang on OSX 10.10.x 2021-01-10 14:05:09 +01:00
Robin Gareus 7ef55225a0
Plug a tiny memory leak 2021-01-09 20:18:12 +01:00
Robin Gareus 36d2b4ea2e
Fix C++11ism 2021-01-09 05:18:50 +01:00
Robin Gareus 9b1a2e6dba
Indicate that plugin-window MIDI keyboard is not recorded 2021-01-08 22:50:53 +01:00
Robin Gareus 0257804c57
Fix default track name patterns, remove additional space 2021-01-08 22:50:50 +01:00
Robin Gareus 5974e61854
Add option to skip MIDI track input auto-connect 2021-01-08 22:50:45 +01:00
Robin Gareus 038307fef6
Allow Lua bindings up to 11 args 2021-01-08 22:50:37 +01:00
Robin Gareus 44528f4fd0
Fix editor summary exposure rectangle
Rectangle uses position and width, not coordinate pairs.
2021-01-08 18:39:57 +01:00
Robin Gareus 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
Robin Gareus 548db7a9a4
NO-OP: code formatting and cleanup, thanks clang-format 2021-01-08 18:39:57 +01:00
Robin Gareus 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
Robin Gareus 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
Robin Gareus 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
Robin Gareus 8ba7df9105
Add input port signal meters, scopes and monitors 2021-01-08 18:39:56 +01:00
Robin Gareus 9a7379dfff
Add a CircularSampleBuffer for input port scopes 2021-01-08 18:39:56 +01:00
Robin Gareus 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
Robin Gareus 728d2a3771
VKeybd: include port-name in dropdown #8535 2021-01-08 16:33:29 +01:00
Robin Gareus 559ffcff63
VKeybd: use a non-translatable port-name (2/2) 2021-01-08 16:33:29 +01:00
Robin Gareus af29e7483b
VKeybd: use a non-translatable port-name (1/2)
This improves session portability, only the "pretty name" should
be visible to the user.
2021-01-08 16:33:29 +01:00
Paul Davis b59e687f83 prevent addition mouse button press/release events while an existing drag is still underway from interfering (fixes #8529) 2021-01-07 22:55:44 -07:00
John Emmas ef7a5e1b00 For 64-bit compilation, MSVC no longer supports inline assembly 2021-01-07 09:22:43 +00:00
Clara Hobbs 381ebeab13
Add Moog Grandmother midnam
Contains all the CCs from the documentation for firmware version 1.1.3.
2021-01-06 18:44:41 +01:00
Martin Vlk e84cec0842
Fix "R/L". 2021-01-06 18:40:45 +01:00
Martin Vlk 1f96f95e65
Fix "Manual". 2021-01-06 18:40:45 +01:00
Damien Zammit cbd0ba90c6 pt import: Fix two warnings from valgrind
- Remove uninitialised unused variable
- Remove jump condition on uninitialised variable
2021-01-06 11:30:12 +11:00
Robin Gareus a3df0523b5
Fix crash when requesting disk/in monitoring of busses
e.g. select the master-bus, use  "D" or "I" keyboard shortcuts
in the mixer window.
2021-01-05 23:35:55 +01:00
Robin Gareus 026069047d
Really don't strip NSS libs for OSX bundles 2021-01-04 06:11:10 +01:00
Robin Gareus e255202c84
Fix shell syntax in previous commit 2021-01-04 05:44:52 +01:00
Robin Gareus b934663c26
Tweak OSX packaging, don't strip NSS libs
This fixes i386 optimized builds:

```
dyld: Symbol not found: _PL_CompareValues
  Referenced from: /Volumes/Ardour-6.5.86/Ardour6.app/Contents/MacOS/../lib/libnssutil3.dylib
  Expected in: /Volumes/Ardour-6.5.86/Ardour6.app/Contents/MacOS/../lib/libplds4.dylib
 in /Volumes/Ardour-6.5.86/Ardour6.app/Contents/MacOS/../lib/libnssutil3.dylib
```
2021-01-04 05:16:45 +01:00
Paul Davis 20bdc394f4 remove debug output unintentionally committed in 14318dd34 2021-01-03 18:17:14 -07:00
Paul Davis 7c27f617dc use bold font for major (bar) marks in BBT ruler to heighten contrast 2021-01-03 17:14:35 -07:00
Paul Davis 14318dd342 use larger font for bars on BBT ruler 2021-01-03 16:50:18 -07:00
Paul Davis 20029ec7e6 canvas/ruler: provide option for a second font to be used for "major" marks 2021-01-03 16:50:18 -07:00
Robin Gareus d92d707180
Extend plugin parameter Lua bindings 2021-01-03 17:24:21 +01:00
Robin Gareus caf55e105e
Dynamically load Dr.Mingw
This improves compatibility with older systems, notably 32bit WinXP.
2021-01-02 23:19:40 +01:00
Robin Gareus 9ff3dc8251
NO-OP: cleanup API, reorder and re-indent code 2021-01-02 16:48:59 +01:00
Robin Gareus cd72bbb2d4
Make AVX/FMA support optional
Older compilers do not yet have fmaintrin.h. This fixes compile errors:
```
x86_functions_fma.cc:51:39: error: '_mm_fmadd_ss' was not declared in this scope
x86_functions_fma.cc:85:35: error: '_mm256_fmadd_ps' was not declared in this scope
x86_functions_fma.cc:106:35: error: '_mm256_fmadd_ps' was not declared in this scope
x86_functions_fma.cc:129:39: error: '_mm_fmadd_ss' was not declared in this scope
```
2021-01-02 16:41:43 +01:00
Ayan Shafqat c856a862af
Add unit test for FMA extension routine 2021-01-01 21:08:06 +01:00
Ayan Shafqat 407882d23d
Add support for Intel/AMD's FMA extension
By supporting FMA extension, the number of instruction needed
for multiply accumulate to mix channels are reduced. Since,
this extension has been around since middle of 2012, more
computers have this instruction set available.
2021-01-01 21:05:16 +01:00
Robin Gareus f188a1ad10
Bump (C) for a hopefully happier new year 2021-01-01 13:18:43 +01:00
John Emmas bf50535d69 To keep MSVC happy, clarify which overloaded version of 'floor()' to call 2020-12-31 16:13:51 +00:00
John Emmas 631b39e803 Add/remove source(s) in our MSVC project (gtk2_ardour) 2020-12-31 16:11:47 +00:00
Robin Gareus 4a9a4bf3de
VST3: pre-allocate AudioBusBuffers
This also reverts 768d8362cd since it causes crashes
with various plugins (eg. surge.vst3).

Ardour now provides AudioBusBuffers for all audio I/O busses,
regardless of Ardour using those busses.

This fixes crashes of plugins that ignore ProcessData::numInputs
or ProcessData::numOutputs. Those plugins are expected to check
numChannels and channelBuffers for those excess channels, which are
0, NULL for unused busses.

ProcessData numInputs, numOutputs does correctly reflect actual
busses that are in-use (at most one main and one aux for each direction).
2020-12-30 21:25:03 +01:00