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::*)())<::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