13
0
Commit Graph

14957 Commits

Author SHA1 Message Date
215bc64455
Another windows build fix, declare LuaDialog::ProgressWindow 2019-09-02 21:20:06 +02:00
8ce9ac82ae
Fix windows build linking, declare bindings 2019-09-02 15:45:48 +02:00
c548333728
Fix pyin build, needs VAMPSDK 2019-09-02 05:44:00 +02:00
6edb649b53
Allow to cancel LuaAPI::Vamp::analyze 2019-09-02 05:18:17 +02:00
63994f3b82
Include vamp-pyin
In preparation for captainMorgan's pitch analysis script.
2019-09-02 03:12:22 +02:00
1c8b6e1b42
Initialize uninitialized variables
If a session with a feedback loop is loaded, Graph::rechain()
is never called, and _n_terminal_nodes[] remains unset.
2019-09-01 20:13:59 +02:00
45cf29b7c5
Use preferred pa_context_new_with_proplist API 2019-09-01 19:01:18 +02:00
7b3ca486a4
Allow to un-set custom Ardour-button colors 2019-09-01 16:57:48 +02:00
46bbe83400
Changing active-state needs no color lookup
Colors and patterns are cached, independent of active-state.
This didn't used to be the case in the distant ArdourButton past.
2019-09-01 16:52:24 +02:00
08644d8f2a
No-OP: move doxygen doc into header files 2019-08-29 17:57:22 +02:00
7f2bfa362f
Cont'd icon tweaks
* unify line-width calculation
* thin line-width, approximate thickness of
  glyph stroke width at same UI scale
* don't use outlines (except main tool buttons)
  This fixes issues of generic buttons with bright-theme
* pixel align some lines
2019-08-27 18:03:57 +02:00
79ac8215e9
Update Plugin-Tag policy
* Don't store tags from plugin's own metadata
  Those are set during plugin-scan every time
* Save user-tags even if they're not new
* Reset tags to factory-file tag (if any)

