Commit graph

56 commits

Author SHA1 Message Date
Paul Davis
55e52bcbd5 remove another naming that refers to JACK 2013-08-09 13:38:09 -04:00
Paul Davis
8960ebcdf9 remove another naming that refers to JACK 2013-08-09 13:27:05 -04:00
Robin Gareus
a1d0093bfa honor LV2 rsz:minimumSize for Atom Event buffers 2013-06-03 00:48:17 +02:00
Robin Gareus
db39613238 Forward midi feedback from LV2 plugins and allow to chain LV2 midi plugins. 2013-05-19 17:19:01 +02:00
David Robillard
b47619c458 Deliver MIDI events to atom ports that support it, merged with transport events.
Eliminate delivery of non-MIDI events to Ardour MIDI buffers.
Fix the general mess of LV2 port flags and types.
Unify old MIDI API and new atom API MIDI stuff.

Making this work required changing the way we do LV2 MIDI slightly: instead of
BufferSet::get_lv2_midi doing the translation automatically, it returns an
empty buffer and the caller is responsible for actually filling it.  This
allows the LV2 code to iterate over the MIDI and transport changes in one go to
merge them into the buffer at the correct times.

Synth plugins using the new atom API now work and can get accurate transport
information along with the MIDI that drives them.


git-svn-id: svn://localhost/ardour2/branches/3.0@13522 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-18 04:35:31 +00:00
David Robillard
4c5ef5318e Sent precise transport information to LV2 plugins via events.
We send the full transport state (frame position, BBT time, transport speed,
meter) to the plugin:

 * At the start of a cycle whenever a relocate or transport speed change has
   occurred

 * On every occurrence of a meter change within a cycle

This means the plugin gets a sample accurate meter/tempo map, even if the meter
changes in the middle of a cycle.  However, this is not quite right yet: things
can get wonky if the tempo map is edited while rolling, since this code will
not detect the change and fail to update the plugin at the start of the cycle.

Other changes:

 * Factor out TempoMetric::set_metric() and simplify some tempo functions
 * Clean up LV2 URID stuff


