13
0
Commit Graph

11466 Commits

Author SHA1 Message Date
62de4d0c31 add NaN/Inf protection now that bypass no longer de/activates 2016-08-27 14:10:51 +02:00
36776bafcd click-free a-reverb bypass 2016-08-27 14:09:47 +02:00
935fd3b32f Add automatable click-free bypass/enable feature to a-eq 2016-08-27 13:23:25 +02:00
0189edcfb9 Expose PluginInfo bindings (eg plugin-type, unique id, etc)
processor:to_insert():plugin(0):get_info().type
2016-08-26 19:04:07 +02:00
a4da0747e1 allow to access data-members in weak/shared ptr classes 2016-08-26 19:01:09 +02:00
1d7c144967 add "sameinstance()" lua binding for all shared/weak ptrs 2016-08-26 18:25:15 +02:00
d696363021 Add Lua bindings for ProcessorVector (really ProcSelection) 2016-08-26 03:21:05 +02:00
f582f8595f increase pre-allocated Lua DSP memory pool size to 3MB
...now that bindings alone need approx 700K and some more complex DSP
scripts are showing up 2MB is not much :(
2016-08-26 01:47:05 +02:00
c9f0657c86 tweak lua GC (once again)
fixes OOM with extreme automation in HP/LP.
2016-08-26 01:18:48 +02:00
fa36ea6695 remove unneeded includes that may break with winegcc 2016-08-25 22:29:50 +02:00
48d085a569 wine-gcc hacks -- fixes #6984 2016-08-25 21:36:02 +02:00
aee5d24cfa a reverb is a reverb is a reverb 2016-08-24 23:45:02 +02:00
bd77b605f6 add missing include 2016-08-24 23:06:52 +02:00
d6e27bd439 fix copy/paste mistake 2016-08-24 22:46:36 +02:00
af786cf444 NO-OP: whitespace 2016-08-24 22:39:44 +02:00
ef59ea849b lessons learned from a-fluidsynth 2016-08-24 22:37:20 +02:00
7ccbc0ca73 OSC: Add preset loading to OSC GUI 2016-08-24 10:07:21 -07:00
427d9f888a reduce initial fluidsynth load 2016-08-24 17:51:15 +02:00
7bdf4e12ba Take process-lock before processor-lock
This [hopefully] fixes jack1 zombification on session-load with large
plugin-states. Previously it was possible to block
Route::process_output_buffers().
2016-08-24 17:21:43 +02:00
953b8ac99f prevent a unlikely race: concurrent restore() + work_response () 2016-08-24 15:38:36 +02:00
f5602adfe8 tweak a-fluidsynth reinit strategy.
reset synth in offline thread, queue panic on deactivate to be
called in run() after first re-activate.

Initial activation does not warrant a panic.
2016-08-24 13:05:47 +02:00
8a3b246bb3 strip down libfluidsynth a bit more 2016-08-24 13:05:47 +02:00
aa349d3f8c add support for reverb & chorus in a-fluidsynth 2016-08-24 05:33:18 +02:00
8da58c3da0 ARDOUR::FluidSynth automatically assign first 16 channels 2016-08-24 05:31:30 +02:00
870cb19737 a-fluidsynth 2016-08-24 03:18:14 +02:00
30afda5536 properly fix copy/paste typos 2016-08-24 02:26:39 +02:00
07653e13d8 fluidsynth 1.1.6 actually 2016-08-24 02:21:30 +02:00
3ab4f7ef82 fix windows build/runtime 2016-08-23 22:58:03 +02:00
5d597cdfeb add FluidSynth Lua Bindings 2016-08-23 22:21:03 +02:00
2d5166606b add basic libardour wrapper for fluidsynth (for Lua bindings) 2016-08-23 22:21:03 +02:00
ac05f05023 Import libfluidsynth into the Ardour codebase 2016-08-23 22:21:03 +02:00
nick_m
88f723e8d8 Tempo marker movement snaps to the future grid, rather than the current one.
- fixes jittery tempo movement when snapping within large gradients.
2016-08-24 03:38:46 +10:00
nick_m
9a66e1e2c6 Round to bar correctly in TempoMap::exact_beat_at_frame_locked(). 2016-08-24 03:23:04 +10:00
0a975eba29 Nyquist (pronounce it like Klopstock!) 2016-08-23 13:46:11 +02:00
4a831725af fix threaded state restore (duplicate calls to restore during init)
and also allow immediate work during use latency-compute runs.

At session load, Ardour calls a plugins "set default" state (GUI thread).
Some plugins may schedule work during state-restore. Ardour immediately
proceeded to restore the actual session plugin state without processing
the already scheduled work and without calling run() for a plugin
to apply state synchronously.
2016-08-23 13:46:11 +02:00
81c481f975 OSC: Tweak GUI to be more user obvious. 2016-08-22 13:23:04 -07:00
957f59f351 print a warning if CoreAudio falls back to non realtime priority 2016-08-22 17:38:45 +02:00
636522bd79 new libardour API for Session::new_route_from_template to allow specifying insertion point 2016-08-22 09:41:59 -04:00
88e98a63c7 OSC: populate check boxes with default settings at session start 2016-08-21 16:31:22 -07:00
1cfd8b2203 OSC: set global variables in global space - crash fix 2016-08-21 14:15:54 -07:00
adb492b914 OSC GUI: Add Strip types and feedback check boxes 2016-08-21 13:25:11 -07:00
7aa5ada0e0 Lua bind MonitorProcessor 2016-08-21 00:24:23 +02:00
d1ed84e44e OSC: Add setup to GUI 2016-08-19 14:22:55 -07:00
a83febb268 fix optimized build compilation 2016-08-19 22:38:10 +02:00
0016920347 and another typo gone in in 9702020 2016-08-19 17:22:09 +02:00
adf290446f fix typo in 9702020 2016-08-19 16:23:49 +02:00
972dc6aaca ad rest of Stripable API to lua 2016-08-19 09:40:20 -04:00
8e2d1c7f2a Move 'round()' / 'trunc()' etc so that they won't conflict with any versions already available in MSVC 2016-08-19 14:11:01 +01:00
4ece16f348 For MSVC, 'using namespace whatever' doesn't help us to differentiate between ambiguous type names
so... given that 'Rectangle' is a type name that's commonly found in several different namespaces, we'll need to specify explicitly which one we want.
2016-08-19 14:11:00 +01:00
a0b117b948 'roundf()' wasn't introduced in MSVC until VS2013 - so for the time being, let's emulate it using 'floorf()' 2016-08-19 14:11:00 +01:00
cdcccd8101 handle edge-case where jack-meta-data may be NULL, but the call succeeds
this fixes #6968
2016-08-19 14:38:37 +02:00
45cd3482a2 fix failure to remove keyvalue from Keyboard::state on key release 2016-08-19 08:32:44 -04:00
26f1578568 MIDI polyphonic pressure, part 2 2016-08-19 08:32:44 -04:00
d6691a80e9 attempt to handle poly-pressure (polyphonic aftertouch) similarly to other MIDI messages 2016-08-19 08:32:44 -04:00
c229e31720 OSC:: needs the .h file too... 2016-08-18 19:16:53 -07:00
7c43d2bb0e OSC: make remote port setting possible, add default surface variables 2016-08-18 19:15:57 -07:00
756674f4f9 initialize uninitialized variable 2016-08-19 03:32:07 +02:00
ba1058aca6 Update automated Plugin Controlls when seeking and not rolling 2016-08-19 03:32:07 +02:00
ef4facca11 fix Aux-Send Panner Linking 2016-08-19 01:14:21 +02:00
41cc35cf6e do not allow undo/redo while actively recording 2016-08-17 19:22:26 -04:00
nick_m
9702020929 Report quarter note rather than beat position to AU plugins. 2016-08-18 05:42:30 +10:00
nick_m
6d0208613d Use quarter pulses (quarter notes) for VST's ppqBar, ppqPos and cycleStart/EndPos. 2016-08-18 05:39:44 +10:00
nick_m
b243af48c7 Add methods for plugin APIs to obtsin quarter pulses ('beats' for AU) from the tempo map. 2016-08-18 05:36:24 +10:00
8708da2d19 OSC: Add value feedback to strip fader and trim 2016-08-17 08:24:57 -07:00
613ff66042 fix ramped BPM reporting to AU and VST plugins 2016-08-17 17:17:00 +02:00
b3cec2716e fix LV2 BPM report (use ramped tempo) 2016-08-17 17:04:02 +02:00
6bf40e3a44 a-Reverb: Fixed bug with the reverb all pass filters causing bad sound 2016-08-18 00:41:43 +10:00
08df4e1920 Fix anchored popups with separators in them
The code computing the position of the popup menu used to compare the
given string to each MenuItem::get_label() result, but that method
actually replaces the content (child) of the MenuItem if that child is
not already a Gtk::Label. In particular, this breaks menu separators.

Avoid the issue by checking by hand if the only child of the MenuItem is
a Label, and directly compare the label text.
2016-08-17 01:45:47 +02:00
6a985df81e Replace positioning function with popup helper
Because all uses of the function positioning menus anchored to a widget
were as callback argument to Gtk::Menu::popup() where the caller needed
to correctly bind arguments, this led to repeated and a bit obscure code.

Wrap the logic into an helper function that takes care of all that, and
update the callers.
2016-08-17 01:45:47 +02:00
18af0dc4cd Also send lv2:timePosition whenever BBT or Tempo changes
This mostly fixes an issue with notifying plugins about tempo-ramps
and BPM changes.

remaining to be fixed (in tempo.h):
```
_session.tempo_map().metric_at(frame_position).tempo().beats_per_minute()
```
currently returns the most recent *fixed* tempo at or before
`frame_position`. All other Plugin types are affected by this as well.
2016-08-16 13:11:49 +02:00
7b993ef138 turn comments into doxygen doc 2016-08-16 00:26:06 +02:00
bc0bb6cae9 extend lua-doc to show properties 2016-08-16 00:25:59 +02:00
29feb8dec7 add some missing enum bindings (for config variables) 2016-08-16 00:20:36 +02:00
11da4a83e4 expose SessionConfiguration as lua bindings 2016-08-15 22:25:56 +02:00
3b7dbdfeb8 Re-enable luabridge addProperty()
In preparation to expose ARDOUR::SessionConfiguration.
Also change the return-type to bool to match Ardour's set/get API
2016-08-15 22:25:56 +02:00
nick_m
4848cb6d42 Enforce rounding to beat as >= 0.0 2016-08-16 00:43:08 +10:00
46cbb9084e Expose Stripable Color & Ordering API to Lua
We can't easily use C++ references with Lua closures, so
new API (pointer to PresentationInfo) was added.
2016-08-15 16:37:44 +02:00
09ed9c44e7 change PBD::Transmitter code to use PBD::Signal<> not sigc::signal<>, since the latter is not thread safe 2016-08-14 08:33:23 -04:00
f77d1e0a36 Don't call any Transmitter from realtime context
This fixes a crash when TempoMap::bbt_at_frame_rt() is called
for a latent effect at position 00:00:00:00 and frame is < 0.
2016-08-14 00:47:03 +02:00
nick_m
c62026b567 Ensure RelevantModifierKeyMask is updated on each modifier change.
- fixes bug where changing prefs in User Interaction
	  only took effect on restart.
2016-08-14 03:04:54 +10:00
nick_m
3f24d5d96e Always send start property changes when a midi region trim alters position.
- ensures gui updates correctly.
2016-08-14 03:04:53 +10:00
nick_m
172bcc8165 Audio-locked midi region fixes.
- don't alter region frame length on tempo change or position change.

	- set region _start correctly (see comments) on tempo map change.

	- ensure audio-locked region's beat is set on tempo map change
2016-08-14 03:04:53 +10:00
nick_m
5c2ccc4f3e Allow negative return in TempoMap::beat_at_frame() and its exact_ variant.
- audio-locked midi regions can be start-trimmed properly
	  when close to 1|1|0
	- a midi region placed before the first meter
	  will continue the tempo curve and first meter.

Only a couple of callers require change, as bbt_at_beat() already
deals with this.
2016-08-14 03:04:53 +10:00
613ae0c110 Nobody expects the LV2 inquisition! 2016-08-13 14:51:57 +02:00
0fa106ef4b check for null pointer in Locations::remove() 2016-08-12 12:48:35 -04:00
c8c6bca658 fix crash when copy'ing latent plugins 2016-08-10 16:32:34 +02:00
e9752ff93e remove debug output 2016-08-09 21:26:27 -04:00
2b7a89ecff prefix blessed scripted DSP plugins with a-* 2016-08-10 03:11:49 +02:00
dd88461942 clean up plugin ttls - always add semicolon for compatibility 2016-08-09 22:00:38 +02:00
nick_m
00f12dc395 Fix test compilation error. 2016-08-10 03:16:49 +10:00
nick_m
13413c0b0f BBTTest::addTest() should add a meter rather than replacing the first one. 2016-08-10 01:56:55 +10:00
nick_m
9acfdb31a2 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().
2016-08-10 01:46:05 +10:00
nick_m
4ddb6b74f5 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).
2016-08-10 00:48:53 +10:00
b9cab93fb1 fix definition of PrimaryModifier for Keyboard for OS X 2016-08-08 17:59:11 -04:00
3d400f97dd fix display of modifiers on OS X in the bindings editor 2016-08-08 17:47:11 -04:00
a51cd8689f Move anchored menu placement strategy to Gtkmm2ext utils
So that it can be used by others.
2016-08-08 16:44:40 +02:00
448902f870 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)
2016-08-08 09:27:21 -04:00
fdf63ace6a add explanatory comment 2016-08-08 09:27:21 -04:00
c803b81a2b Remove a no longer true comment
It should have been removed as part of 539c062ed2
(Make the configuration penalty subtler about inputs).
2016-08-07 10:00:26 +02:00
d04ca6d414 a few more Location related lua bindings 2016-08-06 22:12:39 +02:00