Commit graph

19125 commits

Author SHA1 Message Date
Paul Davis
20d7313e13 temporal: change "clamped" terminology to "continuing" (since that's what the GUI calls it) 2022-05-23 08:07:08 -06:00
Paul Davis
1179b022da temporal: fix error in TempoMap::previous_tempo() 2022-05-21 18:58:41 -06:00
Paul Davis
8de52a74bb temporal: better fix for tempo ramp setting during ::reset_starting_at() 2022-05-21 17:28:38 -06:00
Paul Davis
5c8b7519c1 remove debug-only direct-to-output debug info that duplicates a DEBUG_TRACE msg 2022-05-21 16:38:36 -06:00
Paul Davis
c4844b00e3 temporal: when calling TempoMap::reset_starting_at(), fix ramps
Even if we start at time T, if the tempo point before T is ramped, we need to
adjust it's omega value based on the beat time of the following tempo point. If
we don't do this, then using that tempo to compute ::superclock_at() for
subsequent points will be incorrect.

Note: there may be an ordering issue here with Tempo/Meter points. We might
need to pass over all tempo points first, then process meters etc. Something
like that.
2022-05-21 16:35:00 -06:00
Paul Davis
029ef88059 temporal: wrap some calls to TempoMap::dump() in appropriate DEBUG stuff 2022-05-21 16:35:00 -06:00
Robin Gareus
a0810ed608
LV2: pass patch-set messages to replicated plugin instances
This also fixes impulse analysis plugin display
2022-05-22 00:16:22 +02:00
Robin Gareus
58372f5b78
Fix macOS builds, size_t serialization
See also e1905e779b
2022-05-21 21:09:21 +02:00
Robin Gareus
e1905e779b
Fix macOS builds, size_t serialization
libs/ardour/session_state.cc:1500:13: note: in instantiation of
 function template specialization 'XMLNode::set_property<unsigned long>'
 requested here
libs/pbd/pbd/string_convert.h:151:11: error:
  type 'unsigned long' cannot be used prior to '::' because it
  has no members
2022-05-21 07:44:39 +02:00
Robin Gareus
ba675fa0e9
Remove old, now unused freesound path config 2022-05-20 22:03:14 +02:00
Paul Davis
5476a20fc4 temporal: fix conditional when deciding which log expression to use inside ::superclock_at() 2022-05-20 11:20:39 -06:00
Robin Gareus
2129552777
MixerScene: correctly restore controls with VCA master
The master needs to be restored first, otherwise setting
the master value with be propagated. Furthermore the
actual value is saved at the time of VCA assignment.
Restoring the vaule needs to scale by the master-reduced value.
2022-05-20 19:10:16 +02:00
Robin Gareus
7d6e429001
Add API to query control-masters
This allows to traverse VCA masters upstream, and potentially
build a graph.
2022-05-20 19:10:13 +02:00
Paul Davis
9dd4931247 temporal: revert changes that created two different omegas; fix computation of ::superclock_at() for decelerando
changes in tempo can be negative (decelerando/slowing down), and thus so can _omega. We cannot call log() or its
cousins on negative values, so in this scenario use an alternate expression for "t from b" in the tempo.pdf paper
2022-05-20 09:06:25 -06:00
Colin Fletcher
c4307667fb freesound: add a DebugBit
Add a new DebugBit value for Freesound
2022-05-20 14:33:57 +01:00
Paul Davis
e1f5fb0206 libpbd: change GlibEventLoopCallback to use C API not C++
We discovered in the past that the C++ API for GSource/Glib::Source has some fatal and unfixable flaws. Copy similar
code and just use the C API for GSource instead
2022-05-19 22:24:43 -06:00
Robin Gareus
04aaf23851
Add Lua bindings for MixerScene 2022-05-19 23:32:01 +02:00
Robin Gareus
48fdfbab53
Implement Session support for Mixer Scenes 2022-05-19 23:31:54 +02:00
Robin Gareus
bdc5711c31
Implement mixer-scene class 2022-05-19 20:08:24 +02:00
Robin Gareus
a811583380
Add API to query registered controllers 2022-05-19 20:08:08 +02:00
Robin Gareus
276172b8b1
Fix PhaseControl set_value()
Previously this resulted in excessive "000...000" state string.
2022-05-19 20:08:00 +02:00
Robin Gareus
5c85695362
Add Input Port meters for I/O Pre-Plugin outputs 2022-05-17 02:26:28 +02:00
Robin Gareus
cdf3b5209e
Generalize input-meters 2022-05-17 02:26:28 +02:00
Paul Davis
4c1506e50e add copyright notices 2022-05-16 15:41:56 -06:00
Paul Davis
9758e6280f use new event loop callback to ensure that all surface/control protocol threads have tempo map ptr set 2022-05-16 15:24:52 -06:00
Paul Davis
968533cc23 (re)add mechanism for a callback in any glib event loop executed before the loop "executes"
This is based on code from earlier commits that were later reversed, but we need some mechanism
to ensure that threads have a thread local tempo map ptr set. The big difference is that this
time we do not implement this for all instances of an AbstractUI - implementation is left to
each thread/event loop
2022-05-16 15:24:52 -06:00
Paul Davis
2079a150dd probable fix for Mackie vpot press/release misbehavior in sends (and plugin) subview
The accessed control needs to reflect the current subview banking
2022-05-16 15:24:52 -06:00
Robin Gareus
e528c4df92
Fix export-processor position, include triggerbox output 2022-05-16 14:32:47 +02:00
Ben Loftis
cd332a2af0 when pasting a Range of automation, first add guard points,
so the automation data before and after this range is retained
2022-05-16 07:16:25 -05:00
Ben Loftis
3a174ff914 add support for 'positive' guard points in ControlList 2022-05-16 07:16:25 -05:00
Ben Loftis
c98561e95c when cutting or clearing an automation range, always add boundary points
* these guard points are necessary to retain the automation that existed
 before and after the selected range is removed
2022-05-16 07:16:24 -05:00
Robin Gareus
44e273d713
Overhaul export channel state save/load
This allows to properly save/restore Route and Port
channel config states.
2022-05-16 04:54:17 +02:00
Robin Gareus
f6e67875f4
Implement MIDI ExportGraph processing 2022-05-16 04:54:17 +02:00
Robin Gareus
aa09a445e3
Bootstrap MIDI export writer
This leans on the AudioGrapher API for IdentityVertex.
2022-05-16 04:54:17 +02:00
Robin Gareus
719dda7701
Implement MIDI ExportChannel
Since MIDI Export is limited to Stem-Export, only a port-reader
and ExportProcessor have to be implemented.
2022-05-16 04:54:17 +02:00
Robin Gareus
4c4ab9cf51
Prepare PortExportChannel API for MIDI export 2022-05-16 04:54:17 +02:00
Paul Davis
7c2cb31b63 temporal: use boost::intrusive ::iterator_to to improve efficiency of ::next/previous_tempo() 2022-05-15 17:49:09 -06:00
Robin Gareus
a522a98118
Add API to query fixed delay line's delay time 2022-05-15 19:32:46 +02:00
Robin Gareus
ae0aa50b6f
Fix MIDI delay-line (amend 25098ed)
Events in the delay-buffer must be shifted back every cycle.
Also in case of fixed-delay-lines events may not be in sequence
since events are only sorted at backend port-level.
2022-05-15 19:20:32 +02:00
Robin Gareus
d55d3a7360
Save/load export timespan realtime setting 2022-05-15 02:20:19 +02:00
Robin Gareus
4577f86aa0
NO-OP: clang-format 2022-05-15 02:19:46 +02:00
Robin Gareus
86597d7e1c
NO-OP: re-indent, and cleanup 2022-05-14 23:32:26 +02:00
Ben Loftis
0cfbc64e54 triggerbox: given no other info, assume a clip is 1,2,4,8 or 16 bars at 4/4
this solves the oft-recurring problem where we assign
 a beat-count of '3' or '7' because minipm  mis-detected the tempo,
 and that situation is vanishingly rare.  it's better to assume 4 or 8

the user always has the option to change the number of beats (and
 therefore the detected tempo) manually, for those clips that are
 in a different time signature.  but minibpm cannot be expected
 to help us there.

NOTE: this is a fallback to make things 'just work' lacking any other context.

* if the tempo is detected in the filename, we use that instead
* clips that were recorded to the timeline use that bpm+timesig
* in the future we can use file-metadata (acidized wave?) instead
* this is audio-only: midi files can have an embedded timesignature

but... given no other information, experience says the vast majority
of downloaded/purchased clips will be 1,2 or 4 bars at 4/4.
2022-05-14 14:16:21 -05:00
Paul Davis
be5c64f737 temporal: NOOP - add blank line 2022-05-13 19:05:13 -06:00
Paul Davis
1ccda17504 temporal: add a new version of tempo twist based on pre-nutempo code 2022-05-13 19:05:13 -06:00
Paul Davis
60159acd33 temporal: slightly change const positioning in definition of ::stretch_tempo() 2022-05-13 19:05:13 -06:00
Paul Davis
b0ff612572 temporal: add DEBUG_TRACE message 2022-05-13 19:05:13 -06:00
Paul Davis
4defa3ae8f temporal: fix logic bug in TempoMap::reset_starting_at() 2022-05-13 19:05:13 -06:00
Paul Davis
c9b7f012e4 temporal: helpful comment for future readers 2022-05-13 19:05:13 -06:00
Paul Davis
f0f8f15cce temporal: missing change from 072a7b17a22f 2022-05-13 19:05:13 -06:00