Commit Graph

5542 Commits

Author SHA1 Message Date
Ben Loftis e907aad05c ObjectCount signal should include the count 2024-03-08 11:31:44 -06:00
Ben Loftis 24b18c889b allow SurroundReturn to publish the number of channels in use 2024-03-06 18:34:33 -06:00
Robin Gareus 53b951f6a9
Vapor: Properly name sync&aling API 2024-03-04 16:53:33 +01:00
Robin Gareus 8d0704dda2
Vapor: add option to sync processing to a 512 sample cycle 2024-02-27 23:16:54 +01:00
Robin Gareus 4acd0e9f29
Vapor: add API to query channel count 2024-02-26 22:15:05 +01:00
Robin Gareus 305b2778b4
Vapor: parse and use additional meta-data from adm 2024-02-25 17:43:56 +01:00
Robin Gareus 4bd2de2f72
Vapor: prepare for additional meta-data 2024-02-25 16:26:15 +01:00
Robin Gareus 22094c6caa Vapor: expose Apple Spatial Mixer contols (via Lua) 2024-02-24 19:47:56 +01:00
Robin Gareus 61c6d2bfa1
Vapor: add channel/object-ID map 2024-02-24 00:42:47 +01:00
Robin Gareus 45a7719ede
Vapor: simply ADM meta-data passing, pass reference file 2024-02-23 17:03:41 +01:00
Robin Gareus 22fef5ab2b
Vapor/LV2: API to pass options to exporter 2024-02-23 15:51:47 +01:00
Robin Gareus 3f7c98e2db
Vapor: add API used to set ADM meta-data 2024-02-22 01:55:05 +01:00
Robin Gareus 7dc1fbab5a
Add Lua API to conveniently set automation data 2024-02-21 19:38:51 +01:00
Robin Gareus 36cd1f796f
Define AAF file extension 2024-02-15 01:44:34 +01:00
Robin Gareus b36323688a
Allow create Sessions with a specific sample-rate
This is in preparation to create sessions from AAF which may
have a sample-rate other than the running engine.
2024-02-15 01:44:31 +01:00
Robin Gareus c6d0064e09
Vapor: relax Apple Binaural Renderer detection 2024-02-13 04:35:45 +01:00
Robin Gareus 0c96c12a50 Vapor: Implement Apple Binaural Renderer 2024-02-13 02:07:43 +01:00
Robin Gareus 4fdf5b2967
Vapor: re-send pan positions at export start 2024-02-12 20:49:13 +01:00
Robin Gareus 05ffd4821e
Add Surround Send Enable Grouping 2024-01-30 23:58:40 +01:00
Robin Gareus 2e00638761
Vapor: add AutomationControl to en/disable surround send
This is in preparation to allow grouping send-enable.
2024-01-30 23:58:36 +01:00
Robin Gareus 11e508cbe6
Vapor: sync automation state of multi-channel surround pans 2024-01-29 22:24:43 +01:00
Robin Gareus 21c3c865d3
Vapor: link stereo surround pan automation visibility 2024-01-29 22:24:29 +01:00
Robin Gareus 6e28c43cef
Don't show plugin preset UI for plugins without controls
Notably Ardour's General MIDI Synth has no presets, but
users try.

