Commit Graph

101 Commits

Author SHA1 Message Date
Paul Davis 50232a23a7 temporal: hide superclock_t variant of TempoMap::metric_at()
This fixes several callsites that were passing samplepos_t to get a TempoMetric,
some of them somewhat significant (e.g. VST plugins that want tempo information).

Bad API design on my part, apologies.

This commit combines libs/ and gtk2_ardour because the new private status
of the ::metric_at() call would be a blocking point for git bisect
2023-06-12 12:36:16 -06:00
Paul Davis b35518e212 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
Paul Davis 259499fc5f require use of BBT_Argument as both parameter and return type from most methods (libs edition) 2023-02-15 16:02:56 -07:00
Robin Gareus 5130a43d87 Remove direct use of audio-engine rate (1/2)
This is in preparation for sample-rate independence.
2023-01-22 20:06:14 +01:00
Robin Gareus ebf7afc482
Fix reporting tempo and time-signature to VST plugins #9188 2023-01-07 05:16:14 +01:00
Robin Gareus 40744c672a
Fix VST2 callbacks querying tempo-map
Some VST2 use a custom thread to make callbacks, in this case
the corresponding thread will not have fetched a thread-local
tempo-map.
2022-03-20 15:42:47 +01:00
Paul Davis 8bada4b5e1 remove public ::bbt_at (INTEGER) methods, because of superclock_t/samplepos_t confusion
libtemporal still needs ::bbt_at (superclock_t) fairly often so retain it as a private method, but public
interfaces take either Beats or timepos_t
2021-08-13 12:51:35 -06:00
Paul Davis af2474ab80 fix setting VST loop times (in beats) 2021-08-13 12:51:32 -06:00
Paul Davis f66a6c779e adapt to DoubleableBeats and so forth (libs edition) 2021-08-13 12:51:32 -06:00
Paul Davis 34d798327b libardour: cleanup for explicit Beats::operator bool() 2021-08-13 12:51:31 -06:00
Paul Davis 3ca2be321d use cleaned up Temporal ::quarters*_at* API (libs edition) 2021-08-13 12:51:31 -06:00
Paul Davis 79763893b3 remove/hide Session::tempo_map() and use TempoMap::use() instead (thread local shared ptr) 2021-08-13 12:51:30 -06:00
Paul Davis f67029bd02 random commit to facilitate trivial move of work from laptop back to main system 2021-08-13 12:51:29 -06:00
Paul Davis eae9d276fe libardour: conversion to use timeline types (mega-commit) 2021-08-13 12:51:29 -06:00
Paul Davis f4490f54c5 change Timecode::BBT_Time to use Temporal namespace, plus a couple of other minor changes to enable compilation
This still uses the tempo map object in libs/ardour, not the new one in libs/temporal, and isn't likely to be functional
(though it could be)
2021-08-13 12:51:28 -06:00
Robin Gareus f9cdf533ba
Event API consistency; reorder arguments (time, type, payload) 2020-09-20 19:18:09 +02:00
Robin Gareus 1674261f89
On plugin internal-state change, mark preset as modified 2020-06-21 17:36:01 +02:00
Robin Gareus a22f918d9d
Update libardour GPL boilerplate and (C) from git log 2019-08-03 15:53:16 +02:00
Robin Gareus 4964852f0b
Remove cruft, unused variable 2019-03-11 01:49:43 +01:00
Robin Gareus 5d4fbcb1ea
Allow to special case plugins used for IR analysis
This is relevant for some VST specifics (e.g connected pins) or
similar audioMasterCallbacks that use either global or plugin-insert
specific data.
2019-02-28 04:49:00 +01:00
Robin Gareus 383bd2526c Fix incorrect VST callback fall-though (effective NOOP) 2018-10-27 10:33:58 +02:00
John Emmas b60e9f7df9 Remove a call to 'fst_audio_master_idle()'
Nobody seems quite sure why it's needed but it seems to be crashing a lot of plugins:-

http://tracker.ardour.org/view.php?id=7668
2018-10-02 09:17:32 +01:00
Robin Gareus 5fcea5833d Properly announce support for Vendor string 2018-08-08 14:09:31 +02:00
Stefan Westerfeld 2fc5ed1e72 Let VST plugins know that we implement plugin window resizing. 2018-08-08 13:25:04 +02:00
Robin Gareus 9ccace8f0d Amend VST "MasterUpdateDisplay", allow UI(s) to idle-update. 2018-07-30 15:58:29 +02:00
Robin Gareus 98769796d7 Fix VST callback and crash for some plugins
Apparently "MasterUpdateDisplay" is for plugins to notify the host about
state changes -- and not notficy the plugin's own UI.

