d6d5903a24
fix Audio Unit BBT
2016-05-26 02:20:32 +02:00
cf6f9627e4
update VST audioMasterGetTime
...
* don't use a static struct. this fixes a concurrency issue with flags
and valid values
* send kVstTransportChanged IFF there is an actual change
* set system time
* send loop location
2016-05-26 01:04:43 +02:00
1d48648a73
fix timecode update after locate.
...
Various session rt-events set "_send_timecode_update" to true,
but at the same time queue post-transport-work.
The timecode-update is generated, but due to pending transport work
session->silent() is true and the timecode was never sent.
2016-05-25 19:20:09 +02:00
6c502b8315
allow to configure transient detection sensitivity
...
NB. this does not yet re-analyze regions when the config changes
and is hence also not [yet] exposed in the GUI.
2016-05-25 17:52:50 +02:00
5550eebe2f
fix MTC alignment
2016-05-25 17:13:09 +02:00
f34722bf49
treat different normalization settings as different formats
2016-05-25 14:24:13 +02:00
80cc70966c
missing local export config is not an error
2016-05-25 13:56:11 +02:00
cab6ae7137
backend check for rec-safe (only allow to lock if not armed)
2016-05-24 21:31:10 +02:00
a525055ce0
additional in-place check
2016-05-24 18:04:29 +02:00
1f17784ac5
fix potential undefined DnD behavior for external drags
...
dragging from the tree-view (e.g. favorite sidebar or plugin-manager)
will not set _drag_source.
drag-motion may wrongly interpret it as "re-order".
2016-05-24 17:58:24 +02:00
7aa85887da
more inter-thread progress fixes; slight change of semantics:
...
Background thread now *must* set "done" as last step. (they already do
since various error conditions don't result in "done")
This fixes a race: background thread Session::write_one_track() sets "done"
to true. Editor::freeze_route () continues, sets current_interthread_info
to NULL. thread continues and tries to set current_interthread_info.done
before terminating -> Crash.
This also ensures that singleton threads created with
"pthread_create_and_store" remain unique.
2016-05-24 03:33:08 +02:00
207d9c81db
some more route related lua bindings
2016-05-23 21:55:49 +02:00
2b53558e66
remove misspelled unused define
2016-05-23 02:29:55 +02:00
afc1186759
NO-OP indent
2016-05-22 19:36:54 +02:00
39ba60aaef
Make sure MSVC knows which version of 'floor()' we want
2016-05-22 15:53:16 +01:00
9ad096b611
Dummy Backend evolution
...
- pretty port-names for Dummy generators: show frequency
- add 1/3 Octave spaced sine-wave generator
2016-05-21 22:38:39 +02:00
489cef0913
Revert "debug unconfiged plugins"
...
This reverts commit 125e2014aa
.
2016-05-21 17:54:34 +02:00
eb35ba1d95
fix assert/crash if unknown processor's I/O mismatches
...
This can happen on OS X. Audio Units did not have
a MIDI bypass. Ardour adds an implicit bypass and existing
"unknown/missing" plugins after the instrument will see
a different i/o config.
2016-05-21 17:54:13 +02:00
742ebe9975
const'ness -- just because
2016-05-21 16:24:30 +02:00
298abc5c8c
"biquadratic" needs no camelcase - fixes API doc.
2016-05-21 16:23:35 +02:00
50d6f146f4
allow lua to access array at an offset
2016-05-21 15:55:14 +02:00
53c188beb3
keep DSP state variables finite.
2016-05-21 15:55:14 +02:00
b0200b23f2
Accommodate the fact that 'msvc_resources.rc.in' got moved to a new path
2016-05-21 10:33:18 +01:00
331d9f7154
live signal analysis is for the processor -- not the plugin(s) inside
2016-05-21 00:01:11 +02:00
d7e590f9c8
add lua DSP transfer function calculation
2016-05-20 23:14:51 +02:00
125e2014aa
debug unconfiged plugins
2016-05-20 17:34:37 +02:00
77f3518571
add midi-bypass to re-configurable-i/o instruments
2016-05-19 16:29:23 +02:00
eda4662e15
fix lua instrument plugins
2016-05-19 16:29:20 +02:00
b4d4cb805e
prepare plugin configuration and replacing instruments
2016-05-19 16:29:08 +02:00
f0fd7890a1
move "needs output port selector" (from pin-dialog) to backend
2016-05-19 01:46:11 +02:00
7e463bab6e
consolidate add_processor code
...
* fixes drag/copy'ing sidechain sends (autodestruct)
* reduce duplicated code
* prepare for instrument replacement
2016-05-19 01:44:44 +02:00
69d644e979
add locale guards for export format
2016-05-18 17:35:52 +02:00
283376db4c
bypass plugin(s) - not processor (plugin-insert keeps mapping)
2016-05-18 17:35:38 +02:00
524fb8df49
downgrade failed history/undo stack to info message
2016-05-17 18:18:34 +02:00
742e113a7b
backport canvas color functions from Mixbus
2016-05-17 18:17:51 +02:00
e610916c26
updated .de translation from edogawa
2016-05-16 10:36:33 -04:00
69ef55132d
updated .de translation from edogawa
2016-05-16 10:36:33 -04:00
fe74c587f3
add some location and transport related lua bindings
2016-05-14 23:54:04 +02:00
83d5d1e625
whitelist libardour bindings as rt-safe for session-scripts
2016-05-14 23:53:19 +02:00
3060b7bbc4
upper parameter limit is inclusive.
2016-05-14 16:14:45 +02:00
d10947d488
Modify the MSVC project for ptformat (which now needs to link to libglib)
2016-05-14 11:19:43 +01:00
963f43a146
libptfformat: use g_fopen() to avoid i18n errors with file paths/names
2016-05-10 18:24:46 -04:00
c23be46c15
use g_fopen() to avoid i18n errors with file paths/names
2016-05-10 15:55:45 -04:00
d53d9b01ab
prepare route pin display (shared mixer + editor-mixer window proxy)
2016-05-10 20:54:11 +02:00
4963d65206
track geometry via configure events for tabbable own-windows
2016-05-10 09:46:12 -04:00
ae7cc64377
copy-n-paste the ARDOUR_UI toggle-roll code into BasicUI (for Faderport and others)
2016-05-09 08:17:23 -04:00
914eee9f8c
Accommodate newly introduced source(s) in our MSVC project (libardour)
2016-05-08 11:56:51 +01:00
672528baf4
fix shared_ptr<Route> management in Mackie support so that deleted routes are destroyed
2016-05-07 13:36:04 -04:00
a232673454
make boost shared_ptr debugging a little easier to turn on/off
2016-05-07 13:36:04 -04:00
e59ab55831
a few strategic LocaleGuards..
...
..to prevent switching forth and back during individual
::state(), ::set_state() when loading/saving the session or locating.
2016-05-07 17:16:59 +02:00
2066afe28c
fix LV2 locale guard (missed in 6d343ba
search/replace)
2016-05-07 15:38:17 +02:00
a6e4494482
Revert "Add a global state localeguard (and one for route templates)"
...
This reverts commit 2b7a047e92
.
2016-05-07 12:20:40 +02:00
6d343ba3c6
fix LocaleGuard contstructor ( 3dc77280
)
2016-05-07 12:19:41 +02:00
f445ba8bdc
locale debugging
2016-05-07 12:15:12 +02:00
3d7cbe9d94
trying to get to the bottom of the decimal comma.
2016-05-07 01:22:32 +02:00
2b7a047e92
Add a global state localeguard (and one for route templates)
2016-05-07 01:11:28 +02:00
86c76656cc
add a locale-guard to panner state
2016-05-07 01:06:20 +02:00
d8ac5eddf7
add missing include
2016-05-06 21:25:21 +02:00
514da9881d
convert WinMME Device names to UTF-8
2016-05-06 20:59:24 +02:00
70160db4be
allow lua to construct PresetRecords
2016-05-06 16:02:24 +02:00
766a120a3c
add API to load Instrument Preset when creating a Midi track
2016-05-06 16:02:04 +02:00
864f9e497d
DnDTreeview: allow to handle multiple drag-targets
2016-05-06 14:51:29 +02:00
7fed1ce085
what an oversight!
2016-05-05 23:44:33 +02:00
3dc7728038
we always only use the "C" locale when saving.
2016-05-05 21:49:56 +02:00
2624c0966b
remove assert()s from LocaleGuard
2016-05-05 20:29:28 +02:00
bb99df867f
minor comment change
2016-05-05 14:21:55 -04:00
25603d810f
spelling fixes and an explanatory comment
2016-05-05 14:21:02 -04:00
f2c5522f0f
rework locale-guard for C and C++ locales
...
let's hope querying the C-locale is more lightweight than setting it
on windows.
2016-05-05 20:02:48 +02:00
a644212506
no need to force a change here.
...
Fixes an issue with Mixbus where set_active() is a NO-OP for mixbusses.
2016-05-05 18:33:50 +02:00
17ace643e4
OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)
2016-05-04 23:09:45 -04:00
ffc9901807
fix "warning: this decimal constant is unsigned only in ISO C90"
2016-05-05 01:28:17 +02:00
8882ef79d3
use existing API to find the instrument
2016-05-04 17:52:17 +02:00
6236c201bd
NO-OP, whitespace
2016-05-04 12:57:30 +02:00
e48da9d5d0
tweak cases where pin-mapping is reset & always sanitize map
2016-05-03 20:12:58 +02:00
dc1a2fbca7
MSVC won't compile 'const float _demolition[]' because it uses 'divide by zero' while initializing
...
Hopefully we can use INFINITY and NAN for the relevant initializers ?
2016-05-03 17:30:58 +01:00
a12288d9b5
Accommodate newly introduced source(s) in our MSVC project (audiographer)
2016-05-03 17:26:41 +01:00
ad4fe51255
handle single-bus, non-variable i/o Audio Units w/multiple configurations.
2016-05-03 18:17:29 +02:00
4c40fe8d04
another (non critical) concurrency issue:
...
Ignore latency-updates while removing tracks.
remove_tracks() calls disconnect_all() which can trigger the backend
to perform a latency-recompute in a different thread (process thread).
That calls Session::update_latency() which iterates over all routes
including the one(s) to be deleted.
At the same time disconnect_all() may propagate Port::PostDisconnect()
leading to a lock contention.
(no crash just a lot of unnecessary work. remove_routes() calls
update_latency_compensation() which triggers a recompute if needed)
2016-05-03 14:27:52 +02:00
255b5174c4
add a const method to check for existing key/value properties
...
handy to lookup up XMLNodes with "id" == ID w/o allocating memory.
2016-05-03 03:03:00 +02:00
42e2cc0976
use same tooltip timeout throughout Ardour -- part one
2016-05-02 20:24:46 +02:00
d01cb7910f
Add loudness normalization to Export Format & Graph
2016-05-02 15:44:13 +02:00
7547f02c07
prepare loudness normalization
2016-05-02 15:44:13 +02:00
9d50074a99
fix aubio-onset detection parameters
2016-05-01 18:47:14 +02:00
e6b95a3d65
fix a Wsigncompare and 2 -Wuninitialized
2016-05-01 13:35:30 +02:00
4727fa337d
fix: gcc4.2 / PPC compilation
...
no match for 'operator!=' in 'x != std::list<_Tp, _Alloc>::rend()
[with _Tp = long long int, _Alloc = std::allocator<long long int>]()'
2016-05-01 13:20:53 +02:00
82d1d7ef0b
various transient-detection fixes (split region, trim, move, undo,..)
...
* all API calls use session-time (allow region-lists)
* per-region transients are separated in
- Onset (Rhythm Rodent, Aubio)
- User-added
- internal/source (QM), used as fallback for next/prev (read-only)
2016-05-01 02:02:04 +02:00
791ac8f843
API call to be removed
2016-05-01 00:28:54 +02:00
8b52b69810
make BasicUI (for control surfaces) loop toggle work like the GUI
2016-04-30 10:54:40 -04:00
6d49e24503
implement lua plugin presets
2016-04-29 18:34:27 +02:00
69bd02bd25
remove skeleton backend (superseded by portaudio)
2016-04-29 16:43:09 +02:00
69f99ee184
I wanna be nasty, I wanna be cruel,..
...
Somme disastrous signal generators for QA.
2016-04-29 16:10:09 +02:00
e56c8f0309
don't special case lua processors, use plugin-manager
2016-04-29 02:57:42 +02:00
17d782829e
flush pending Session Events at session close
...
This prevents a memory leak: The session is closed.
The session-butler drops memory pool trash. The Engine keeps running.
Once the AudioEngine is taken down (sample-rate switch, or at exit),
the backend process-thread is terminated but there is no trash-can anymore.
If there are unprocessed SessionEvents, this calls
free_per_thread_pool() -> cp->parent()->add_to_trash (cp).
"parent()" in this case the trash-can the butler emptied.
2016-04-28 21:37:18 +02:00
633f218911
fix a deadlock with jack2 when inserting a plugin adds ports.
...
When adding a processor, the processor may add ports leading to
a call to jack_port_register(). while Ardour holds a WritertLock on the
processor-list (this commit removes this WriterLock).
with jack2 that results in a graph-reorder callback (WHY?)
jack2 issues that graph-reorder in a separate thread BUT
port-registration does not return until the graph-reorder is complete.
On Ardour's side, graph_reordered() calls Session::resort_routes ()
which eventually checks Route::direct_feeds_according_to_reality()
which needs a ReadLock on the processor-list to check I/O.
Since jack_port_register() does not return, this constitutes a deadlock.
THE ACTUAL PROBLEM IS JACK2's THREAD DESIGN!
Why does jack_port_register() trigger a graph-order in jack2?
No connections are made.
..and why does it block jack_port_register() from returning if
that graph-order callback is in a different thread?
http://pastebin.com/DZANXJLz
2016-04-28 21:15:26 +02:00
d81547efb4
add a debug message for LV2 per port buffer allocation
2016-04-28 12:27:53 +02:00
b961c1d8f2
another attempt to use platform-specific path for the default VST path
2016-04-27 17:39:38 -05:00
370b507d45
amend c1c81a239c
after testing
2016-04-27 23:52:34 +02:00
c30b47f0eb
allow to customize variable i/o plugin inputs
2016-04-27 23:34:55 +02:00
b191408f98
fix default 64bit Windows VST path ( untested )
2016-04-27 14:56:19 -05:00
c1c81a239c
probable fix for 64bit VST signal latency
2016-04-27 21:45:00 +02:00
4a226385b6
OSC: Fix Solo to work with both SIP and Listen.
2016-04-27 09:06:46 -07:00
4005ef9db6
tweak LV2 atom buffer allocation strategy
...
Allow to re-use Midi buffers for GUI communication. Honor
resize-port extension for all Atom Sequence buffers.
(following example of http://lv2plug.in/book/#_sampler )
2016-04-27 14:46:24 +02:00
9634888bf3
add the concept of a "state mask" that determines what info a WindowProxy will save
2016-04-27 00:03:14 -04:00
559860f016
make -D VSTCallbacks readable
2016-04-27 01:44:55 +02:00
da26a55b31
canvas tooltips, too
2016-04-27 01:24:37 +02:00
49e5494907
also hide persistent tooltips
...
debatable, since most of them are not "help/tool info" but rather
"current value display".
Then again tooltip is tooltip and can be annoying or not wanted.
2016-04-27 01:07:53 +02:00
cda5b48b96
initialize output data ports for cases where the plugin is not run
...
(e.g. load session with inactive track, or instantiate an audio plugin
on a midi track before the synth)
2016-04-26 22:21:00 +02:00
4b8bc84e4a
let GMainContext clean up after us.
...
this fixes a potential crash in
AsyncMIDIPort::~AsyncMIDIPort() -> CrossThreadChannel::~CrossThreadChannel()
2016-04-26 19:45:06 +02:00
43e620504a
port 93eac8b0
to ALSA and CoreAudio
2016-04-26 18:19:48 +02:00
59f7df38a2
allow to duplicate tracks with sends or load templates with sends/inserts
2016-04-26 18:16:14 +02:00
5227f57f2e
implement missing PortManager methods and lua-bind them
2016-04-26 18:16:14 +02:00
7f8c7d8647
#define HAVE_JACK_PORT_RENAME when building with MSVC
...
This means needing to build against libjack v1.9.11 (or later) although that's probably not a bad thing.
2016-04-26 15:02:20 +01:00
93eac8b068
Use 'const_iterator' to prevent MSVC from complaining
2016-04-26 14:58:16 +01:00
01286b442e
don't show engine dialog when loading a session..
...
..and the engine is running at the desired samplerate
2016-04-26 12:56:52 +02:00
7cbc6cf8a2
styleguide #10
...
sigc keeps a reference to the shared_ptr, AsyncMidiPorts were never
unregistered, causing issues when loading a new session w/o Engine
restart.
2016-04-26 04:02:58 +02:00
2169de3975
keep portmap & portindex in sync when renaming ports
...
Fixes crash on session re-load (introduced in 800c8182
and fde99e68
)
2016-04-26 02:26:20 +02:00
11a69068af
PortManager lua bindings (to debug lingering ports)
2016-04-26 02:21:09 +02:00
4f3f966276
update [lua bindings] documentation
2016-04-25 13:06:40 +02:00
f4f9963cdd
add missing header for luadoc
2016-04-25 02:35:45 +02:00
fde99e68f7
..and CoreAudio.
2016-04-24 20:45:50 +02:00
800c8182c6
O(log(n)) port and connection lookup for ALSA
2016-04-24 20:45:37 +02:00
ce052ba20a
now with C++98 compat
2016-04-24 18:34:31 +02:00
a3856d44b2
delayline: use boost::shared_array
2016-04-24 18:26:39 +02:00
d1874d4685
optimize port lookup, adding/removing/reconnecting routes
...
xxxAudioBackend::connected_to() is called O(N^2) when building the graph.
Mitigate this by using an O(log(N)) lookup.
This duplicates the storage (both set and map and both are kept in sync.
Changing this to a boost:bidirectional might be nice, before updating
other backends.
2016-04-24 18:26:39 +02:00
1321701189
reduce debug-build overhead.
2016-04-24 18:26:39 +02:00
36a928f0ae
we need the process lock after all..
2016-04-24 18:26:39 +02:00
f80c0faa24
some new lua-bindings and session-lua (creating sessions)
2016-04-24 14:43:18 +02:00
667a4aafb5
fix mismatched delete/delete[]
2016-04-24 14:43:18 +02:00
f6a621346c
some notes on mem-leaks...
2016-04-24 14:43:18 +02:00
e3536fbefe
hand over automationlist undo state ownership (mem-leak)
2016-04-24 14:43:18 +02:00
e3607a4c8b
plug some memory leaks in libardour
2016-04-24 14:43:18 +02:00
4fe7d1ea08
further tweaks to session close
2016-04-24 02:53:01 +02:00
f317451609
lua bindings for track/bus and session creation
2016-04-24 00:25:34 +02:00
f8936ebcb1
Disconnect Signals before dropping ports
...
significantly speeds up session close
2016-04-24 00:24:43 +02:00
2a7a64a873
delegate port-connections to low priority thread.
...
This prevents a deadlock with (some versions) jack:
* add new instrument track with instrument
* configure processors (takes processor lock)
* add I/Os (delivery) -> create ports
* auto-connect ports
* jack port-connect -> jack graph re-order
* Ardour graph-re-order
* needs processor lock (to check sends)
2016-04-23 22:11:48 +02:00
e4b2b6477f
fix typo in config variable
2016-04-23 00:01:28 +02:00
f719dcbd43
fix send-id "0" when loading session
...
Send::set_state() unsets the current send-id before setting
the new one, but by default _bitset defaults to zero.
This may lead to unset an existing send "0"
2016-04-22 23:36:41 +02:00
5c41043a2d
fix single-bus AU rendering & related updates
2016-04-22 22:04:48 +02:00
00f48c3d63
invalidate AU cache on re-scan
2016-04-22 21:10:39 +02:00
90babfaca3
use coreaudio wrapper
2016-04-22 20:50:06 +02:00
7e8fda8431
Single instance AUs only, use variable i/o
2016-04-22 19:35:38 +02:00
73aab79d59
AU multibus support
2016-04-22 18:48:20 +02:00
8a1aeccc82
fix AU cache clear
2016-04-22 18:48:20 +02:00
2dc6c1c74b
add API to load plugin presets for all instances
2016-04-22 14:24:45 +02:00
238cec8549
and now with proper closing bracket.
2016-04-21 01:04:55 +02:00
fca2e76db2
take MB dithering into account when stripping silence on export
2016-04-21 01:02:18 +02:00
fc4dd032a7
backend part for MB send-panners (ignore existing state, force disable)
2016-04-20 21:44:28 +02:00
49d044bf04
fix AU sidechain connection
2016-04-20 18:06:51 +02:00
3e659bb657
include sidechain when delegating I/O configuration
2016-04-20 17:24:50 +02:00
65fada3b0a
Mixbus: auto-connect monitor-section
...
Mixbus does not expose the "auto_connect_standard_busses" preference
and forces it to false.
2016-04-20 16:17:22 +02:00
ec44499666
amend 386f244f
- don't reinitialize I/O map
...
load ChanCount to compare if I/O maps have changed.
2016-04-20 15:14:15 +02:00
386f244f1e
Reset I/O map when copying plugin and ChanCount changes
2016-04-20 11:55:02 +02:00
622ba89dd9
OSC: removed unused _namespace_root variable.
2016-04-19 16:13:18 -07:00
d32333f4ef
fix stuck solo w/sidechain (when using port, not send, connections)
2016-04-19 22:15:57 +02:00
24282065aa
clear [midi] plugin audio output buffers before running plugin.
...
some samplers don't zero the output buffers if they're not configured
or no samples are loaded.
2016-04-19 20:39:40 +02:00
3715602ea7
Revert/amend "fix a const-cast issue"
...
This reverts commit c9d55cb172
.
because it it's "const" one cannot set it from lua.
2016-04-19 19:07:09 +02:00
c69a9d7a06
some plugin-insert debugging
...
* report inplace
* debug-dump reason(s) why i/o maps are reset
2016-04-19 19:03:16 +02:00
c9d55cb172
fix a const-cast issue
2016-04-19 12:58:54 -04:00
00169f1da1
hidden config option to replace TRY_AUTOSTART_ENGINE environment var.
...
It's really only used by the GUI, but engine states are part of
ARDOUR::Config::extra_xml so this is at least similarly inconsistent.
2016-04-19 16:43:06 +02:00
00b703ebe8
default strict-i/o preference to enable
...
This makes a lot of sense for all midi-instruments and the
vast majority of mono+stereo workflows
2016-04-19 16:40:17 +02:00
170fca53ee
Mixbus specific Pin Mapping tweaks
2016-04-19 13:54:07 +02:00
2729f59aba
NO-OP, whitespace and comments
2016-04-19 13:21:54 +02:00
428c82b1bc
fix plugin silence runs (e.g. during audition)
...
* use max of in+out buffers
* special case Mixbus
* clear delay-lines
2016-04-19 00:57:56 +02:00
26532364bb
fix possible crash at session close.
...
In the wake of 81faa3b420
. Disconnect Signal from process
callback, may notify an IO that just reached a zero shared ptr refcount
due to route-deletion (GUI thread) resulting in a double free.
2016-04-18 21:55:50 +02:00
008eda2858
add some assert for reloading saved plugin pin connections
2016-04-18 17:22:55 +02:00
b2149de37b
add notification if Engine Rate changes and mismatches session's SR
2016-04-18 15:16:27 +02:00
888614b714
never ever change sample-rate saved with the session after creation.
2016-04-18 14:50:09 +02:00
9840a11537
implement metadata-set for remaining backends
2016-04-18 00:35:51 +02:00
fa73112f08
set sidechain port pretty name
2016-04-17 21:50:20 +02:00
cb09b0b34e
add IOProcessors pretty name support
2016-04-17 21:50:13 +02:00
81faa3b420
notify IO about port disconnection due to port removal
...
[Jack] Ports can be deleted without being disconnected first.
the IO Object does not catch that condition.
2016-04-17 18:36:40 +02:00
10bffda810
add API to set pretty names for ardour ports
2016-04-17 18:34:17 +02:00
10140a8e68
implement pretty-name set-property for ALSA and Dummy
2016-04-17 18:22:21 +02:00
1f43878050
add portengine set-property API (follows jack_set_property)
2016-04-17 18:18:16 +02:00
dc1102844a
disconnect SideChain on delete, trigger Send self-destruct
2016-04-17 17:35:30 +02:00
6e94b1fb9f
copy plugin state to all instances when instantiating.
2016-04-17 16:09:25 +02:00
ab1242ca65
don't use lv2plug.in for non-standard URIs
2016-04-17 16:08:53 +02:00
bb090c0012
add self-removing Sends (remove on disconnect)
...
The idea is to dynamically add/remove sends for feeding a sidechain
and re-use all existing "External Send" infrastructure in particular
latency compensation.
2016-04-17 14:01:09 +02:00
3079a73488
don't let the AudioEngine inherit PortEngine's class doc.
2016-04-16 12:45:52 +02:00
8f367ddaa0
Remove dangling plugin thru-connections
...
fixes crash when removing a thru-connected output
2016-04-16 12:43:56 +02:00
277893b130
ptformat: Make PT import more resilient to bad user choices and display messages
...
Previously, libptformat would attempt to parse all kinds of files,
now the library stops parsing when the version number and session rate
is outside valid ranges, returning an error code to the caller.
If there is a valid PT file detected, but some audio files are missing,
Ardour now pops up an error message to inform the user that some files
may be missing from the import. A success message is displayed otherwise.
Signed-off-by: Damien Zammit <damien@zamaudio.com>
2016-04-16 12:21:12 +02:00
241f734af4
disallow strict-i/o output on monitor and auditioner
...
monitor follows the master bus outs,
auditioner is fixed stereo and synth dependent.
(fixes crash when adding/removing the monitor section)
2016-04-16 00:10:48 +02:00
b6c8b96cf2
fix duplicate definition (typo in 5242aeb8
)
2016-04-15 18:43:06 +02:00
424cacfbc8
variable plugin port config.
...
* extend plugin API (query IO ports)
* collect possible variable plugin configurations (AU, Lua)
* prepare semi-automatic configuration (presets: mono, stereo, N)
2016-04-15 17:57:40 +02:00
ed3eddaf19
special case mixbus routing
2016-04-15 14:52:19 +02:00
426e2f2a19
AU synth inplace processing
2016-04-15 13:36:02 +02:00
52a8bad4a2
luaproc error logging
2016-04-15 03:24:37 +02:00
9041fc8d54
find a good match for variable i/o plugins
2016-04-15 03:24:22 +02:00
ba67217dbc
document buffer requirement, add sidechain constraint.
2016-04-14 22:43:14 +02:00
03db4805fd
fix locking when switching strict i/o.
...
try_configure_processors_unlocked() needs process lock
2016-04-14 22:13:25 +02:00
4f3fed1c08
fix split plugin default connection with strict-i/o
...
Only connect the available input channels, ignore others.
2016-04-14 21:02:28 +02:00
a3eaa4d3f0
Mixbus enforces output port count
...
Ardour features N in -> M out panners. It can make sense that
the last processor has fewer outputs than the route.
In Mixbus this is not the case.
2016-04-14 20:01:52 +02:00
104fafbdc2
fix odd case where a deliver has no ports e.g session load.
2016-04-14 19:20:39 +02:00
7962176219
properly calculate requrired thread buffers
2016-04-14 14:13:26 +02:00
5af4ce47eb
alternative approach for 48532baaa
, C++98 compat that actually works, too
2016-04-14 12:46:23 +02:00
eda1508da1
Revert "remove C++11'isms from libptformat. back to C++98 compat."
...
This reverts commit 48532baaa7
.
2016-04-14 12:45:02 +02:00
204c8016c7
allow to compare C class instances from lua
2016-04-14 03:08:02 +02:00
1b097d57bd
NO-OP, whitespace
2016-04-13 20:58:35 +02:00
9b8faf1679
allow midi tracks with audio-out only (and vice versa)
...
and a potential fix for odd noise on startup.
2016-04-13 20:57:40 +02:00
9fedb74b36
strict i/o sets enforces output port count.
2016-04-13 20:54:42 +02:00
868ed41d09
fix typo
2016-04-13 20:31:14 +02:00
ab6d93bf59
fix configurable IO MIDI FX w/strict-i/o
2016-04-13 20:13:39 +02:00
b4e4bd8733
fix crash introduced in 0d1cd3865d
2016-04-13 19:10:43 +02:00
bc0bb9662e
prepare fix for copying plugin state
2016-04-13 18:53:47 +02:00
0d1cd3865d
properly auto-connect sidechain pins
...
Handle cases where the SC pin is not the last (SC3 anyone?)
also round-robin connect multiple SC inputs when replicating instances.
2016-04-13 17:42:38 +02:00
51d58d2c08
fix OSX builds
2016-04-13 14:47:36 +02:00
66b14b7bbb
special case strict-i/o on the master-bus
2016-04-13 13:23:17 +02:00
2b3205df0c
initialize uninitialized variable
2016-04-13 12:37:19 +02:00
7239cb09d9
extend strict-i/o to include route outputs.
2016-04-13 12:28:57 +02:00
e77729125e
VST report audioMasterPinConnected according to Pin Management
2016-04-13 00:52:47 +02:00
e8366dbd83
prepare VST plugins for reporting connected pins
...
The VST needs a way to get the parent PluginInserts's channel-map :(
2016-04-13 00:52:28 +02:00
238d644bf7
expose sidechain binding, fix "bounce" typo
2016-04-13 00:52:17 +02:00
a95e7fe275
yet more documentation..
2016-04-13 00:07:28 +02:00
6f7ac64d42
Modify 'getIdentityKey()' function to have LuaBridge_API linkage when building with MSVC (rather than simply 'extern')
2016-04-12 17:55:17 +01:00
e6dcc2d77d
Change LuaBridge_API to be __declspec(dllexport) or __declspec(dllimport, as required
2016-04-12 17:55:16 +01:00
2b4dc843ad
fix typo in luabindings
2016-04-12 18:13:03 +02:00
04c56a0618
some strategic documentation
...
Prevent class descriptions inheriting the doc from PBD:Stateful by
adding some specific doc.
2016-04-12 17:03:44 +02:00
9b5809fe74
use dedicated counter for sidechain port numbering
2016-04-12 13:50:01 +02:00
29543a5dcd
add a new counter (for sidechain numbering)
2016-04-12 13:49:50 +02:00
f5e4d3b032
NO-OP; document some more parameters.
...
Since headers only provide the declaration, function
parameters need to be documented.
2016-04-12 11:06:35 +02:00
7292989a5a
some more windows bandaids for optimized builds
...
really this is getting UGLY.
2016-04-12 02:18:20 +02:00
3fef6a3b8d
hotfix process-graph: include internal-send -> internal return
2016-04-12 00:33:06 +02:00
8002b2d26e
special case luabridge for windows/MSVC
...
luabridge uses static fn addresses to identify classes.
Windows uses different addresses for *identical* static functions
in libardour.dll and ardour.exe
This solves the issue by moving the all functions from a
header-only implementation into libardour.
2016-04-11 22:19:25 +02:00
ab01d150be
clean up lua-class inheritance
...
Implicit casts of derived classes only work for the first parent.
other parent classes require dedicated casts
2016-04-11 14:04:45 +02:00
04c9b3155c
add some class documentation
2016-04-11 14:03:37 +02:00
c6d4fafcd9
update lua related doc, add missing bindings
2016-04-10 23:01:44 +02:00
9609ef7764
expose port bindings
2016-04-10 20:56:45 +02:00
86a45e3cac
add lua bindings for Automation Events
2016-04-10 20:56:14 +02:00
1c084d1e0e
NO-OP whitespace + comments
2016-04-10 20:56:06 +02:00
09202249e1
NO-OP document Evoral::ControlList
2016-04-10 20:55:59 +02:00
de23c3d3ae
add a C++ lifetime MementoCommand API
2016-04-10 17:13:00 +02:00
0e70b779b4
expose Undo Commands to Lua
...
Some trickery is needed here to manage object lifetimes and
multiple inheritance.
2016-04-10 01:45:41 +02:00
ac7765bceb
add some more libardour lua bindings
2016-04-09 15:45:30 +02:00
ed25eec79b
another lua convenience API
2016-04-09 15:45:30 +02:00
2ff63925c2
refactor and document delayline
2016-04-09 15:45:30 +02:00
888648e4e0
Accommodate newly introduced source(s) in our MSVC project (libardour)
2016-04-09 09:44:32 +01:00
024cf58c05
improve elapsed time readability for large numbers.
2016-04-08 21:50:02 +02:00
94ebad3854
Profile Session::save_state
2016-04-08 21:45:32 +02:00
ff05c82312
Revert "experimental session-save speedup" -- needs C++11
...
This reverts commit d1dcedaccf
.
2016-04-08 21:21:38 +02:00
3def1b2830
more potential session-save speedup.
...
std:vector trumps std::list speed in all aspects: traversal, insertion
(at end) and Deletion. ..but we'll have to be careful about iterators..
2016-04-08 21:03:23 +02:00
d1dcedaccf
experimental session-save speedup
...
property order is not important,
unordered_map lookup and insertion is O(1)
2016-04-08 20:32:49 +02:00
6dd5d6df71
Latency compensation for plugin thru routing.
2016-04-08 18:21:46 +02:00
681b65aa0b
Add a fixed (not de-clicked) multi-buffer audio/midi delayline.
...
A ringbuffer intended to be used for plugin-thru/bypass
latency compensation.
2016-04-08 18:16:37 +02:00
e27096b054
consistent count/n_total API
2016-04-08 18:16:19 +02:00
752662051a
add Plugin LatencyChanged() signal and max latency report
2016-04-08 18:16:01 +02:00
01251e7e14
mark session dirty when plugin pin mapping changes
2016-04-07 18:38:24 +02:00
18713b7d1f
add support for plugin bypass/thru connections
...
TODO: remove midi-bypass special case (backwards compatible)
2016-04-07 18:24:00 +02:00
7abb46a487
amend 00ecc545
(split + inplace)
2016-04-06 17:03:36 +02:00
165ae0863a
consistent lua binding name (nil is a reserved word in lua)
2016-04-06 17:03:28 +02:00
00ecc545bc
return of the in-place split-processing optimization
2016-04-06 15:31:13 +02:00