13
0
Commit Graph

11166 Commits

Author SHA1 Message Date
ef1e20f6a2 some more lua-bindings
* allow C memory allocation with lua-lifetime
* expose some ChanMapping methods
2016-07-07 15:37:11 +02:00
44a3f042a7 prepare sharing C++ class instances across lua-interpreters
in particular: lua-lifefime (!) C++ instances.
This allows for dynamic allocation of custom user-data, bound to
the lifetime of the allocating lua-context.
2016-07-07 15:37:11 +02:00
225a8a47a4 lua PBD ringbuffer bindings 2016-07-07 15:37:11 +02:00
44de8560a6 Add a-EQ (basic 4 band EQ) with inline display based on SVF filters 2016-07-07 22:15:44 +10:00
d40cc6f6f9 OSC: Make sure selected strip is corrected when it's stripable vanishes 2016-07-06 19:28:41 -07:00
44fcbd988c mackie: ensure that the strip where select was pressed ends up as the first_selected_stripable 2016-07-06 21:40:29 -04:00
77a8da9010 set ControlProtocol::_first_selected_stripable at the right time only 2016-07-06 20:58:33 -04:00
6911702f21 Don't add audio outs to non-audio routes with strict I/O
If a route has strict I/O then the main delivery follows the output of
the last processor, but libardour ensures it has at least as many
outputs as inputs in the master strip. A good consequence is that mono
tracks get their expected panner.

An akward side-effect is that MIDI-only routes (e.g. midi tracks or busses
without a synth) get two audio channels that have no use (and indeed no
panner is added because there is nothing to pan).

Skip the completion of audio outs if there was no audio out to begin
with.
2016-07-07 01:33:42 +02:00
db3223478c quick checks on empty control lists, to avoid unnecessary work 2016-07-06 15:20:17 -04:00
cf9706974c a few post-rebase cleanups 2016-07-06 14:03:24 -04:00
2047ee527c restore/extend/simplify ControlProtocol API to allow tracking of selection 2016-07-06 13:39:10 -04:00
eed3ea5047 remove a bunch of code that will no longer be used 2016-07-06 13:38:13 -04:00
d514cd2fbf remove a bunch of code that will no longer be used 2016-07-06 13:38:13 -04:00
a2f249d1d7 tweak lua gc
lua C++ bindings require ~400KB worth of tables now; so bump memory
available to rt-safe scripts (full interpreter) to 2MB.

Also switch to incremental GC.
2016-07-06 03:32:08 +02:00
6cff31c878 update route/processor semantics
* active(): hard bypass: en/disable. When disabled, run() is not called.
* enabled(): plugin run()s but may do nothing (or only be latent)
2016-07-05 23:30:21 +02:00
ac325cea25 implement lv2:designation processing#enable (for bypass ports) 2016-07-05 23:30:21 +02:00
e845b9f935 add API to use a plugin provided bypass control port
* new separate API: en/disable
* old API remains in place for hard bypass
* PluginInsert::enable() falls back to activate/deativate if a plugin
  does not provided designated bypass control port