see also
http://mixbus.harrisonconsoles.com/forum/thread-6229-post-37127.html
2018-07-30 15:42:17 +02:00
Paul Davis 28f8772c3a remove aeffectx.h; use vestige.h 2018-06-04 17:38:41 -04:00
Robin Gareus 868eec264f Implement VST UI touch (begin/end Edit) 2018-04-02 22:33:11 +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
Robin Gareus fd8053da9e Don't use VST ->user points, prefer host-reserved ptr
Apparently "user" is for plugins (not hosts) to use.
2017-07-08 18:13:42 +02:00
Robin Gareus 37a4987dab Ardour does support VST's audioMasterGetProductString, return true; 2017-05-09 16:31:42 +02:00
Robin Gareus 4b982ef895 Prepare moving to a dedicated x-thread signal for VST UI resizing
(this changes the internal API, pending follow-up GUI update)
2017-03-08 13:03:46 +01:00
Robin Gareus de2612f7b4 remove cruft 2017-01-20 17:36:18 +01:00
nick_m 33e95a1577 rename Tempo _beats_per_minute to _note_types_per_minute, provide pulse helpers.
- adds quarter_notes_per_minute(), note_divisions_per_minute (double)
	  pulses_per_minute() and frames_per_quarter_note()

	- this should be a no-op except for the use of tempo by
	  the vst callback which definitely uses quarter notes per minute.

	- the XML node for TempoSection named 'beats-per-minute'
	  has been renamed.
2016-11-11 03:37:08 +11:00
nick_m 594137f5cc remove public pulse methods from TempoMap.
- the only object whose musical position is not expressed in
	  quarter notes is MetricSection.
	  there is now no need to expose this.
2016-11-11 03:37:08 +11:00
nick_m 6d0208613d Use quarter pulses (quarter notes) for VST's ppqBar, ppqPos and cycleStart/EndPos. 2016-08-18 05:39:44 +10:00
Robin Gareus 613ff66042 fix ramped BPM reporting to AU and VST plugins 2016-08-17 17:17:00 +02:00
Paul Davis cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
Robin Gareus 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 10228a4bc3 Tempo ramps - fix missing rt call. 2016-05-28 00:24:02 +10:00
nick_m 78bec77c3e Tempo ramps - fix merge conflicts, add bbt_at_frame_rt(). 2016-05-28 00:10:53 +10:00
nick_m 34c9ac9dd7 Tempo ramps - rename bbt_time() -> bbt_at_frame(), frame_time() -> frame_at_bbt() 2016-05-27 23:38:17 +10:00
nick_m 8f3bc6f809 Tempo ramps - rename tempo_at() -> tempo_at_frame().. 3 decimals for the audioclock tempo display. 2016-05-27 23:38:17 +10:00
nick_m 7fc3b0c34c Initial stab at tempo ramps.
Replaces the list of points in TempoMap with TempoSection functions, which
compute tempo-at or tick-at time relative to tempo section start.
TempoMap consults them additively to determine things like bbt_time(),
frame_time() get_grid() etc.
This has a marked effect on scrolling speed along with the code simplification
in the places it has been attempted.

Several things are broken here.
Currently every ramp except the last one is an exponential ramp. this may
be simple to fix :).
Mouse-over midi grid doesn't match mouse click grid. should also be simple.

Many things seem to work, but their accuracy should be in question until
each area has been addressed.
2016-05-27 23:38:09 +10:00
Robin Gareus eadc2ca88a fix maths thinko 2016-05-26 10:44:13 +02:00
Robin Gareus 602344f0c5 ticks are not affected by metrum 2016-05-26 02:22:10 +02:00
Robin Gareus 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
Robin Gareus 559860f016 make -D VSTCallbacks readable 2016-04-27 01:44:55 +02:00
Robin Gareus e77729125e VST report audioMasterPinConnected according to Pin Management 2016-04-13 00:52:47 +02:00
Ben Loftis 86edc1ccfe Fill some more VST transport flags. 2016-02-16 15:33:12 -06:00