Old user tag files (prior to this commit) are interpreted
as "factory-file". This will auto-correct after the
first save_tags().
2019-08-27 13:43:09 +02:00
37caa11b52
NO-OP: whitespace 2019-08-27 13:22:53 +02:00
5a7659fbdb
Resetting a tag implies changing it 2019-08-27 12:18:44 +02:00
220fa45d35 Add signal for foldback send add or remove 2019-08-26 17:48:22 -07:00
b01f6ead8b
Reduce girth of "plus" icon 2019-08-27 00:00:29 +02:00
b4addaaa0a
Tweak icon_strip_width icon lines to align to pixels 2019-08-26 23:34:20 +02:00
2dbeaaffa6
Add sample-rate as float option parameter for LV2 plugins and UIs 2019-08-26 23:30:21 +02:00
5e46108e95
Fix LV2 option size 2019-08-26 23:12:46 +02:00
646aded4f2
Add some scaleable "Latency" icon 2019-08-26 22:44:11 +02:00
80e30ea0d1
LV2 options for UI theme
Inform plugins about host theme (fg, bg colors) and UI scale-factor.
The latter follows an implementation already present in Carla and DPF.
These extension use proposed official URLs.
2019-08-26 18:57:47 +02:00
09a71b4392
Allow Icon + Text on ArdourButton
Allow placing an icon left of some text in Ardour-button.
This also tweaks some spacing and alignment of Icons when
a LED toggle indicator is used.
2019-08-26 16:04:22 +02:00
e6e407f573
Tweak icon line widths
Scale line-width of all icons, some were left at 1px regardless
of scaling factor.
2019-08-26 16:01:19 +02:00
9ce5184993
NO-OP: comment 2019-08-24 17:11:22 +02:00
89f0e70b82
Fix memory-leak in case of Vamp plugin setup error 2019-08-24 03:31:49 +02:00
1ea3435de6
Add missing Lua bindings for function arguments
PortEngine was accidentally removed in 1339d42c78
2019-08-24 03:31:45 +02:00
02cc959d93
Add missing headers for lua-doc 2019-08-24 01:35:38 +02:00
9c785749ba
Lua binding to change region name 2019-08-24 01:35:14 +02:00
69688d24c4
Another fix for input only ALSA-slave devices 2019-08-24 00:15:10 +02:00
f7968f15dd
LCXL: Fix uninitialized pointer function
See also 026b74e25d. FilterFunction must point to a valid function.
2019-08-24 00:01:28 +02:00
000d331ea1
NO-OP: cleanup
* remove unused code
* replace "default" to check for switch() enum completeness
2019-08-23 15:50:26 +02:00
f1c29a9324
Re-order enum, use "NoIcon" as sentinel 2019-08-23 15:49:25 +02:00
9836bd786f
Some hints for clang static analysis 2019-08-23 05:15:17 +02:00
e5927d689c
Fix for half-duplex ALSA-slave devices 2019-08-23 04:39:51 +02:00
8fadf44978
Fix possible segfault when ALSA MIDI port registration fails 2019-08-23 04:39:12 +02:00
d52cf0f739
Tweak graph display, check direct sends
->feeds() follows connections "track -> master -> monitor"
(to detect feedback). Use direct_feeds_according_to_reality()
to correctly show sends-only.
2019-08-23 02:12:47 +02:00
b858b3b692
Detect monitor-send by instance, not name 2019-08-23 01:05:57 +02:00
a0d53b81b9
Update plugin-ui related icons 2019-08-22 21:03:07 +02:00
026b74e25d
Fix potential call of uninitialized pointer function
_template_number can be set via sysex to an arbitrary number, this
can lead to calling a filter-function at an undefined address, usually
a segfault.
2019-08-21 03:53:46 +02:00
c38c91ddbd
Initialize variable, fix branch condition 2019-08-21 03:09:32 +02:00
e6c9bcfd07
Prefer to use API defined return status 2019-08-21 03:06:28 +02:00
df60eca33c
Initialize uninitialized variable
This fixes a potentially undefined branch if the USB device list is empty.
dev is NULL, the loop is never entered, 'r' isn't set.
if (!dev && !r) is undefined.
2019-08-21 03:05:17 +02:00
dfa93e0b17
Tweak Ardourbutton: support (VectorIcon | Indicator) 2019-08-21 01:25:34 +02:00
1d8a6076ab
Add more vector-icons, plugin toolbar related
This allows to replace "Add", "Save", "Delete", "Reset", "Bypass"
text with icons.
2019-08-21 01:24:49 +02:00
2d4eb7d505
Replace OOM segfault with abort :) 2019-08-20 05:07:16 +02:00
3ccaaf1ea5
There's always a previous tempo/meter section 2019-08-20 04:53:00 +02:00
114b5088c7
There is always at least a tempo and meter section 2019-08-20 04:29:06 +02:00
6227dd5b04
Shuttle Surface: Fix uninitialized argument in case of incomplete state 2019-08-20 04:18:43 +02:00
f5330d763a
NO-OP: whitespace 2019-08-20 04:15:11 +02:00
73d0b6894a
Skip invalid plugin-tag spec 2019-08-20 04:15:01 +02:00
bb27d10fd4
Fix potential ambiguous state-restore
Don't allow uninitialized argument values in case of corrupt XML
state.
2019-08-20 04:11:32 +02:00
05e0cc4035
Fix prev commit, state-restore of plugins 2019-08-20 02:06:55 +02:00
031847f88e
LV2 extension to override strict-i/o per plugin
This allows mono to stereo plugins to override the default
routing and forces both outputs to be connected.
2019-08-19 23:28:04 +02:00
531fa74eb1
Suffix complete hw: ID to make ALSA card names unique 2019-08-16 20:00:29 +02:00
ae2b6e6b09
Further tweaks to .pending file removal
* only delete it after successful save
* show unlink notification in debug-builds
2019-08-16 05:31:50 +02:00
6dc8f5ed1d
Fix periodic backup saves
Retain ".pending" files until explicit save or session destruction.
Previously every transport-stop deleted them :(
2019-08-16 01:54:21 +02:00
c89e58046a
Fix C++98 compat 2019-08-16 01:51:51 +02:00
316880b9cf
Don't print usage to stdout for invalid parameters 2019-08-15 01:09:26 +02:00
f8e3a1cdcd
Fix transient removal -- #7785
Incorrect iterators were used for user-transients.
2019-08-13 00:41:09 +02:00
ffbf40c3d1
Add PBD API to hard-link files 2019-08-12 16:41:25 +02:00
c0f0acaa9f
Allow export get_path() without format
This is in preparation for post-export screenshots:
A possibility to get a file-path, independent of the format.
2019-08-12 15:44:16 +02:00
98c55a30c1
NO-OP: whitespace 2019-08-12 15:39:28 +02:00
24ff4adaf9
NO-OP: mark private variables, remove cruft 2019-08-12 15:35:20 +02:00
6dcf7a4d92
Initialize some more uninitialized variables 2019-08-12 15:18:00 +02:00
98c65406e3
Prefer std::vector<> over C-style malloc/free**
This fixes a potential out of bounds read `if (_dbtp_plugin[c])`
if c is larger than the allocated channel count.
2019-08-12 15:02:24 +02:00
65dcc8fa30
Initialize variable 2019-08-12 14:34:17 +02:00
807061f96f
Add Lua bindings for convenient Glib methods 2019-08-12 01:00:42 +02:00
f08b90f368
Fix auto capture alignment when bouncing metronome 2019-08-11 20:39:39 +02:00
246cc74f9b
Add types/enum for screensaver mode 2019-08-11 20:39:39 +02:00
defbe7d371 ptformat: Update to upstream 8d29d79 (drop fades && fix offsets) 2019-08-10 12:34:45 +10:00
7020c40fc4
NO-OP: Fix compiler warning (-Wreturn-type) 2019-08-07 17:40:23 +02:00
3243bf591c
Add method to graphviz plot the process-graph 2019-08-07 17:40:23 +02:00
a5828ba472 foldback may be mono don't set panner type 2019-08-06 11:13:30 -07:00
df2917568d OSC: foldback buses should be able to be mono 2019-08-06 11:12:19 -07:00
4dc684275f
Amend 183d3fb49; implement ImportableSource API 2019-08-04 14:43:46 +02:00
183d3fb493
Implement missing required virtual fn -- fix Mac builds 2019-08-04 01:37:36 +02:00
365f6d6337
Update plugins/addons GPL boilerplate and (C) from git log 2019-08-03 15:53:18 +02:00
dbd8d491e5
Update utility and tools GPL boilerplate and (C) from git log 2019-08-03 15:53:17 +02:00
0301c47f6b
Update core library GPL boilerplate and (C) from git log 2019-08-03 15:53:17 +02:00
cec5ce8f45
Update canvas/UI lib GPL boilerplate and (C) from git log 2019-08-03 15:53:17 +02:00
c1bd70d8b0
Update audiographer GPL boilerplate and (C) from git log 2019-08-03 15:53:16 +02:00
47a62b2850
Update backend GPL boilerplate and (C) from git log 2019-08-03 15:53:16 +02:00
a22f918d9d
Update libardour GPL boilerplate and (C) from git log 2019-08-03 15:53:16 +02:00
71d4dd821c
Fix CD cue file Index positions -- #7780
According to the cdrdao man page, they should be defined as follows:
  INDEX MM:SS:FF
   Increments the index number at given position within the track.
   The first statement will increment from 1 to 2. The position is
   relative to the real track start, not counting an existing pre-gap.
2019-08-02 02:43:43 +02:00
4e87751ab8 prefer lowercase and no spaces, since this will appear in the filename. 2019-08-01 12:11:31 -05:00
3a2e06f36b (Source List) Catch new sources created by bounce-range-to-source-list 2019-08-01 12:11:31 -05:00
50786b3e5c (Source List) Recover Regions feature: WIP 2019-08-01 12:11:31 -05:00
ed325b52b2 (Source List) Add forall_regions function, used by Region and Source lists. 2019-08-01 12:11:31 -05:00
0b699ac9f7 (Source List) merge fixes 2019-08-01 12:11:31 -05:00
edde5d64a2 (Source List) Clean up the natural_position implementation (libardour part). 2019-08-01 12:11:31 -05:00
be7ebbb7ba (Source List) RegionFactory should return an empty region here. 2019-08-01 12:11:31 -05:00
6c052348b5 (Source List) Region Tags (libardour part)
Rough-in: Region-Tags.

More correct implementation of tags property (libardour).

Region Tags (libardour part)
2019-08-01 12:11:31 -05:00
3e6ce20fd7 (Source List) Region List rewrite (libardour part) 2019-08-01 12:11:31 -05:00
ca3c191d7c (Source List) Source property signals (libardour part) 2019-08-01 12:11:31 -05:00
949450bbb5 (Source List) Take-ID: new (working) implementation. 2019-08-01 12:11:31 -05:00
4a52a9b3b0
Fix C++11 NSDMI 2019-07-31 04:48:52 +02:00
8dbbc19567
Update MIDI Event precedence
A patch-change that is concurrent with a note-on event should be sent
before the given Note-on event.

As follow up: CCs also need to be prioritize to send bank-select first.

see also https://discourse.ardour.org/t/midi-strangeness-patch-setting-and-first-notes/101415
2019-07-30 21:17:15 +02:00
bf5da033dc Another try at fixing our 'spinlock_t' compatibility 2019-07-29 16:56:45 +01:00
82bdb48dab
Partially undo 6d4b94df13 for MSVC and C++98 compat 2019-07-29 04:45:29 +02:00
7b92f54929
Fix random off-by-one issue when vertically zooming a waveform
To mitigate concurrent rendering, the waveform cache adds a random
range of pixels centered around the visible waveform.

Alignment is using integer half_width = width_samples / 2;
This always aligns the left-edge to the left-most cairo-pixel.

This fixes an issue with moving moiree patterns in waveforms when
zooming vertically (which invalidates the cache and uses a
different random number of pixels),
2019-07-29 03:56:35 +02:00
a582b24fcd
Fix rendering of region waveform left-edge
The left-most part may be a partial block of a given "sample per pixel"
range. Also previously there was an off-by-one [block] in case
sample_pos was an even multiple of samples_per_visual_peak.
2019-07-29 03:48:52 +02:00
a176efee02
NO-OP: whitespace 2019-07-29 03:29:36 +02:00
6d4b94df13
Reduce compiler warnings when boost uses std-atomics
This works around for compilers with non-static-data-member
initialization.

spinlock_t is-a struct { lockType _; } and BOOST_DETAIL_SPINLOCK_INIT
initializes the first member of the struct.
All defines of BOOST_DETAIL_SPINLOCK_INIT include c-style curly braces
to initialize the struct's data member.

However, modern C++ compiler interpret the braces differently resulting
in copy constriction of the initializer.
2019-07-28 20:10:09 +02:00
684b364a8a
Yet another spinlock init hack for g++8 std::atomics
Perhaps we should rather implement this ourselves,
using <boost/atomic.hpp>
2019-07-28 18:39:26 +02:00
63fee3b0c8
Prevent spinlock copy construction 2019-07-28 15:02:04 +02:00
d00650c2fd
Another attempt at improving spinlock init 2019-07-28 15:01:40 +02:00
d382b756c2
Follow up d8ae3fd
Depending on implementation, d8ae3fd may only construct the spinlock
once to `sl_init`. Later it is only copy-constructed and that leads to
compile and/or runtmime errors.

e.g. gcc-8.3 fails to compile
error: use of deleted function ‘boost::detail::spinlock::spinlock(const boost::detail::spinlock&)’
2019-07-28 14:57:51 +02:00
d8ae3fd3a6 MSVC requires an already initialized object to initialize our boost::detail::spinlock (rather than the simpler #define)
Hopefully this'll work for the other builds too.
2019-07-27 12:31:15 +01:00
8a8468c5f1
Correctly initialize spintlock_t
Depending on underlying implementation, boost::detail::spinlock
needs to be explicitly initialized
2019-07-26 21:40:39 +02:00
8a969b56c9
PA-backend: Flush buffer and wake up main thread at stop 2019-07-26 21:38:40 +02:00
78fc6d6651
Prefix all env variable with "ARDOUR_"
In particular "CONCURRENCY" can be problematic. But in general
it's good practice to use a namespace prefix for app-specifics.
2019-07-26 16:44:29 +02:00
b759fb883e
Launch pavucontrol as PA's control app 2019-07-26 04:43:56 +02:00
7cf68eaf72
Fix time_t <> long int ambiguity (OSX gcc builds)
This fixes an issue with
* XMLNode::get_property(const char*, T&)
* XMLNode::set_property(const char*, const T&)
resulting in
 string_convert.h:77: error: 'long int' is not a class,
 struct, or union type
2019-07-26 01:58:18 +02:00
d7454714ab
Fix PA: unlock mainloop on abort 2019-07-25 21:24:36 +02:00
384c97e12d
Puls der Zeit
Prototype a basic stereo-playback only pulseaudio backend.
2019-07-25 17:49:42 +02:00
771f2d2499
ALSA backend: fix play/capture device param detection 2019-07-24 16:40:40 +02:00
0fe3cba8b1
Fix ALSA available buffersize detection:
buffer-size = periods * period-size

Previously, buffersize was used for period-size.

This fixes an issue with a dedicated .asoundrc configuring a specific
period-size or buffer-size that has to be exact.
Ardour's device configuration failed in this case.

This has not been an issues since most hardware devices offer a wide
range: 8 < period-size < 262144 ; 16 < buffer-size < 524288.
Only a subset of which (32 .8192) is allowed by Ardour.
2019-07-24 16:40:32 +02:00
Nikolaus Gullotta
7d4f72174c Location timestamp changes - can now sort by location creation date: lib ardour part 2019-07-22 15:47:01 -05:00
b5a50821fc 'ARDOUR::LuaScripting::Sorter()' needs to be exportable (since it gets used outside of libardour) 2019-07-19 15:40:06 +01:00
6f506962a7 Revert "fix use of session-creation via template, when just template name is given"
This reverts commit ce7add1481.
2019-07-18 13:38:43 -06:00
ce7add1481 fix use of session-creation via template, when just template name is given 2019-07-18 12:27:16 -06:00
9748656a90
Sort Lua scripts case-insensitive and expose sort-struct 2019-07-18 15:52:29 +02:00
8d98dfe8fc
Remove debug output 2019-07-18 15:52:25 +02:00
214a92fcd5
Add Lua bindings to query&reset x-run count 2019-07-18 05:22:17 +02:00
45f1220aa5
Fix deadlock when removing routes (initialization issues)
_setup_chain needs to point to the unused graph-chain, and not
_current_chain. Otherwise Graph::clear_other_chain() waits forever.
2019-07-15 00:55:51 +02:00
c6740b7cb0
Prevent adding a 2nd MIDI input/output port
Ardour's Tracks/Routes are not capable of handing more than one
MIDI port per per route properly. Most Plugin standards don't support
this either.

However, at this point in time IO::ensure_ports_locked() is not
limited by this restriction!

It is still possible to indirectly add a 2nd MIDI data-buffer
and output-port via plugin pin-management, or simply plugins with
two MIDI output ports when using flexible I/O.
2019-07-11 22:57:34 +02:00
b7369f421f
Re-work process-graph to use lock-free queues
This removes the trigger_mutex which was used for exclusive access
of the work-queue for concurrent processing.
2019-07-10 20:39:27 +02:00
929ecf622b
Add lock-free multiple producer multiple reader queue 2019-07-10 20:21:06 +02:00
57c3eaacf6
Fix process-thread naming 2019-07-10 20:20:44 +02:00
e85c10256b
Add Lua binding to set/create track playlists 2019-07-06 18:09:27 +02:00
e76e18af96
Use exit-status macros for compatibility 2/3 2019-07-04 22:21:35 +02:00
9cfcb0bd92
Mixbus uses K14 (not K20) master meter by default (see also 297ed001d) 2019-07-02 20:18:26 +02:00
db2ed6ade5
Remove unused API -- there is no default backend. 2019-07-02 20:16:56 +02:00
297ed001d0
Mixbus/master is always using K20 by default
This only affects the meter-bridge, toolbar and editor track-header
(Mixbus' mixer is always using DPM, which is always enabled).
2019-07-02 16:12:06 +02:00
3630113414
LV2 support is not optional since 04ccd328dc 2019-06-24 21:52:27 +02:00
a3f8449595 Update to upstream ptformat 777686b (remove strndup && cleanup) 2019-06-24 22:54:45 +10:00
0a62d70a43 Revert "Huh?? I can't believe that MSVC doesn't support strndup() !!!"
This reverts commit 1a7a23a5ce.
2019-06-24 22:52:46 +10:00
1a7a23a5ce Huh?? I can't believe that MSVC doesn't support strndup() !!! 2019-06-23 15:52:59 +01:00
675759c167 Update references to ptfformat -> ptformat && fix api calls 2019-06-22 17:26:05 +10:00
f5524ddf37 ptformat: Update lib from legacy parser to new parser 6240b87 2019-06-22 17:26:05 +10:00
Johannes Mueller
9ddc47204a Some more frame -> sample changes (luabindings.cc) 2019-06-16 01:28:38 +02:00
43fe5c0487
Update Push2 level-meter display (use new API)
The meter-type is now implicit set by route/meter-processor, common
to all UIs.
2019-06-09 19:56:33 +02:00
cd5b0819bf
Consolidate meter-type state and API
In theory different UIs can show different meter-types, so it
can make sense to maintain the type in different places.
MeterType is a bit-set and PeakMeter implementation provides for this.

However, this is not being used, and the current implementation
was rather fragmented, cross-connected signals to keep types in sync,
allowed inconsistent meter-types in GUI and backend.

MeterType is now kept by meter itself, however it is still
saved/restored as part of the Route state.

N.B. This change breaks the API, various methods have been renamed
for consistency.
2019-06-09 19:56:15 +02:00
fb2e65fd35 do not set MIDI CC values on locate if control/parameter is set to "Off" 2019-06-05 10:02:39 -06:00
2c88055ef4 NOOP: whitespace/newline tweak 2019-06-05 10:02:39 -06:00
34b671911c
Skip name-suffix for first ALSA sub-device
This fixes an issue when a device has more than one
playback sub-device, but only a single capture sub-device (or vice
versa).
2019-06-04 19:20:26 +02:00
3e4f2d0f7a
Fix async peak-meter reset 2019-06-04 14:48:47 +02:00
dba3ff5236
Assume default plugin bussing is stereo
This changes fan-out to prefer stereo tarcks unless specified otherwise
by a plugin (LV2 port-groups, or AU busses)
2019-06-03 16:28:10 +02:00
f777d8389d
List available ALSA sub-devices
Previously Ardour only listed the first audio sub-device in the
for ALSA and JACK backend device selection dialog.
2019-06-01 15:49:46 +02:00
Johannes Mueller
af875e0edc Potential fix for a race.
Do proper bounds checks and force the use of operator[] () const
2019-05-30 17:33:36 +02:00