git-svn-id: svn://localhost/ardour2/branches/3.0@13513 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-17 18:41:19 +00:00
David Robillard
3696f98e6f Re-implement URIMap to tolerate broken plugins that use the wrong context to
map MIDI event types (fix #4889).

All uri-map contexts are now just ignored, and equivalent to urid (which is
equivalent to uri-map with context NULL).  We now just hope that no event types
are mapped after UINT16_MAX URIs have been mapped, and die horribly otherwise.
This is exceedingly unlikely to happen any time in the next several years, if
ever.


git-svn-id: svn://localhost/ardour2/branches/3.0@12462 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-27 23:05:45 +00:00
Carl Hetherington
80095b7c9d Missing include.
git-svn-id: svn://localhost/ardour2/branches/3.0@12433 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-24 17:43:13 +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
David Robillard
8de887f378 Update to latest LV2 atom extension.
git-svn-id: svn://localhost/ardour2/branches/3.0@11548 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-29 03:21:37 +00:00
David Robillard
f122504784 Support LV2 atom sequence ports alongside old event ports.
git-svn-id: svn://localhost/ardour2/branches/3.0@11517 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-25 04:16:42 +00:00
Paul Davis
ed2beaffee main fix: when transport stops, clear per-region per-playlist note trackers even if there is no capture data to process; side effects: remove unused MidiBuffer::merge() and add DEBUG::MidiTrackers as well as more and better MIDI debug tracing facilities
git-svn-id: svn://localhost/ardour2/branches/3.0@11057 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-22 20:14:47 +00:00
David Robillard
7adac311b4 Fix whitespace.
git-svn-id: svn://localhost/ardour2/branches/3.0@10951 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-09 19:36:20 +00:00
Paul Davis
5aa4d95f59 rename a Buffer/BufferSet method to be a little clearer as to its intent (is_silent(bool) => set_is_silent(bool))
git-svn-id: svn://localhost/ardour2/branches/3.0@10867 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-02 19:53:33 +00:00
Carl Hetherington
d98b2b6039 Use same aeffectx.h for windows and linux VSTs.
git-svn-id: svn://localhost/ardour2/branches/3.0@10757 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-22 01:28:27 +00:00
Carl Hetherington
d9a3c6b89f Rename windows VST stuff with a Windows prefix.
git-svn-id: svn://localhost/ardour2/branches/3.0@10738 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-21 17:42:29 +00:00
Carl Hetherington
c7d2497e2b Discard MIDI when sending to the monitor bus. Fixes
#4372.


git-svn-id: svn://localhost/ardour2/branches/3.0@10212 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-17 20:35:55 +00:00
Paul Davis
d4433b9ab3 (native) Linux VST support from LinuxDSP
git-svn-id: svn://localhost/ardour2/branches/3.0@10101 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-09-20 20:29:47 +00:00
Paul Davis
862972eaaa use std::vector::assign() in BufferSet::attach_buffers() rather than an explicit loop; minor formatting touchups
git-svn-id: svn://localhost/ardour2/branches/3.0@9912 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-22 15:44:13 +00:00
Carl Hetherington
16db8b5972 Add a couple of missing attach_buffers() calls after _ports has been changed. I think this fixes #3856.
git-svn-id: svn://localhost/ardour2/branches/3.0@9858 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-13 01:00:53 +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
David Robillard
c78528dcea Use LV2_SUPPORT define instead of HAVE_SLV2.
git-svn-id: svn://localhost/ardour2/branches/3.0@9510 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-14 17:59:16 +00:00
Carl Hetherington
110311e186 Re-fix compile failure with --no-nls (#3111).
git-svn-id: svn://localhost/ardour2/branches/3.0@9415 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-23 03:34:42 +00:00
Paul Davis
665f3bea5a fix all manner of wrongness with port buffer offsets
git-svn-id: svn://localhost/ardour2/branches/3.0@9098 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-07 19:06:42 +00:00
Paul Davis
c9e78d432f some LV2 debug tracing
git-svn-id: svn://localhost/ardour2/branches/3.0@9078 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-05 23:14:39 +00:00
Carl Hetherington
dd7caa0165 Optimise BufferSet::attach_buffers code to avoid memory allocation in the RT thread and speed things up a bit.
git-svn-id: svn://localhost/ardour2/branches/3.0@8490 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-01-10 16:23:54 +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
d86000efd0 Fix crash when running an analysis of a plugin with MIDI IO.
git-svn-id: svn://localhost/ardour2/branches/3.0@7889 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-10-09 12:17:46 +00:00
Carl Hetherington
da4dee659b Re-work duplicate and buggy ensure_buffers() method.
git-svn-id: svn://localhost/ardour2/branches/3.0@7659 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-20 20:00:08 +00:00
Carl Hetherington
6f5ee7c429 Fix up VST build and add basic support for VSTi
git-svn-id: svn://localhost/ardour2/branches/3.0@7403 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-11 21:55:11 +00:00
Carl Hetherington
89c8f18f5e Modify assertion; as far as I can see, ensure_buffers makes no attempt to reduce the
number of available buffers, even if it is requested.  So in that case the old
assertion will fire erroneously.


git-svn-id: svn://localhost/ardour2/branches/3.0@6229 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-01 00:08:32 +00:00
Carl Hetherington
2feede2e8c Cleanup previous commit.
git-svn-id: svn://localhost/ardour2/branches/3.0@6127 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-11-18 20:45:06 +00:00
Carl Hetherington
477bc772be Make BufferSet::is_silent work so that session silent_buffers are correctly silenced, preventing feedback from occurring with plugins that output non-zero values for zero inputs.
git-svn-id: svn://localhost/ardour2/branches/3.0@6124 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-11-18 17:58:38 +00:00
David Robillard
ac8b165644 Const-correct BufferSet.
git-svn-id: svn://localhost/ardour2/branches/3.0@5815 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-20 01:24:31 +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
88beef2e93 merge pre- and post-fader processor boxes; start removing Placement (not finished) ; add -DWAF_BUILD and use per-directory foobar-config.h to correctly pick up configure-time settings like HAVE_OGG ; check for libgiomm (part of upgrade to newer gtk stack); 32 bit marker reload fix from 2.X; audiounit IO config cache fix from 2.X; multi-add route template fix from 2.X; plugin GUI delete fix from 2.X; solo button labels are A or P for listen mode
git-svn-id: svn://localhost/ardour2/branches/3.0@5344 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-07-13 00:26:28 +00:00
Paul Davis
0d6515a243 separate solo & listen. some minor fixes and additional related fixes still to come
git-svn-id: svn://localhost/ardour2/branches/3.0@5298 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-07-01 13:36:50 +00:00
Paul Davis
4df4574be4 editor toggle button fix from lincoln; refresh location display when loop range changes; fix up BufferSet::merge_from() to be less fragile to wierd merge conditions
git-svn-id: svn://localhost/ardour2/branches/3.0@5297 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-06-29 14:29:53 +00:00
Paul Davis
86f24d20e1 first pass (ok, third really) at internal send+return - audio routing inside ardour without JACK. lots still to do, but at least the obvious works
git-svn-id: svn://localhost/ardour2/branches/3.0@5202 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-06-16 14:58:33 +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
David Robillard
3a6fa245c2 Fix building without LV2.
git-svn-id: svn://localhost/ardour2/branches/3.0@5041 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-04 20:11:02 +00:00
David Robillard
ca10cc82a4 Preliminary MIDI plugin support.
git-svn-id: svn://localhost/ardour2/branches/3.0@5036 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-04 15:50:51 +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
Paul Davis
70b939da4f first pass at internal sends. this is a very tentative work in progress, and it is possible that major changes may follow in the near future. it is certainly not complete, but the fundamental changes to Port/Buffer operation merit a commit at this point
git-svn-id: svn://localhost/ardour2/branches/3.0@4464 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-01-30 07:40:13 +00:00
Paul Davis
89e4d35244 torben's port buffer reworking; torben's panner automation loading patch (allows loading of 2.X sessions)
git-svn-id: svn://localhost/ardour2/branches/3.0@3890 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-10-08 20:14:22 +00:00
Paul Davis
449aab3c46 rollback to 3428, before the mysterious removal of libs/* at 3431/3432
git-svn-id: svn://localhost/ardour2/branches/3.0@3435 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-06-02 21:41:35 +00:00
Doug McLain
9c0d7d72d7 remove empty sigc++2 directory
git-svn-id: svn://localhost/ardour2/branches/3.0@3432 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-06-02 05:02:28 +00:00
Hans Baier
8c743c2c0c *fix the bugfix: Input and Output Ports exchanged in Track/Bus inspector
*increased buffer sizes to get rid of overruns (PitchBender still doesnt work though....)


git-svn-id: svn://localhost/ardour2/branches/3.0@3403 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-05-23 02:13:31 +00:00
David Robillard
f360ef94da Arbitrarily increase MIDI process buffer size to avoid overruns with very dense data.
git-svn-id: svn://localhost/ardour2/branches/3.0@3389 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-05-22 16:44:22 +00:00