2016-07-05 23:30:21 +02:00
860ffed6d1 OSC: Clear expand Lamp on strip observer destroy 2016-07-05 14:11:16 -07:00
f2f7414751 a-delay: Fix compiler warning 2016-07-06 02:18:10 +10:00
de4cb2f8af Add a-Delay plugin 2016-07-06 01:53:59 +10:00
83e1d9fff3 tweak a-series plugin names 2016-07-05 17:17:59 +02:00
e542e501a0 add support for http://lv2plug.in/ns/ext/port-props/#rangeSteps 2016-07-05 16:21:09 +02:00
5966612a4f consistent use of fmaxf() in a-comp 2016-07-05 15:38:24 +02:00
54d8def68c amend d9de72215 - bypass replicated instances w/sidechain inputs 2016-07-05 15:37:59 +02:00
a16c0c445a a-comp: Use input signal x as cutoff for inline comp curve 2016-07-05 18:36:04 +10:00
2a7bd996cd a-comp: Fix inline comp curve shading 2016-07-05 18:19:00 +10:00
bf7c4c7d60 a-comp: Fix peak level on both stereo and mono plugins 2016-07-05 15:07:06 +10:00
fef79d46bb OSC: Signal for editor mixer change. (Selected or not) 2016-07-04 20:07:38 -07:00
bc1f571954 OSC: /strip/select * should set new selected strip not toggle what is there. 2016-07-04 18:34:48 -07:00
d9de72215b fix bypassing plugins with sidechain i/o 2016-07-05 00:39:46 +02:00
17b162c5da add fill-area feature to poly-line 2016-07-05 00:39:39 +02:00
b6ccf0e223 fix AU sidechain busses 2016-07-04 21:46:01 +02:00
8507d2c9dd add required check for cairo in a-comp 2016-07-04 15:10:35 -04:00
27d06075a7 remove temporarily added signal 2016-07-04 13:42:47 -04:00
291aec468f use session stripable selection API
and remove old ControlProtocol signals to talk to GUI etc.
2016-07-04 12:45:53 -04:00
57ee61772b add session-scope selection ops for Stripables 2016-07-04 12:45:53 -04:00
5c32fc3bab fix another logic error in PresentationInfo::flag_match() 2016-07-04 12:45:53 -04:00
2f7c167fc9 a-comp: Make ratio control logarithmic 2016-07-05 02:32:05 +10:00
46bfe2b51a a-comp: Add stereo version 2016-07-05 02:15:47 +10:00
b27d9bb02a OSC: select is global not per surface. 2016-07-04 08:27:16 -07:00
a1a6dd3865 a-comp display is getting fancy :) 2016-07-04 15:50:05 +02:00
14c50b317c operate directly on realtime controls, not via Session 2016-07-04 09:27:33 -04:00
97f0415130 2nd part of previous commit 2016-07-04 09:27:33 -04:00
2e3c25eca7 make sure that rec-enable changes get to do their non-RT stuff before being queued for RT-context execution 2016-07-04 09:27:33 -04:00
d2f20120b7 display level in a-comp display 2016-07-04 14:26:37 +02:00
49294644fb con't work on a-comp inline-display 2016-07-04 14:07:05 +02:00
ebdb8dc2ce add C99 flags for lv2 plugin 2016-07-04 13:08:23 +02:00
d9ba78d594 basic inline display for a-comp 2016-07-04 12:59:04 +02:00
da5ab866c2 a-comp: Tweak control bounds and clear state on deactivate 2016-07-04 19:43:06 +10:00
ed5cd83c63 experimental support for AU sidechain busses
some plugins include a sidechain bus which is not explicitly
listed under "Reported Channel Capabilities" list,
nor the "Input/Output Channel Handling"
2016-07-04 03:57:04 +02:00
a373e4cfc8 UI: Add editor_mixer route pointer to session so all UIs can know the same current_strip even in a selected group. 2016-07-03 18:22:09 -07:00
402e9cb20d flush output buffers after processing - fixes midi-bus chaining 2016-07-04 03:13:35 +02:00
e6621c4405 OSC: select off by one bug, something must have changed by 1, fixed 2016-07-03 15:28:03 -07:00
15b006c6c2 LV2 render-value: override precision
lv2's units.ttl specifies "%f" for many values by default which results in
useless high precision
2016-07-04 00:20:11 +02:00
f49d0a1b1d add PangoCairo lua bindings 2016-07-04 00:20:11 +02:00
02a18400fa fix behaviour when opening up a gap to insert new Stripables.
Need to include all stripables, not just routes, and need to include master since editor (and maybe others) opt
to use the presentation_info().order() value for it
2016-07-03 13:22:52 -04:00
05a069a9e9 explanatory comment 2016-07-03 13:22:52 -04:00
9220e81e20 clean up a-comp .ttl -- maintainer: the a-team 2016-07-03 14:45:15 +02:00
94e5060168 bundle a-comp 2016-07-03 03:21:44 +02:00
c50a0c5dd0 only reconfigure lua DSP plugins if channelcount changes 2016-07-02 23:36:34 +02:00
f169ff3db3 extend lua API:
* add a basic FFT spectrum analyzer
* prepare Cairo::ImageSurface
* HSL colorspace conversion
2016-07-02 23:36:34 +02:00
02db39c1bc remove Session::get_nth_stripable.cc 2016-07-02 16:08:38 -04:00
661123c756 OSC: Account for some select edge cases 2016-07-01 21:21:08 -07:00
6ed7336384 OSC: make sure out of bank strip can not be converted to a stripable. 2016-07-01 18:31:13 -07:00
3491f22c04 OSC: Don't look for which stripable is selected until we actually need it, It may be wrong at application start. 2016-07-01 18:12:31 -07:00
55722a74fb OSC: Change all time feedback to /position/<type> 2016-07-01 17:28:08 -07:00
1874aa6acd use correct property when PresentationInfo::color is set from XML 2016-07-01 18:14:21 -04:00
8a6e9c19d7 fix logic of PresentationInfo::color_set() 2016-07-01 18:02:42 -04:00
58b2931685 add the potential for a bit more debugging of signal connects 2016-07-01 17:47:05 -04:00
ba700ecc63 add the potential for a bit more debugging of signal connects 2016-07-01 17:47:05 -04:00
0ae634cb1e fix jack_port_rename() detection 2016-07-01 19:08:52 +02:00
29af3b1aee some debug message for lua processors 2016-07-01 16:02:11 +02:00
5335763f98 use initialization, not explicit assignment 2016-06-30 17:41:11 -04:00
7f712ddd4c OSC: Select tweak. 2016-06-29 19:57:13 -07:00
95beda06d9 OSC: Reworked select to follow Gui selected strip regardless of it's inclusion in bank 2016-06-29 19:38:17 -07:00
b2be7cb6bd remove debug output and add a few suggestive comments 2016-06-28 16:05:35 -04:00
54d5f36311 changes in logic used by source cleanup to avoid endless recursion in sessions with deeply nested/recursive compound regions.
This also fixes some potentially dangerous cleanup logic related to two sources with the same name (but different paths)
2016-06-28 15:05:56 -04:00
dbb26485df ignore automation for non-automatables.
Since 4.7-1477-g2c6d595 Ardour implements Control::NotAutomatable.
This can lead to situations where automation exists for parameters that
were not supposed to be automatable, which in turn caused a
"programming-error" abort() in
RouteTimeAxisView::add_processor_automation_curve()
2016-06-28 18:43:31 +02:00
48fe9983f7 some more translation fixes 2016-06-28 12:53:18 +02:00
22fd92f97c tweak b7e645ec6, use session start/end position 2016-06-28 00:17:46 +02:00
b7e645ec61 switching to "touch" implies existing automation.
This fixes an issue of Fader jumping to unity when switching from
manual to touch if there is no prior automation.
Likewise for plugin parameters jumping to "default"
2016-06-27 19:04:38 +02:00
741428b6fd add a debug mode (in synth) to track down lost note-on 2016-06-26 17:15:46 +02:00
86763cba90 Enable build for FreeBSD (part 1/2)
Adopted from Michael Beer -- GH pull-request #232 with minor changes:

