Commit Graph

23 Commits

Author SHA1 Message Date
Robin Gareus bf4decbfe7
Add LV2 header include compatibility (1/2)
For whatever reason LV2 changes #include header locations
in a micro version release and disables backwards compatibly
by default.
2023-05-06 16:20:01 +02:00
David Robillard 27dfd8a7e3 Fix loading LV2 presets with non-float port values
In practice, this mostly means integers when presets leave off the ".0", but we
implement all the numeric types here for good measure.

Also while we're at it, warn about unknown types now so it doesn't take three
people a half an hour to figure out what's going on the next time something
like this happens.
2022-12-13 22:03:48 -05:00
Paul Davis 2471e90fae LV2 0.18.6 no longer provides a top-level lv2.h
Until it does, standardize on a single include path for lv2.h, even if this
path is the sort of thing that leads to CLAP
2022-07-29 08:51:49 -06:00
David Robillard 80a22953b0 Remove support for the long-deprecated LV2 uri-map extension
This has been supplanted by the urid extension.
2020-12-01 11:40:35 +01:00
Robin Gareus 6481437f0a
LV2 extension for host's time-scale vari-speed
Ardour 6 internally always runs at speed 1.0 (or -1.0, or stopped 0.0).
There is no vari-speed that scale "BPM" or "n_sample" time progression
per cycle.

Instead Ardour 6 vari-speed mechanism transparently re-samples I/O.
So process-time is scaled only relative to wall-clock time.

From a plugin's POV this is similar to "freewheeling": The plugin
processes data as if the host plays at speed 1.0. While the host
plays this data at a different rate.

Some plugins may like to be informed about the host's actual
playback rate.

Currently this is mainly for the benefit of github.com/x42/repitch.lv2.git
2019-11-14 21:15:30 +01:00
Robin Gareus a22f918d9d
Update libardour GPL boilerplate and (C) from git log 2019-08-03 15:53:16 +02:00
Robin Gareus 46f0b75e12
Undo more incorrect sample/frame replacements 2019-04-08 04:10:04 +02:00
Paul Davis 30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
David Robillard ea10a896c6 Fix LV2 state:StateChanged URI 2016-11-07 07:10:08 -05:00
Robin Gareus 1cc561bf74 Use official LV2 state:StateChanged URI
http://lv2plug.in/git/cgit.cgi/lv2.git/commit/?id=dbb18d82136d43eec435e321bffa835ba5776d6e
2016-10-19 19:45:53 +02:00
Robin Gareus 215d88ac87 Allow a LV2 plugin to mark the session dirty
If some plugin-internal state changes (GUI <> Plugin e.g. load a sample)
no ports change and the host does not know that the plugin state has
changed. The session may be closed without save.

This is a prototype using an ardour.org URI, pending upstream lv2plug.in
2016-10-13 16:04:28 +02:00
David Robillard ae71e57e24 Support LV2 log trace messages 2016-07-31 20:58:47 -04:00
Robin Gareus 58469214be prototype online self-automating LV2 plugin interface
goes along with https://github.com/x42/automate.lv2
2016-03-14 00:17:14 +01:00
David Robillard 8a128b33d3 Automation of LV2 plugin properties.
Work towards ParameterDescriptor being used more universally to describe control characteristics.
2014-11-02 02:10:24 -05:00
Paul Davis 24d2b5ec92 add export visibility macros across libardour 2013-10-17 10:02:11 -04: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
David Robillard 2858d43902 Use new Lilv state API to save LV2 plugin state.
This saves a complete history of plugin state, i.e. save is no longer destructive.  However, data is shared as much as possible, and new state is only written if the plugin state has actually changed.  There is exactly one link in the entire session directory to any external file, so archiving will work with minimal copying.

Not sure sure about the naming of the "externals" directory, but I have nothing better...


git-svn-id: svn://localhost/ardour2/branches/3.0@11372 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-28 01:45:15 +00:00
David Robillard d2b7f0d3d2 Implement the LV2 urid extension and remove implementation of (experimental) LV2 uri-unmap extension.
git-svn-id: svn://localhost/ardour2/branches/3.0@10723 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-21 03:22:08 +00:00
David Robillard 0caf3e7f78 Use standard style LV2 extension include paths.
This has a few benefits:

 * As system installed extensions become more ubiquitous, we can optionally
   build against those rather than including them in the source tree,
   without any source changes

 * No need to hack extension headers to change the include paths to match
   our specific scheme (i.e. headers are precisely those from the extension,
   even if they include other extension headers)

 * Consistency, lack of ambiguity, easy code sharing, blah blah, etc.


git-svn-id: svn://localhost/ardour2/branches/3.0@10476 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-07 18:30:40 +00:00
David Robillard 5aed83d927 Correctly implement LV2 event URI mapping (event URI context is restricted to uint16_t).
Implement LV2 URI Unmap extension.


git-svn-id: svn://localhost/ardour2/branches/3.0@8139 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-11-30 23:42:58 +00:00
David Robillard 2a6dcddcc5 Stub implementation of LV2 persist extension.
git-svn-id: svn://localhost/ardour2/branches/3.0@8087 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-11-25 22:12:03 +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
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