This also prevents presets of plugins with internal state,
but no user visible controls. But those usually have a plugin
provided presets.
2024-01-28 14:58:55 +01:00
Ben Loftis 22b7a07526 Srnd: expose the momentary loudness value in addtion to integrated loudness 2024-01-21 10:58:38 -06:00
Robin Gareus 32eb9b0520
Add API to define related controls
This is intended to show connected controls that share
automaton state, notably pannables
2024-01-19 02:20:48 +01:00
Robin Gareus 8ca4c4a255
Fix Windows build (post 356374b)
Multiple definition of `ARDOUR::MPControl<bool>::set_value`
2024-01-18 18:48:16 +01:00
Robin Gareus 356374bfb3
Vapor: replace output format API with a controllable 2024-01-18 00:18:52 +01:00
Robin Gareus 0fd1edd78e
Update well-known ctrl: separate global and per band EQ enum 2024-01-15 15:34:55 +01:00
Robin Gareus c3ec93997c
Remove old well-known ctrls API 2024-01-13 04:06:29 +01:00
Robin Gareus 048c574b07
Amend 70a0b47ce (add missing file) 2024-01-13 03:59:37 +01:00
Robin Gareus a7e36f77ac
Add enum-based well-known-ctrl API 2024-01-13 03:03:25 +01:00
Robin Gareus 3c5f9f1450
Add API to set custom IO port channel names 2024-01-11 06:47:06 +01:00
Robin Gareus db7a67980d
Vapor: allow to toggle 5.1 and 7.1.4 main output 2024-01-11 05:16:21 +01:00
Robin Gareus a9719f1b35
Vapor: add support to trim surround object level 2024-01-10 01:31:57 +01:00
Robin Gareus b84cd4fb5a
Vapor: Implement Surround Send/Return 2024-01-06 20:24:23 +01:00
Robin Gareus ec32d22cb3
Vapor: Prototype LV2 export extension 2024-01-06 20:22:39 +01:00
Robin Gareus 9bb4d0dcf8
Vapor: Add surround types/enum 2024-01-06 20:21:25 +01:00
Robin Gareus 0ada2df2e6
Implement [surround] LUFS meter 2024-01-06 20:21:06 +01:00
Robin Gareus 88c796c8f2
Add dedicated Exception for Plugin/Processor errors 2024-01-06 20:21:00 +01:00
Robin Gareus 66ad0ebb03
Region groups: do not group multiple takes on a single track 2024-01-06 20:20:30 +01:00
Robin Gareus c3b55240b1
Fix erasing events in MIDIBuffer
When the last event in a MIDI buffer was erased, the whole buffer
was assumed to be empty (bug introduced in 7.5-96-gc5511040ec)
2023-12-15 08:50:10 +01:00
Robin Gareus 4402e2a3a8
Add workaround for yabridge threading
* yabridge runs the plugin's process function in a dedicated
  bridged thread. Ardour's process thread is not (it just waits)

* When a plugin calls `restartComponent` from the realtime
  thread. yabridge uses a host notification thread to perform
  the callback.
  Unlike other VST3 implementations that use a notification thread
  (eg. JUCE), yabridge blocks and waits for the notification to
  complete before the realtime thread can continue.

This leads to a deadlock.

However, we know that yabridge always synchronizes the
callback and concurrent calls are prevented by yabridge's design.

https://github.com/robbert-vdh/yabridge/issues/266
2023-12-10 22:08:59 +01:00
Robin Gareus 0f3e3b5243
Fix signal emission for Locations::ripple (1/2)
Locations::ripple can never add/remove markers, hence
Locations::changed is not applicable.

That signal is to indicate when more than one location is
added or removed from the location list.
2023-12-10 04:08:30 +01:00
Robin Gareus 153c7e289d
Add explicit API to copy Locations
This is in preparation to reduce signals during
Location Drag motion (which operates on a copied
Location, that causes [static] signal emissions,
but the location itself is not in any list).
2023-12-08 21:47:03 +01:00
Robin Gareus 0c5bbfa62d
Location: add API to use cached sorted location list
Every call to ::next_section() copies the location list
and sorts all the regions.

If the session has a significant amount of Locations and
Section Marker (#9568 has 300+) sorting them each time
when iterating over sections is significant.
2023-12-08 17:22:28 +01:00
Robin Gareus 963c104cca
Change default sample-rate to 48kHz
44.1kHz is dead; many soundcards do not support it anymore.
2023-12-08 17:21:57 +01:00
Robin Gareus 0786be859d
Retain TransportMaster Ports across sessions
Unloading a session should only remove session-ports.
This fixes Timecode master sync when switching snapshots
or sessions.
2023-12-03 20:38:31 +01:00
Robin Gareus dacf488c86
Fix callback order of port-dis/connections
Previously the port-engine was a LIFO. Changes were pushed back
and then popped-back. This causes issues when re-connecting
Transport Masters.

The GUI does the following when changing connections:
1. disconnect all
2. connect to new port

which lead to TransportMaster::connection_handler being called
in reverse order: connect, disconnect, and the transport
master was assumed to not be connected.

--

Now connections queue is a FIFO and code was consolidated.

(Note, we cannot use a std::deque because it does not support
memory pre-allocation with ::reserve)
2023-12-02 23:34:58 +01:00
Paul Davis cb91334cc6 basic work to permit "MIDI catchup" for MIDI state at any point on the timeline
This currently does nothing and cannot be enabled
2023-11-20 21:32:49 -07:00
Robin Gareus bbbd023895
Add flag to hide internal plugins from user 2023-11-09 02:01:54 +01:00