*   rebased on master,
*   removed trailing whitespace,
*   don't explicitly change saved configuration defaults (wscript)
*   moved sys/wait (WNOHANG) to header include
*   separate changes in GUI and lib
2016-06-26 16:43:07 +02:00
Sam Thursfield
e37b250d4d Use correct type of std::map::count
Compiling Ardour commit ec8a4de015 with GCC
6.1.1 (on Fedora 24) gave this build failure:

    In file included from /home/sam/ardour/libs/lua/LuaBridge/LuaBridge.h:154:0,
                     from ../tools/luadevel/devel.cc:16:
    /home/sam/ardour/libs/lua/LuaBridge/detail/Namespace.h: In instantiation of ‘luabridge::Namespace::Class<std::map<K, V> > luabridge::Namespace::beginStdMap(const char*) [with K = std::__cxx11::basic_string<char>; V = std::__cxx11::basic_string<char>]’:
    ../tools/luadevel/devel.cc:89:60:   required from here
    /home/sam/ardour/libs/lua/LuaBridge/detail/Namespace.h:1666:30: error: no matches converting function ‘count’ to type ‘void (class std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > >::*)()’
           .addFunction ("count", (void (LT::*)())&LT::count)
                                  ^~~~~~~~~~~~~~~~~~~
    In file included from /usr/include/c++/6.1.1/map:61:0,
                     from /home/sam/ardour/libs/lua/LuaBridge/LuaBridge.h:45,
                     from ../tools/luadevel/devel.cc:16:
    /usr/include/c++/6.1.1/bits/stl_map.h:1131:2: note: candidates are: template<class _Kt> decltype (((const std::map<_Key, _Tp, _Compare, _Alloc>*)this)->std::map<_Key, _Tp, _Compare, _Alloc>::_M_t._M_count_tr(__x)) std::map<_Key, _Tp, _Compare, _Alloc>::count(const _Kt&) const [with _Kt = _Kt; _Key = std::__cxx11::basic_string<char>; _Tp = std::__cxx11::basic_string<char>; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >]
      count(const _Kt& __x) const -> decltype(_M_t._M_count_tr(__x))
      ^~~~~
    /usr/include/c++/6.1.1/bits/stl_map.h:1125:7: note:                 std::map<_Key, _Tp, _Compare, _Alloc>::size_type std::map<_Key, _Tp, _Compare, _Alloc>::count(const key_type&) const [with _Key = std::__cxx11::basic_string<char>; _Tp = std::__cxx11::basic_string<char>; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >; std::map<_Key, _Tp, _Compare, _Alloc>::size_type = long unsigned int; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = std::__cxx11::basic_string<char>]
           count(const key_type& __x) const
           ^~~~~

