Robin Gareus [Wed, 10 Aug 2016 01:12:11 +0000 (03:12 +0200)]
prefix no-inst script with an underscore and skip install
Robin Gareus [Wed, 10 Aug 2016 01:11:49 +0000 (03:11 +0200)]
prefix blessed scripted DSP plugins with a-*
Robin Gareus [Tue, 9 Aug 2016 20:13:59 +0000 (22:13 +0200)]
merge source-defaults into system-config file
(generated by ./arcfg)
Robin Gareus [Tue, 9 Aug 2016 20:00:29 +0000 (22:00 +0200)]
clean up plugin ttls - always add semicolon for compatibility
nick_m [Tue, 9 Aug 2016 17:16:49 +0000 (03:16 +1000)]
Fix test compilation error.
nick_m [Tue, 9 Aug 2016 15:56:55 +0000 (01:56 +1000)]
BBTTest::addTest() should add a meter rather than replacing the first one.
nick_m [Tue, 9 Aug 2016 15:46:05 +0000 (01:46 +1000)]
Make tempo tests use the api more correctly.
- TempoMap initially contains a tempo and meter.
using add_tempo/meter() using the position of an
existing section does the right thing, but prints a warning.
Use replace_tempo/meter().
nick_m [Tue, 9 Aug 2016 14:48:53 +0000 (00:48 +1000)]
Allow -ve framepos handling in TempoMap::framepos_plus_beats()
- also handles frame positions previous to the initial
meter (beat_at_frame() would return 0 in this case).
Paul Davis [Tue, 9 Aug 2016 00:24:46 +0000 (20:24 -0400)]
add plural forms for pt to gtk2_ardour/po/pt.po
Paul Davis [Tue, 9 Aug 2016 00:20:45 +0000 (20:20 -0400)]
(updated) pt(_BR) update for gtk2_ardour from Marcelo Teles
Paul Davis [Tue, 9 Aug 2016 00:19:55 +0000 (20:19 -0400)]
Revert "pt(_BR) update for gtk2_ardour from Marcelo Teles"
This reverts commit
cf08eaa32d0d7b17f44cec616f3c9bb0430ba19c.
Paul Davis [Tue, 9 Aug 2016 00:12:47 +0000 (20:12 -0400)]
updated russian translation from Alexandre Prokoudine
Paul Davis [Mon, 8 Aug 2016 21:59:11 +0000 (17:59 -0400)]
fix definition of PrimaryModifier for Keyboard for OS X
Paul Davis [Mon, 8 Aug 2016 21:47:02 +0000 (17:47 -0400)]
fix display of modifiers on OS X in the bindings editor
Paul Davis [Mon, 8 Aug 2016 21:20:59 +0000 (17:20 -0400)]
fix thinko that causes near duplicate menu items in group context menu when not in group tabs
Paul Davis [Mon, 8 Aug 2016 17:51:20 +0000 (13:51 -0400)]
fix bug when appdata.pot file cannot be regenerated
Julien "_FrnchFrgg_" RIVAUD [Mon, 8 Aug 2016 14:33:29 +0000 (16:33 +0200)]
GenericUI: better popup placement for automation mode
Julien "_FrnchFrgg_" RIVAUD [Mon, 8 Aug 2016 13:35:19 +0000 (15:35 +0200)]
Move anchored menu placement strategy to Gtkmm2ext utils
So that it can be used by others.
Paul Davis [Mon, 8 Aug 2016 13:26:50 +0000 (09:26 -0400)]
fix race condition when dropping Ports
Jack2 calls back from a notification thread and the callback (PortManager::connect_callback())
could end up holding the final reference on 1 or more ports. The ports would then be
unregistered as we leave the callback scope, which is illegal (no server calls from
a notification thread)
Paul Davis [Mon, 8 Aug 2016 12:26:58 +0000 (08:26 -0400)]
add explanatory comment
Robin Gareus [Sun, 7 Aug 2016 18:29:12 +0000 (20:29 +0200)]
fix typo
Julien "_FrnchFrgg_" RIVAUD [Sun, 7 Aug 2016 17:44:54 +0000 (19:44 +0200)]
Make ArdourDisplay a subclass of ArdourDropdown
Julien "_FrnchFrgg_" RIVAUD [Sun, 7 Aug 2016 16:50:17 +0000 (18:50 +0200)]
Remove the space for checks/radios/icons in dropdowns
Julien "_FrnchFrgg_" RIVAUD [Sun, 7 Aug 2016 16:43:39 +0000 (18:43 +0200)]
Make Dropdown menus at least as wide as the button
Julien "_FrnchFrgg_" RIVAUD [Sun, 7 Aug 2016 15:20:43 +0000 (17:20 +0200)]
Improve placement of Dropdown popups.
When an item in the menu corresponds to the currently displayed choice,
vertically align the item with the button on menu popup.
Julien "_FrnchFrgg_" RIVAUD [Sun, 7 Aug 2016 14:17:39 +0000 (16:17 +0200)]
Use a C++ bool constant
Julien "_FrnchFrgg_" RIVAUD [Sun, 7 Aug 2016 14:14:59 +0000 (16:14 +0200)]
Improve ArdourDropdown menu position
Julien "_FrnchFrgg_" RIVAUD [Sun, 7 Aug 2016 08:00:26 +0000 (10:00 +0200)]
Remove a no longer true comment
It should have been removed as part of
539c062ed23daf308e650b5d1039384ac5a55666
(Make the configuration penalty subtler about inputs).
Robin Gareus [Sat, 6 Aug 2016 20:14:24 +0000 (22:14 +0200)]
add a script to multi-split regions
Robin Gareus [Sat, 6 Aug 2016 20:12:39 +0000 (22:12 +0200)]
a few more Location related lua bindings
Julien "_FrnchFrgg_" RIVAUD [Thu, 4 Aug 2016 16:03:24 +0000 (18:03 +0200)]
Use a default configuration instead of bailing out
If the script doesn't provide a dsp_ioconfig() function, or if it does
not return a table of tables, provide an empty table of table as
default, which means a single configuration with default values.
Julien "_FrnchFrgg_" RIVAUD [Thu, 4 Aug 2016 15:47:38 +0000 (17:47 +0200)]
Remove dsp_has_midi_*() in favor of dsp_ioconfig()
_has_midi_*put members of LuaProc will be set according to the actual
configuration chosen, for configure_io() and run() to use.
Julien "_FrnchFrgg_" RIVAUD [Thu, 4 Aug 2016 11:01:28 +0000 (13:01 +0200)]
Refuse more configs with unmatched midi in if !imprecise
Since MIDI in should be
Julien "_FrnchFrgg_" RIVAUD [Thu, 4 Aug 2016 10:29:19 +0000 (12:29 +0200)]
Take midi into account for penalty computation
Demote configurations if they have mismatched midi in or out with the
same mechanism as for audio, but with lower coefficients so that
mismatched midi has less influence than mismatched audio in selecting
the best configuration.
POLICY CHANGE.
Julien "_FrnchFrgg_" RIVAUD [Thu, 4 Aug 2016 08:11:21 +0000 (10:11 +0200)]
Remove ad-hoc handling of possible_out == 0
Just refuse configurations without any output at all, and let the
remaining logic take care of selecting configurations with no audio
output if they make sense and there are no better configurations.
POLICY CHANGE: configurations with no output might now be considered
even if they have audio inputs (e.g. a pure pitch detector without audio
passthrough), whereas they were skipped before.
Julien "_FrnchFrgg_" RIVAUD [Thu, 4 Aug 2016 07:45:33 +0000 (09:45 +0200)]
Make the configuration penalty subtler about inputs
Instead of uniformly demote configurations with a non-matching audio
input count (using a penalty offset of 1000), also grade the
impreciseness of the configuration so that those with the nearest input
count are preferred. As for outputs, give a slightly higher handicap to
configuration with too many inputs with regard to the actual audio
inputs that can be fed to the plugin.
POLICY CHANGE: when only imprecise configurations are found the actually
selected one can be different (better) than before this commit.
Julien "_FrnchFrgg_" RIVAUD [Wed, 3 Aug 2016 21:28:09 +0000 (23:28 +0200)]
Remove ad-hoc handling of possible_in == 0
Just make the code responsible for possible_in > 0 also handle
possible_in == 0 since it nearly does the same thing.
The only difference is that the possible_in == 0 case didn't check at
all for audio_in, essentially acting as if possible_in was audio_in.
There is thus a small POLICY CHANGE, but the selected configuration will
stay the same unless a better matching configuration is available.
Julien "_FrnchFrgg_" RIVAUD [Thu, 4 Aug 2016 07:40:16 +0000 (09:40 +0200)]
Change column width in macros
Julien "_FrnchFrgg_" RIVAUD [Wed, 3 Aug 2016 15:18:22 +0000 (17:18 +0200)]
Set \midi_out when selecting a configuration...
...instead of at the very beginning, so that it can depend on the loop
iteration.
Julien "_FrnchFrgg_" RIVAUD [Wed, 3 Aug 2016 14:28:08 +0000 (16:28 +0200)]
Merge pass 2 (imprecise) into pass 1
Still no policy change, since when a configuration is chosen that would
have belonged to the second pass, then its penalty will be increased by
1000 and it will be selected only as last recourse.
Julien "_FrnchFrgg_" RIVAUD [Wed, 3 Aug 2016 10:14:12 +0000 (12:14 +0200)]
Move MIDI filters imprecise handling from 2nd pass to 1st
This doesn't change the policy since configurations are given an
additional 1000 penalty if audio_in != possible_in, and will thus be
trumped by any "precise" configuration (unless the latter has 1000
excess or missing outputs which should be less than likely).
Julien "_FrnchFrgg_" RIVAUD [Wed, 3 Aug 2016 10:08:01 +0000 (12:08 +0200)]
Rearrange condition for pure midi plugins
Julien "_FrnchFrgg_" RIVAUD [Tue, 2 Aug 2016 16:20:42 +0000 (18:20 +0200)]
Use FOUNDCFG* instead of setting the configuration by hand
Julien "_FrnchFrgg_" RIVAUD [Tue, 2 Aug 2016 19:28:22 +0000 (21:28 +0200)]
Enable overriding the configuration penalty
This is useful for exact matches that would otherwise need to duplicate
the bookeeping done by FOUNDCFG()
Julien "_FrnchFrgg_" RIVAUD [Tue, 2 Aug 2016 15:47:14 +0000 (17:47 +0200)]
Introduce a macro for imprecise configurations
It enables only setting the imprecise audio channel count if the
configuration is indeed selected.
Julien "_FrnchFrgg_" RIVAUD [Tue, 2 Aug 2016 12:25:46 +0000 (14:25 +0200)]
Set \imprecise midi channel count in FOUNDCFG
So that it can depend on the actual configuration selected.
Julien "_FrnchFrgg_" RIVAUD [Tue, 2 Aug 2016 11:41:29 +0000 (13:41 +0200)]
Set \imprecise when a configuration is chosen
Instead of setting \imprecise at the end of the loop if a configuration
was found (which clobbered valuable information, see
dae2406187), set it
each time a new configuration is chosen.
In the second loop that tries harder, resetting \imprecise also avoids a
previous "imprecise->set(AUDIO, 0)" to last even if another
configuration is chosen later.
Last but not least, it will enable correctly setting the midi input
count hoped for by the configuration.
Julien "_FrnchFrgg_" RIVAUD [Mon, 1 Aug 2016 21:21:33 +0000 (23:21 +0200)]
Merge some cases to avoid duplicated logic
Merge the cases in == -1 and in == -2 since those are both wildcards,
almost symmetric in the AU spec, and handled completely symmetrically by
the code here considering it accepts invalid or unspecified demands.
Also merge the cases in > 0 and in < -2 since they are handled exactly
the same as far as outputs are concerned.
Julien "_FrnchFrgg_" RIVAUD [Mon, 1 Aug 2016 19:57:39 +0000 (21:57 +0200)]
Remove code with no actual effect
That code modifies \imprecise if it is not NULL, but
- if a configuration is found, \imprecise will be set to in, clobbering
the tentative changes done here;
- if a configuration is not found, a last-resort loop will be run that
will set the same member of \imprecise, also clobbering our changes.
Remove it since it does nothing that is looked at before being
forgotten. A way to get the intended outcome will be introduced later.
Julien "_FrnchFrgg_" RIVAUD [Mon, 1 Aug 2016 13:01:44 +0000 (15:01 +0200)]
Move a MIDI test in the table handling loop...
...to later enable that condition truthiness to depend on the
loop iteration. The goal here is to prepare for the upcoming rewrite,
without introducing any policy change for now.
There is no behavior change because if all loop iterations are skipped,
then \found will be false, and with \imprecise being null the last
attempt will be skipped and we will return false.
Julien "_FrnchFrgg_" RIVAUD [Mon, 1 Aug 2016 13:41:10 +0000 (15:41 +0200)]
Replace the exact_match logic by a negative penalty
Instead of doing an initial loop for detection of exact matches, then
letting the following loop set \audio_out yet ignore its value, merge
the two loops but give exact matches a negative penalty so that the
\audio_out value they set won't change afterwards.
No policy change.
Julien "_FrnchFrgg_" RIVAUD [Mon, 1 Aug 2016 12:35:06 +0000 (14:35 +0200)]
Remove wrong asserts
Julien "_FrnchFrgg_" RIVAUD [Mon, 1 Aug 2016 11:24:08 +0000 (13:24 +0200)]
LuaProc::can_support_io_configuration: don't mix int and int32_t
Len Ovens [Sat, 6 Aug 2016 16:25:57 +0000 (09:25 -0700)]
OSC: make sure this is c++98 compatible.
Edgar Aichinger [Sat, 6 Aug 2016 14:03:45 +0000 (16:03 +0200)]
update german translation
Robin Gareus [Sat, 6 Aug 2016 12:40:18 +0000 (14:40 +0200)]
C++98 compat for
032139ac3
Robin Gareus [Sat, 6 Aug 2016 12:28:20 +0000 (14:28 +0200)]
mark session dirty when changing plugin presets
Len Ovens [Sat, 6 Aug 2016 02:08:43 +0000 (19:08 -0700)]
osc: provide human readable reading for gain.
Len Ovens [Sat, 6 Aug 2016 00:24:09 +0000 (17:24 -0700)]
OSC: provide human readable level for sends.
Maurizio Berti [Fri, 5 Aug 2016 20:03:11 +0000 (22:03 +0200)]
Improve midnam for Waldorf Blofeld
Robin Gareus [Fri, 5 Aug 2016 00:35:51 +0000 (02:35 +0200)]
add a "Pin Management" button to the plugin UI-header
Nils Philippsen [Thu, 4 Aug 2016 07:48:47 +0000 (09:48 +0200)]
workaround changes in glibmm 2.49.x
Glib::RefPtr defines the operator bool() as explicit which breaks
comparisons like "some_ref_ptr == 0" or "... != 0".
https://bugzilla.gnome.org/show_bug.cgi?id=769502
Robin Gareus [Wed, 3 Aug 2016 18:53:49 +0000 (20:53 +0200)]
add support for VST default values (instantiation time value)
Robin Gareus [Wed, 3 Aug 2016 17:56:22 +0000 (19:56 +0200)]
add a wrapper to launch the vst-scanner manually
Robin Gareus [Tue, 2 Aug 2016 13:50:16 +0000 (15:50 +0200)]
if we can't determine the gcc4/5 prefer the new gcc5 ABI
Robin Gareus [Tue, 2 Aug 2016 11:46:41 +0000 (13:46 +0200)]
include XT* plugins with Ardour bundles and x42 on OSX/Win
Damien Zammit [Tue, 2 Aug 2016 12:20:24 +0000 (22:20 +1000)]
ptformat: Decrypt ptf files exported from ptx sessions
Paul Davis [Mon, 1 Aug 2016 16:02:30 +0000 (12:02 -0400)]
make Session::get_remote_nth_stripable() ignore hidden stripables unless asked.
this more closely matches the semantics of ye olde get_*_by_rid() from ardour 4.x and earlier
Julien "_FrnchFrgg_" RIVAUD [Sun, 31 Jul 2016 21:43:15 +0000 (23:43 +0200)]
Be more tolerant to missing values or errors in io_config()
Julien "_FrnchFrgg_" RIVAUD [Sun, 31 Jul 2016 11:32:39 +0000 (13:32 +0200)]
Remove redundant condition
Since can_replicate is true at loop start, and in the loop body there is
a break; after every can_replicate=false, there's no point to test its
value in the loop condition.
Julien "_FrnchFrgg_" RIVAUD [Sun, 31 Jul 2016 08:43:58 +0000 (10:43 +0200)]
Remove duplicate setters that don't affect the outcome
There is no code that read the set value in between the removed line and
its exact counterpart below. There is no similar duplicate in the
AudioUnit code due to the way AudioUnit handles midi.
David Robillard [Mon, 1 Aug 2016 02:48:15 +0000 (22:48 -0400)]
Fix state features array
David Robillard [Mon, 1 Aug 2016 01:59:21 +0000 (21:59 -0400)]
Support thread-safe LV2 state restoration
The original LV2 state extension required that run() is suspended during
restore(). Ardour violates this rule, which can lead to crashes and
other issues.
The state extension has been updated to allow restoring state in a
thread-safe way by using the worker to enqueue state changes. This
commit supports that new specification, i.e. supports dropout-free state
restoration properly.
However, the bug with old plugins that do not use this facility is still
not fixed.
David Robillard [Mon, 1 Aug 2016 00:58:47 +0000 (20:58 -0400)]
Support LV2 log trace messages
David Robillard [Mon, 1 Aug 2016 00:06:51 +0000 (20:06 -0400)]
Fix possible ringbuffer overflow
David Robillard [Sun, 31 Jul 2016 23:01:02 +0000 (19:01 -0400)]
Add some controls for the Waldorf Blofeld
David Robillard [Sun, 31 Jul 2016 22:48:59 +0000 (18:48 -0400)]
Fix validation of midnam files
The MMA in all their wisdom has broken midi.org, so modify the DTD to
use a local system name which xmllint will find in the current
directory.
cooltehno [Sun, 31 Jul 2016 15:22:42 +0000 (19:22 +0400)]
Update clear-gray-ardour.colors
A peak rectangle in the mixer strip is ruled by "gtk_bright_indicator". In the previous commit I mixed up this item with "meterbridge label" & "meterbridge peakindicator". This commit changes "gtk_bright_indicator" from white to red and returns "meterbridge label" & "meterbridge peakindicator" state to primordial. So now the peak rectangle in the mixer strip will be red when a sound peak has a place.
nick_m [Sun, 31 Jul 2016 15:04:28 +0000 (01:04 +1000)]
Use S_ macro when comparing modifier names in User Interaction Preferences.
- Fixes bug where selecting 'Shift' as a modifier was ignored.
cooltehno [Sun, 31 Jul 2016 13:11:58 +0000 (17:11 +0400)]
Update clear-gray-ardour.colors
pablus [Sat, 30 Jul 2016 10:52:16 +0000 (12:52 +0200)]
Update Spanish translation
Robin Gareus [Fri, 29 Jul 2016 23:23:38 +0000 (01:23 +0200)]
yet another multi-ABI bundle installer fix
Robin Gareus [Fri, 29 Jul 2016 21:57:52 +0000 (23:57 +0200)]
and now with proper bash syntax
Julien "_FrnchFrgg_" RIVAUD [Fri, 29 Jul 2016 19:18:37 +0000 (21:18 +0200)]
Update French translation
Julien "_FrnchFrgg_" RIVAUD [Fri, 29 Jul 2016 18:49:54 +0000 (20:49 +0200)]
Make monitor detection reuse the port name translation
So that they never get out of sync, and translators don't get confused.
Also replace some N_() where X_() was really intended.
Robin Gareus [Fri, 29 Jul 2016 19:50:47 +0000 (21:50 +0200)]
prepare installer for multiabi bundles
Robin Gareus [Fri, 29 Jul 2016 18:45:21 +0000 (20:45 +0200)]
make makeself compression options optional.
Robin Gareus [Fri, 29 Jul 2016 16:56:07 +0000 (18:56 +0200)]
Don't compress linux bundle, compress installer (with xz)
This halves the installer size from about 60MB to 29MB.
YQ-YSY [Fri, 29 Jul 2016 13:34:52 +0000 (21:34 +0800)]
2016-07-29 Update zh.po for Ardoru 5.0
Len Ovens [Fri, 29 Jul 2016 00:51:12 +0000 (17:51 -0700)]
OSC: make send enables work in MB
Julien "_FrnchFrgg_" RIVAUD [Fri, 29 Jul 2016 00:06:55 +0000 (02:06 +0200)]
GenericUI: Update all input controls on preset load
The existing code relies on AutomationControls for getting parameter
changes and update the UI accordingly. One case where this doesn't yet
work is preset loading, where ARDOUR::Plugin is responsible for actually
loading the preset but doesn't notify the changes to AutomationControls.
Since the input_controls vector now contains all ControlUI's that rely on
AutomationControls to get updates, just listen to Plugin::PresetLoaded()
and trigger an update of all elements in input_controls.
This is temporary until a better solution is devised to make
AutomationControls aware of preset loading.
Julien "_FrnchFrgg_" RIVAUD [Thu, 28 Jul 2016 22:54:25 +0000 (00:54 +0200)]
GenericUI: Show automation UI for dropdowns
Also merge the ControlUI local layout of dropdows with the local layout
of other control types (except FileButton).
Julien "_FrnchFrgg_" RIVAUD [Thu, 28 Jul 2016 22:10:19 +0000 (00:10 +0200)]
GenericUI: disable super rapid timer for input controls
The super rapid timer was disconnected by GenericPluginUI::stop_updating
but never connected again, so the generic UI worked often without
getting periodic update triggers anyway.
Try to disable the mechanism altogether, and see if there are updating
glitches.
Julien "_FrnchFrgg_" RIVAUD [Thu, 28 Jul 2016 21:50:33 +0000 (23:50 +0200)]
GenericUI: replace if() by assert()
It makes no sense to check for the validity of mcontrol only for
controller creation, since the remainder of the code assumes that the
controller will have been created correctly.
Replace that by an assert.
Julien "_FrnchFrgg_" RIVAUD [Thu, 28 Jul 2016 21:07:44 +0000 (23:07 +0200)]
GenericUI: remove duplicate connection to signal
Now that there isn't an early return anymore for Dropdowns, the common
path takes care of connecting the display update code to the correct
signal.
Julien "_FrnchFrgg_" RIVAUD [Thu, 28 Jul 2016 21:06:04 +0000 (23:06 +0200)]
GenericUI: replace early return by an else
Julien "_FrnchFrgg_" RIVAUD [Thu, 28 Jul 2016 20:00:58 +0000 (22:00 +0200)]
GenericUI: don't add all inputs to automation vector
That list is used to set the automation state of all automatable
controls when the global automation state is changed with the buttons at
the top of the generic UI window. The controls were added to the list
regardless of the automatable status, and some controls were even added
multiple times: once in build_control_ui() and once in build().
Since changing the state of non-automatable controls is wrong, only add
the control UI in build_control_ui() which already has the knowledge of
automatable or not.
Julien "_FrnchFrgg_" RIVAUD [Thu, 28 Jul 2016 18:57:44 +0000 (20:57 +0200)]
GenericUI: add a sanity-check for FileChoosers
Assert that all FileChooserButton created are for properties, because
the remaining code assumes that it should setup things for a property.
Julien "_FrnchFrgg_" RIVAUD [Thu, 28 Jul 2016 18:26:58 +0000 (20:26 +0200)]
GenericUI: move up filepath property handling
Since it is the only case that's completely different from others in
that it only handles properties, and uses a different signal path for
updates, don't put it in the middle, but as the first case to check for.
Code move only, no behavior change (since it should be exclusive to all
other cases anyway).
Julien "_FrnchFrgg_" RIVAUD [Thu, 28 Jul 2016 17:43:43 +0000 (19:43 +0200)]
GenericUI: only connect one PropertyChanged callback
The code connected the callback to the PropertyChanged signal from the
plugin once per filepath control created. Should the plugin have several
files to open, this would be at best wasteful and at worst racy.
Connect the callback a single time, since the same callback handles all
property updates that we're interested in. Also rename the methods,
members and typedefs so that it's clear what the code is trying to do.