summaryrefslogtreecommitdiff
path: root/libs/ardour
AgeCommit message (Collapse)Author
2016-08-10Make tempo tests use the api more correctly.nick_m
- 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().
2016-08-10Allow -ve framepos handling in TempoMap::framepos_plus_beats()nick_m
- also handles frame positions previous to the initial meter (beat_at_frame() would return 0 in this case).
2016-08-08fix race condition when dropping PortsPaul Davis
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)
2016-08-08add explanatory commentPaul Davis
2016-08-07Remove a no longer true commentJulien "_FrnchFrgg_" RIVAUD
It should have been removed as part of 539c062ed23daf308e650b5d1039384ac5a55666 (Make the configuration penalty subtler about inputs).
2016-08-06a few more Location related lua bindingsRobin Gareus
2016-08-06Use a default configuration instead of bailing outJulien "_FrnchFrgg_" RIVAUD
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.
2016-08-06Remove dsp_has_midi_*() in favor of dsp_ioconfig()Julien "_FrnchFrgg_" RIVAUD
_has_midi_*put members of LuaProc will be set according to the actual configuration chosen, for configure_io() and run() to use.
2016-08-06Refuse more configs with unmatched midi in if !impreciseJulien "_FrnchFrgg_" RIVAUD
Since MIDI in should be
2016-08-06Take midi into account for penalty computationJulien "_FrnchFrgg_" RIVAUD
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.
2016-08-06Remove ad-hoc handling of possible_out == 0Julien "_FrnchFrgg_" RIVAUD
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.
2016-08-06Make the configuration penalty subtler about inputsJulien "_FrnchFrgg_" RIVAUD
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.
2016-08-06Remove ad-hoc handling of possible_in == 0Julien "_FrnchFrgg_" RIVAUD
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.
2016-08-06Change column width in macrosJulien "_FrnchFrgg_" RIVAUD
2016-08-06Set \midi_out when selecting a configuration...Julien "_FrnchFrgg_" RIVAUD
...instead of at the very beginning, so that it can depend on the loop iteration.
2016-08-06Merge pass 2 (imprecise) into pass 1Julien "_FrnchFrgg_" RIVAUD
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.
2016-08-06Move MIDI filters imprecise handling from 2nd pass to 1stJulien "_FrnchFrgg_" RIVAUD
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).
2016-08-06Rearrange condition for pure midi pluginsJulien "_FrnchFrgg_" RIVAUD
2016-08-06Use FOUNDCFG* instead of setting the configuration by handJulien "_FrnchFrgg_" RIVAUD
2016-08-06Enable overriding the configuration penaltyJulien "_FrnchFrgg_" RIVAUD
This is useful for exact matches that would otherwise need to duplicate the bookeeping done by FOUNDCFG()
2016-08-06Introduce a macro for imprecise configurationsJulien "_FrnchFrgg_" RIVAUD
It enables only setting the imprecise audio channel count if the configuration is indeed selected.
2016-08-06Set \imprecise midi channel count in FOUNDCFGJulien "_FrnchFrgg_" RIVAUD
So that it can depend on the actual configuration selected.
2016-08-06Set \imprecise when a configuration is chosenJulien "_FrnchFrgg_" RIVAUD
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.
2016-08-06Merge some cases to avoid duplicated logicJulien "_FrnchFrgg_" RIVAUD
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.
2016-08-06Remove code with no actual effectJulien "_FrnchFrgg_" RIVAUD
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.
2016-08-06Move a MIDI test in the table handling loop...Julien "_FrnchFrgg_" RIVAUD
...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.
2016-08-06Replace the exact_match logic by a negative penaltyJulien "_FrnchFrgg_" RIVAUD
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.
2016-08-06Remove wrong assertsJulien "_FrnchFrgg_" RIVAUD
2016-08-06LuaProc::can_support_io_configuration: don't mix int and int32_tJulien "_FrnchFrgg_" RIVAUD
2016-08-06update german translationEdgar Aichinger
2016-08-06mark session dirty when changing plugin presetsRobin Gareus
2016-08-03add support for VST default values (instantiation time value)Robin Gareus
2016-08-01make Session::get_remote_nth_stripable() ignore hidden stripables unless asked.Paul Davis
this more closely matches the semantics of ye olde get_*_by_rid() from ardour 4.x and earlier
2016-08-01Be more tolerant to missing values or errors in io_config()Julien "_FrnchFrgg_" RIVAUD
2016-08-01Remove redundant conditionJulien "_FrnchFrgg_" RIVAUD
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.
2016-08-01Remove duplicate setters that don't affect the outcomeJulien "_FrnchFrgg_" RIVAUD
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.
2016-07-31Fix state features arrayDavid Robillard
2016-07-31Support thread-safe LV2 state restorationDavid Robillard
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.
2016-07-31Support LV2 log trace messagesDavid Robillard
2016-07-31Fix possible ringbuffer overflowDavid Robillard
2016-07-30Update Spanish translationpablus
2016-07-29Update French translationJulien "_FrnchFrgg_" RIVAUD
2016-07-28Fix whitespaceDavid Robillard
2016-07-26fix thinko-typo in SoloControl::soloed_by_others()Paul Davis
2016-07-26Call Plugin::load_preset() from LuaProc::load_preset()Julien "_FrnchFrgg_" RIVAUD
So that the plugin knows that a preset has been loaded, and can send the signal accordingly.
2016-07-26Add missing locale guard for luadsp preset loadingJulien "_FrnchFrgg_" RIVAUD
That caused truncation of parameters to int when the decimal separator is not a period in the user's locale.
2016-07-26add Sidechain change handler for automatically added initial SC portsRobin Gareus
2016-07-26add initial midi sidechain if plugin has one.Robin Gareus
2016-07-2632bit compat (amend 90a67d04)Robin Gareus
2016-07-25another attempt to fix playhead position with varispeed.Robin Gareus