Commit Graph

61 Commits

Author SHA1 Message Date
Paul Davis
17ace643e4 OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one) 2016-05-04 23:09:45 -04:00
Robin Gareus
0189b1eae9 restore measured Insert latency
(XML underscore vs dash)
2015-11-25 19:09:23 +01:00
Robin Gareus
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
Robin Gareus
42bfc63d7a fix pre-fader insert mute. 2015-07-15 16:53:29 +02:00
Paul Davis
3020b224fa Merge windows+cc branch into cairocanvas branch. Not finished, need to now merge windows branch to get changes from there 2014-01-10 16:07:57 -05:00
Robin Gareus
37264c85a5 centralize buffer silent-flag
fixes possible x-talk 1 in, >= 2 out tracks:

Previously, only the first route-buffer of the input buffers
were marked as non-silent in Route::process_output_buffers().
Other buffers in the set (e.g. post-panner) would
contain audio but not marked as non-silent.
2013-12-28 13:43:44 +01:00
Paul Davis
bb826f4bee incomplete merge of master into windows (requires upcoming changes to master to be complete) 2013-09-12 11:28:50 -04:00
Paul Davis
676ff80697 basic functionality for hardware latency measurement 2013-09-10 22:58:33 -04:00
Paul Davis
616f2a0370 fix conflicts after merge with master 2013-08-05 14:22:32 -04:00
John Emmas
0dc8806ee4 'libs/ardour' - Platform specific changes and includes 2013-08-04 19:03:32 +01:00
Paul Davis
aaabaf5d3c Merge branch 'master' into windows 2013-08-02 12:51:24 -04:00
Robin Gareus
bfd50cdeb0 rework MIDI [processor|plugin] chain
* forward midi-data around plugins that have no MIDI-out
* allow to insert plugins with no MIDI-input at a point with one MIDI-channel

This works because excess ports (both plugin and route) remain
unconnected and use scratch-buffers.

Tested with LV2, LXVST and LADSPA.
(AU plugins with variable in/out retain the old behavior, no bypass)

