Commit graph

20962 commits

Author SHA1 Message Date
Robin Gareus
771cc4581e
LuaProc: use effective sample-rate, like other plugin instances 2023-07-03 00:31:21 +02:00
Robin Gareus
a36ddb72dd
Correctly set sample-rate of plugins when loading a different session
Directly loading a new session (Session > Recent) stops the engine
when the sample-rate mismatches. All is fine.

When closing a session (Session > Close), the engine is kept running.
Loading a different session with different sample-rate shows
the "SR mismatch" dialog. Reconfiguring the engine then does not call
`Session::immediately_post_engine` again.
2023-07-03 00:13:20 +02:00
Paul Davis
3be6ae57ba gtkmm2ext: provide an additional ink extents method to get descender 2023-07-01 21:07:25 -06:00
Robin Gareus
d899441df1
ALSA: disambiguate multiple soundcards with the same name 2023-07-02 00:17:58 +02:00
Paul Davis
20e1b6b287 temporal: add API to clear tempos in various ways 2023-06-30 15:50:25 -06:00
Paul Davis
a8c2585cdc remove AudioEngine::destroy() calls from various test/util code
ARDOUR::cleanup() does this, and the engine must exist during port deregistration.
2023-06-30 12:58:43 -06:00
Paul Davis
3307dcfcb2 temporal: reference time for BBT_Argument is always superclocks 2023-06-30 12:10:50 -06:00
Paul Davis
16c9d91641 temporal: remove impossible get_tempo_and_meter (..., bbt, ...) method 2023-06-30 12:10:50 -06:00
Paul Davis
a591fb64a3 temporal: rework ::get_grid() to avoid get_tempo_and_meter (..., bbt, ...) 2023-06-30 12:10:50 -06:00
Paul Davis
3513debba8 temporal: NO-OP (tiny variable rename) 2023-06-30 12:10:50 -06:00
Paul Davis
d94382f8a3 another autofication 2023-06-30 12:10:50 -06:00
Robin Gareus
d0fe0993a7
LV2: allow to split cycles w/MIDI
See also 64e2f16e06
2023-06-30 17:46:05 +02:00
Robin Gareus
be3d3a6d00
LuaProc: allow plugin to prefer a regular block length
This equivalent to http://lv2plug.in/ns/ext/buf-size#coarseBlockLength
2023-06-30 17:21:49 +02:00
Robin Gareus
45b2791341
MidiStateTracker micro-optimization
This replaces 128 multiplications in each inner loop with
a single bit-shift.
2023-06-30 17:12:16 +02:00
Robin Gareus
b51cf0ed95
Plugin: fix additive note resolution
When stopping transport in the middle of a note, each plugin
will resolve the note, resulting in multiple duplicate note-off
events.
2023-06-30 17:12:16 +02:00
Robin Gareus
71d45286f4
LuaProc: sort MIDI events
This allows plugins to produce an unsorted list of events.
see also https://discourse.ardour.org/t/lua-arpeggiator-plugin-anyone/108862/64?u=x42
2023-06-30 17:12:16 +02:00
Robin Gareus
c5511040ec
MidiBuffer: allow for partial processing with offset
AudioBuffer::read_from() only replaces data within the given
range (offset .. n_samples + offset) leaving the rest of the
buffer untouched.