Casting std::map::count to the correct type instead of a fake void()
type fixes the compile failure.
2016-06-26 16:18:34 +02:00
d5cc04d57b fix typo 2016-06-25 18:54:11 +02:00
ace9ee194d fix typos in prev commit 2016-06-25 03:47:38 +02:00
e9a8ccc7e2 major internal plugin & processor API change:
Pass current (latency compensated) cycle times to plugin.
This fixes time-reporting to plugins and also fixes automation
and when bouncing (the session->transport* is not valid) etc.
2016-06-25 02:23:56 +02:00
nick_m
cde951f30f Fix counting thinko in tests.
- note that the negative framepos in
	  FrameposPlusBeatsTest::singleTempoTest() will
	  not pass. needs some thougt as to whether it is testing
	  the correct thing.
2016-06-25 01:37:48 +10:00
37156d6761 more tweaks to HTML output when printing key bindings 2016-06-23 08:37:24 -04:00
f3dd9eef8b OSC: master/monitor forced to sort at end 2016-06-22 14:50:13 -07:00
844bf70002 OSC: Fix math off by one, Check for all stripable controls because VCAs have less (crash fix) 2016-06-22 14:10:59 -07:00
dd549bb09e another C++98 fix 2016-06-22 19:22:19 +02:00
64d7a82a52 fix gcc4 builds C++98
Flag is an enum -- not a class nor namespace
2016-06-22 16:18:07 +02:00
cad5ed4f21 OSC: Might help if I used the right variable, Really fix select. 2016-06-21 20:31:53 -07:00
74806a43c9 OSC: Fix out of range track. (crash) 2016-06-21 19:19:07 -07:00
daddf2179f OSC: Add strip type selection. 2016-06-21 18:47:43 -07:00
556c97b2d5 always run amp/trim LPF
This fixes "clicks" when switching fader automation from "manual"
to "play/touch" while the transport is rolling.
2016-06-21 21:59:21 +02:00
791cff6f46 use new keyboard modifier names, and replace GDK names with better versions 2016-06-21 08:59:39 -04:00
ae4e84fd51 provide some Keyboard:: methods to get access to other versions of modifier names 2016-06-21 08:58:38 -04:00
10a4de1550 some modest improvements in the html rendering of key bindings, plus use of normal modifier names 2016-06-20 17:19:31 -04:00
557031ca11 Remove confusion over ambiguous symbols
libboost and libsigc++ both contain symbols called _1() / _2() etc. Forcing the use of namespace sigc causes us to use the ones from sigc++ when in fact, we want the ones from boost.