fixes http://tracker.ardour.org/view.php?id=5630
2013-08-02 03:39:00 +02:00
Paul Davis
20b1a7d9d8 most of libardour now actually compiles 2013-07-25 12:36:54 -04:00
Paul Davis
6542ce76d0 Don't use trylock in assertions on windows as it will fail
glib uses TryEnterCriticalSection on windows which will return true
if the lock as able to be locked *or* is already locked by the current
thread.
2013-07-13 16:57:04 -04:00
Paul Davis
0e0c15833e new MTDM implementation from Fons' latest jack_delay implementation
git-svn-id: svn://localhost/ardour2/branches/3.0@13394 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-07 17:13:37 +00:00
Paul Davis
b621b28fce make it possible to (and actually do) name insert and send ports as "return" and "send" rather than "in" and "out" (#5012)
git-svn-id: svn://localhost/ardour2/branches/3.0@13052 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-17 13:59:46 +00:00
Carl Hetherington
c1c5151ca4 Prevent latency measurement output buffer being silenced by
cycle_end, to fix port insert latency measurement (#4504).


git-svn-id: svn://localhost/ardour2/branches/3.0@12530 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-01 18:24:38 +00:00
Carl Hetherington
162d672769 Minor tidy-ups to MTDM code; add test.
git-svn-id: svn://localhost/ardour2/branches/3.0@12527 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-01 16:52:56 +00:00
David Robillard
6fa6514cfd Remove over 500 unnecessary includes (including 54 of session.h).
It's slightly possible that this causes trivial build failures on different
configurations, but otherwise shouldn't cause any problems (i.e. no actual
changes other than include/naming/namespace stuff).  I deliberately avoided
removing libardour-config.h since this can mysteriously break things, though a
few of those do seem to be unnecessary.

This commit only targets includes of ardour/*.h.  There is also a very large
number of unnecessary includes of stuff in gtk2_ardour; tackling that should
also give a big improvement in build time when things are modified.


git-svn-id: svn://localhost/ardour2/branches/3.0@12420 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-24 06:09:29 +00:00
Paul Davis
730937dc37 better, cleaner fix for copying sends/returns/port inserts via XML state
git-svn-id: svn://localhost/ardour2/branches/3.0@11691 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-15 02:31:09 +00:00
Paul Davis
d46acb86ea redesign how XML state, bitslots and names get propagated during copying a send/port insert/return
git-svn-id: svn://localhost/ardour2/branches/3.0@11669 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-13 20:14:55 +00:00
Paul Davis
d05a09991a catch up with is_silent change
git-svn-id: svn://localhost/ardour2/branches/3.0@10868 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-02 20:02:28 +00:00
David Robillard
a473d630eb Fix broken whitespace. I'd apologize for the compile times if it was my fault :D
git-svn-id: svn://localhost/ardour2/branches/3.0@9654 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-01 16:50:12 +00:00
Carl Hetherington
53d0aeea2b Save/restore PortInsert state fully (fixes #3901).
git-svn-id: svn://localhost/ardour2/branches/3.0@9244 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-30 12:59:15 +00:00
Paul Davis
15b5fce904 merge 3.0-panexp (pan experiments) branch, revisions 8534-8585 into 3.0, thus ending 3.0-panexp. THIS COMMIT WILL BREAK ALL EXISTING 3.0 SESSIONS IN SOME WAY (possibly not fatally).
git-svn-id: svn://localhost/ardour2/branches/3.0@8586 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-01-27 01:31:03 +00:00
Carl Hetherington
b3fcaf71d4 Fix loading of PortInserts from 2.X sessions.
git-svn-id: svn://localhost/ardour2/branches/3.0@8287 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-16 12:48:50 +00:00
Carl Hetherington
9e4b7a45fe Fix deadlock.
git-svn-id: svn://localhost/ardour2/branches/3.0@8286 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-16 12:48:11 +00:00
Carl Hetherington
73192bc1a7 Remove all use of nframes_t.
git-svn-id: svn://localhost/ardour2/branches/3.0@8166 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-03 22:26:29 +00:00
Carl Hetherington
54cbc45a5a Prevent removal of route inputs when the plugins cannot be configured with the new number. Rework locking so that the process lock is held from the point that a route input is removed until after the processors are reconfigured; fixes #3548.
git-svn-id: svn://localhost/ardour2/branches/3.0@8089 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-11-25 23:46:24 +00:00
Paul Davis
7b6b75f38f forward port automation handling changes from 2.x, upto and including about rev 6981 (will need full testing in the 3.X context). as on 2.x, this removes real-time visual updates to automation curves during write/touch automation recording
git-svn-id: svn://localhost/ardour2/branches/3.0@7653 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-19 21:09:40 +00:00
Paul Davis
a4d9d09af5 forward port 2.X changes up to and including rev 6714
git-svn-id: svn://localhost/ardour2/branches/3.0@7635 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-16 19:58:34 +00:00
Paul Davis
f08a4e014d don't override user naming of send/return/port inserts
git-svn-id: svn://localhost/ardour2/branches/3.0@6820 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-04-01 01:59:47 +00:00
Paul Davis
c0c617902e revisit setting up processors during route construction; remove several more XML-based constructors; don't put () parens around inactive plugin names (we have a checkbox); improve management of send, return and insert bitslot IDs; clean up Diskstream construction a bit more
git-svn-id: svn://localhost/ardour2/branches/3.0@6819 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-04-01 01:24:13 +00:00
Paul Davis
6ef5d85ae1 changes from 2.X starting in march 2009 through oct 20 2009 (5826 inclusive)
git-svn-id: svn://localhost/ardour2/branches/3.0@6761 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-03-16 15:33:04 +00:00
Paul Davis
c83389b8ec cleanup up cleanup at session destruction; clarify the meaning of 3 signals (DropReferences & Destroyed in libardour ; CatchDeletion in the GTK UI); clarify ownership of objects (session no longer pays attention to DropReferences for objects that it is considered to own, such as routes, sources, etc); fix up MIDI parsing and a couple of other places by correcting syntax for return of values from a boost::signals2::signal (possible danger elsewhere to be checked)
git-svn-id: svn://localhost/ardour2/branches/3.0@6389 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-22 20:21:43 +00:00
Paul Davis
f6fdd8dcbf switch to using boost::signals2 instead of sigc++, at least for libardour. not finished yet, but compiles, loads sessions, records and can close a session without a crash
git-svn-id: svn://localhost/ardour2/branches/3.0@6372 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-17 18:24:23 +00:00
Carl Hetherington
bdf5dead24 Make port inserts work.
git-svn-id: svn://localhost/ardour2/branches/3.0@6289 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-04 22:56:39 +00:00
Carl Hetherington
d901932f07 Fix setup of port insert IO names.
git-svn-id: svn://localhost/ardour2/branches/3.0@6276 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-04 11:08:53 +00:00
Carl Hetherington
47b8fa2169 Give Processor::run a new parameter to say whether or not the run method must leave
the passed-in buffers valid.  In the case where the main outs delivery is the last
processor in a route, this is not necessary (and wasteful).  If another processor
(e.g. a meter) follows the main outs, the passed-in (scratch) buffers must be valid
or the meter will get garbage data.

Fixes meters displaying phantom signals in some cases.


git-svn-id: svn://localhost/ardour2/branches/3.0@6180 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-11-25 23:29:52 +00:00
Paul Davis
8713667ec1 rework Stateful::set_state() patch to avoid default version argument
git-svn-id: svn://localhost/ardour2/branches/3.0@5787 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-15 18:56:11 +00:00
Carl Hetherington
79f91c7a20 Part 1 of loading 2.X sessions; some things work, some things don't, hacks a-plenty.
LOADING 2.X SESSIONS WITH THIS COMMIT IN PLACE WILL (PROBABLY) CORRUPT THE .ardour FILE,
MAKING THE SESSION UNLOADABLE ON 2.X AND LOSING INFORMATION.

So don't do that unless you make a backup of the session file first.



git-svn-id: svn://localhost/ardour2/branches/3.0@5786 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-15 00:57:55 +00:00
David Robillard
bb9cc45cd2 Strip trailing whitespace and fix other whitespace errors (e.g. space/tab mixing). Whitespace changes only.
Vimmers, try let c_space_errors = 1 in your .vimrc to highlight this kind of stuff in red.  I don't know the emacs equivalent...


git-svn-id: svn://localhost/ardour2/branches/3.0@5773 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-14 16:10:01 +00:00
Paul Davis
f411496289 fix clicking when processors become active/inactive; reduce crazy 2.5sec delay for quit dialog
git-svn-id: svn://localhost/ardour2/branches/3.0@5402 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-07-21 14:39:21 +00:00
Paul Davis
6e9b9294e1 nick m's fix for markers etc ; several tweaks for mute/solo ; rename run_in_place() as run()
git-svn-id: svn://localhost/ardour2/branches/3.0@5155 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-06-10 18:10:07 +00:00
Paul Davis
e6eb059576 the big Route structure refactor. !!!! THIS WILL ***NOT LOAD*** PRIOR 3.0 or 2.X SESSIONS !!!! BREAKAGE IS EXPECTED !!!! IF YOU HAVE AND NEED A WORKING 3.0 DO **NOT** UPDATE. !!!! otherwise, update and enjoy the steadily emerging joys of this major reworking of ardour internals
git-svn-id: svn://localhost/ardour2/branches/3.0@5137 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-06-09 20:21:19 +00:00
Paul Davis
0569107ddc more work on the new all-Processor-all-The-Time redesign of Route - LOTS OF BREAKAGE STILL EXPECTED ; change all(?) methods that pass a start/end frame in to use sframes_t not nframes_t
git-svn-id: svn://localhost/ardour2/branches/3.0@5074 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-13 21:34:09 +00:00
David Robillard
2c231282ba Returns (i.e. sidechains).
And lo, upon the revision of our hoarde 5061, was the last Big Feature
committed to Three Poino, who, now more than ever, lurks imposingly on
the sidelines, heir to the throne, and eventual ruler of the realm.
His eventual succession all but guaranteed, only time and the number
of heads that must roll remain mysteries.


git-svn-id: svn://localhost/ardour2/branches/3.0@5061 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-07 17:31:18 +00:00
David Robillard
7183242b8c The great audio processing overhaul.
The vast majority of Route signal processing is now simply in the list of
processors.  There are definitely regressions here, but there's also
a lot of things fixed.  It's far too much work to let diverge anymore
regardless, so here it is.

The basic model is: A route has a fixed set of input channels (matching
its JACK input ports and diskstream).  The first processor takes this
as input.  The next processor is configured using the first processor's
output as input, and is allowed to choose whatever output it wants
given that input... and so on, and so on.  Finally, the last processor's
requested output is used to set up the panner and create whatever Jack
ports are needed to output the data.

All 'special' internal processors (meter, fader, amp, insert, send) are
currently transparent: they read any input, and return the same set
of channels back (unmodified, except for amp).

User visible changes:
 * LV2 Instrument support (tracks with both MIDI and audio channels)
 * MIDI in/out plugin support
 * Generic plugin replication (for MIDI plugins, MIDI/audio plugins)
 * Movable meter point

Known Bugs:
 * Things seem to get weird on loaded sessions
 * Output delivery is sketchy
 * 2.0 session loading was probably already broken...
   but it's definitely broken now :)

Please test this and file bugs if you have any time...



git-svn-id: svn://localhost/ardour2/branches/3.0@5055 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-07 06:30:50 +00:00
Paul Davis
2836879341 remove offset from process callback tree. some breakage may have occured. yes, really.
git-svn-id: svn://localhost/ardour2/branches/3.0@4999 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-04-23 17:48:37 +00:00
David Robillard
e0aaed6d65 *** NEW CODING POLICY ***
All #include statements that include a header that is a part of a library
bundled with ardour MUST use quotes, not angle brackets.

Do this:

#include "ardour/types.h"

NOT this:

#include <ardour/types.h>

Rationale:

This is best practice in general, to ensure we include the local version
and not the system version.  That quotes mean "local" (in some sense)
and angle brackets mean "system" (in some sense) is a ubiquitous
convention and IIRC right in the C spec somewhere.

More pragmatically, this is required by (my) waf (stuff) for dependencies
to work correctly.  That is:

!!! FAILURE TO DO THIS CAN RESULT IN BROKEN BUILDS !!!

Failure to comply is punishable by death by torture. :)

P.S. It's not that dramatic in all cases, but this (in combination with some
GCC flags specific to the include type) is the best way I have found to be
absolutely 100% positive the local ones are being used (and we definitely
want to be absolutely 100% positive on that one).


git-svn-id: svn://localhost/ardour2/branches/3.0@4655 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-25 18:26:51 +00:00