With in-place processing, where the same MIDI buffer is used
for input and output, each sub-cycle must only clear the
processed range, while leaving the rest of the buffer
untouched.
2023-06-30 17:12:16 +02:00
Robin Gareus
64e2f16e06
LV2: apply offset to MIDI events 2023-06-30 17:12:16 +02:00
Robin Gareus
8558b1f99e
AudioUnit: apply offset to MIDI events 2023-06-30 17:12:16 +02:00
Robin Gareus
c352347eaa
LuaProc: offset MIDI events when splitting cycles 2023-06-30 17:12:16 +02:00
Robin Gareus
9242e615ce
Plugin: track only events for current cycle 2023-06-30 17:12:15 +02:00
Robin Gareus
e6bed9330f
CoreMIDI: fix capture/playback alignment
MIDI playback used samples instead of usec.
MIDI capture used time-stamp from previous cycle.
buffer-size changes were not applied to MIDI port latency
2023-06-29 00:32:46 +02:00
Robin Gareus
bef4596dd1
NO-OP: whitespace 2023-06-29 00:32:46 +02:00
Robin Gareus
651dcbc96e
CoreAudio: Remove unused API 2023-06-29 00:32:46 +02:00
Robin Gareus
9a010404d1
CoreMIDI: Remove unused API 2023-06-29 00:32:43 +02:00
Robin Gareus
ee0693d121
Properly clear preset-list (compare to invalidate_preset_cache) 2023-06-28 19:16:16 +02:00
Robin Gareus
fc08771651
LuaProc: implement factory presets 2023-06-28 19:10:34 +02:00
Paul Davis
b5c9c6a5c4 fix displayed name for velocity automation 2023-06-26 14:18:18 -06:00
Paul Davis
91500795d8 canvas: extend PolyItem API with ::add_point() 2023-06-26 14:18:18 -06:00
Paul Davis
8a204bcf51 lollis: draw stems in fill color (optionally) 2023-06-26 14:18:18 -06:00
Paul Davis
a6c1a3d9d0 lollis: potentially clip circle with a bounding parent 2023-06-26 14:18:18 -06:00
Paul Davis
96c9f2ee19 canvas: add velocity() method to Note 2023-06-26 14:18:18 -06:00
Paul Davis
279e648a43 canvas: ArdourCanvas::Lollipop to not (mis)use _position 2023-06-26 14:18:18 -06:00
Paul Davis
0a530d3c18 manual fixes following rebase on master 2023-06-26 14:18:17 -06:00
Paul Davis
a7af6fc6f8 lollipops: just directly set _position member 2023-06-26 14:18:17 -06:00
Paul Davis
1ad0894618 lollipops should render child items (currently none) 2023-06-26 14:18:17 -06:00
Paul Davis
51e7584dee another use of auto iterators 2023-06-26 14:18:17 -06:00
Paul Davis
cfbe6b6048 another use of auto iterators 2023-06-26 14:18:17 -06:00
Paul Davis
f7e97be115 canvas lollipops: object redesign and reimplementation 2023-06-26 14:18:17 -06:00
Paul Davis
0f611b4efa C++ auto iteration FTW 2023-06-26 14:18:17 -06:00
Paul Davis
7e4a3dce01 lollipop pixel pushing 2023-06-26 14:18:17 -06:00
Paul Davis
4bafadc419 steps to an ecology of lollipops 2023-06-26 14:18:17 -06:00
Paul Davis
0b050c47e4 build lollipops.cc 2023-06-26 14:18:17 -06:00
Paul Davis
187569dcbc new Lollipop canvas item 2023-06-26 14:18:17 -06:00
Paul Davis
18275922d3 return interpolation type for velocity 2023-06-26 14:18:17 -06:00
Paul Davis
1c1d73e47d describe velocity parameter and implement velocity control 2023-06-26 14:18:17 -06:00
Paul Davis
1d117aa372 give MIDI tracks a (n automatable) velocity control 2023-06-26 14:18:17 -06:00
Robin Gareus
25f5b275f4
Auto-connect metronome when using a device the first time 2023-06-26 21:46:24 +02:00
Robin Gareus
124c57a850
Add missing Lua bindings 2023-06-23 01:35:19 +02:00
Robin Gareus
ddb9484994
Safeguard against using RegionExport for default export
It is unclear how an existing ExportChannelConfiguration copy
can be reused in a different context, but apparently it can happen:
https://discourse.ardour.org/t/ardour-exports-flatline-wav-file-no-playhead-movement-through-file/108803/25
2023-06-22 23:34:15 +02:00