Hopefully this fix will work for all compilers.
2016-06-18 11:41:12 +01:00
48329f8d6e Make sure MSVC knows which version of 'floor()' we want 2016-06-18 11:36:13 +01:00
6ca3c67046 Use Glib::usleep() for consistency 2016-06-18 11:34:14 +01:00
425c40ff08 fix upsampling import of X-channel files where buffersize % X != 0 2016-06-17 22:17:58 +02:00
f4047b9a26 OSC: take care of track order changes too. Deal with mixer topology changes one time. 2016-06-16 19:41:39 -07:00
3754859f2f OSC: Blank some more feedback values when select observer is destroyed. 2016-06-16 16:07:09 -07:00
a9c09af816 set latency of sidechain port 2016-06-16 15:08:25 +02:00
0eb509ac2e remove debug output from Pane code 2016-06-14 11:46:24 -04:00
dcf852aae4 OSC: Catch new strips, gone strips and redo banks and observers. Add more select feedback. 2016-06-13 11:57:15 -07:00
9142d1edf5 working version of pane position mgmt for OS X 2016-06-13 09:52:54 -04:00
ceb0bce971 write some code to limit pane handle positions on OS X.
So far untested, and uncompiled
2016-06-13 09:10:47 -04:00
8d17465016 give WindowProxy its own map/unmap signals so that other things can track map/unmap without accessing the Window 2016-06-12 22:49:15 -04:00
00caabf735 ignore midi on monitor-section and force strict-i/o 2016-06-12 20:16:27 +02:00
21bf61d559 MackieControl: in sends subview, if there are no sends for a vpot, drop the controllable for the vpot 2016-06-12 08:44:34 -04:00
beafe2be6e fix MCP Cancel button "escape" action 2016-06-12 08:43:24 -04:00
a8d7b0fca3 redesign/reimplement selection knowledge in MackieControlProtocol object
strips listen to Stripable::presentation_info().PropertyChange, and forward selected status changes
to the MCP object
2016-06-12 08:19:16 -04:00
4717080aee reduce verbosity of -D mackie in the presence of continued handshaking/keepalive messages. 2016-06-12 08:18:01 -04:00
63ac1e7224 more meta-data placeholders for post-export command 2016-06-12 10:59:47 +02:00
3d9517c22f OSC: Add send enable control. 2016-06-11 13:57:27 -07:00
63e6378713 OSC: added solo isolate and solo safe/lock. 2016-06-11 12:09:15 -07:00
nick_m
bcf683df00 Fix exact tempo pulse for snap to bars case. 2016-06-12 03:26:02 +10:00
nick_m
24f64b3ea7 Make exact beat calculation of tempi a bit less cumbersome. Move tempi on an audio basis for non-musical snap. 2016-06-12 02:46:13 +10:00
nick_m
e973e39f06 Set tempo sections to the exact pulse when snapped to a musical grid. 2016-06-12 00:42:43 +10:00
ec8a4de015 make relative gain control in route groups work (again) 2016-06-10 16:59:34 -04:00
1695de335d OSC: Constrain master pan position as width requires. 2016-06-10 13:45:07 -07:00
b588308bed OSC: force non-active controls to zero. Keep pan within range wide allows. 2016-06-10 13:05:58 -07:00
nick_m
a1be0d0fe1 Unused variable - no-op. 2016-06-11 05:54:18 +10:00
nick_m
f3b4644969 Fix many offset errors when drawing notes in midi regions that have been edited.
- hopefully this can close bugs such as 6270 & 6793
2016-06-11 05:40:50 +10:00
49011ea146 noop: comment fix. 2016-06-10 13:57:19 -04:00
a2fd790252 New editor API to retrieve the Stripable with via presentation info order. 2016-06-10 13:57:19 -04:00
2d4358ddb5 Various changes to PresentationInfo and a small consolidation of sorters.
The semantics for sorting PresentationInfo are up to the caller, not the
PresentationInfo object, so operator<() was removed and callers specifically
invoke ::order() for sorting.
2016-06-10 13:57:18 -04:00
3eaa6c0389 remove certain ControlProtocol signals related to stripable selection
includes change to Mackie support so that strips listen for PropertyChange
on the stripables they represent, no global selection change used anymore.
2016-06-10 13:57:18 -04:00
nick_m
ae99b93cc2 Apply some constraints to bbt dragging.
- max tempo 1000 bpm

	- apply a minimum measurement distance.

	- ensure result is positive (!)
2016-06-10 11:45:40 +10:00
f65713c426 OSC: Finished Select send levels 2016-06-09 18:33:00 -07:00
049a678ff9 OSC: change the word phase to polarity as per mailing list. 2016-06-09 15:24:43 -07:00
624715cca7 provide a heuristic to decide if the color has been set for a PresentationInfo object 2016-06-09 16:24:22 -04:00
37aed5715b OSC: add phase control 2016-06-09 12:07:57 -07:00
4905422a47 OSC: Added pan width to selected 2016-06-09 11:11:48 -07:00
199f20ff2c namespace required 2016-06-09 13:24:35 -04:00
nick_m
260a0ca12c Amend last commit. 2016-06-10 01:14:08 +10:00
nick_m
e05b0862b5 Audio locked meters with an existing tempo may be dragged past that tempo's location. 2016-06-10 01:07:25 +10:00
3e29a46603 OSC: select commands for pan and trim added, feedback for select sends. GUI_select feedback done. 2016-06-08 23:08:56 -07:00
nick_m
8de12a4015 Possible fix for memory pool problem in session click. 2016-06-09 05:16:38 +10:00
e27df63bc5 Fix a couple of build errors in the test suite.
The parameters to Session::new_audio_track() changed in e0ff70cf, and
Playlist::region_list() was renamed to region_list_property() in
fce6ac0e. Update calls to these functions in the test suite to match.

A couple of tests still fail after these changes.
2016-06-08 19:56:34 +01:00
9a1c24dda7 fix thinko in Pane expose event handler.
There are always less dividers than children
2016-06-08 12:26:24 -04:00
fcf49de774 move gui_changed() signal from Route to Stripable 2016-06-08 11:03:13 -04:00
a223b96725 fix mute automation for busses & consolidate code. 2016-06-08 15:39:04 +02:00
fce6ac0ef6 consistent API name for region-list 2016-06-08 15:39:04 +02:00
f05ff9570e fix faderport's use of action name 2016-06-07 19:25:33 -04:00
83770f839b minor optimization when search for actions 2016-06-07 19:25:11 -04:00