Pulp
1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
ara.hpp
Go to the documentation of this file.
1
#pragma once
2
3
// ARA (Audio Random Access) — minimal document controller stub.
4
// Full ARA 2.0 support is a large undertaking; this provides the interface
5
// structure so plugins can declare ARA capability without a full implementation.
6
//
7
// ARA allows DAWs to provide the plugin with direct access to audio content,
8
// enabling features like spectral editing, chord detection, and time-stretching
9
// without real-time playback.
10
11
#include <string>
12
#include <string_view>
13
#include <cstdint>
14
#include <vector>
15
#include <functional>
16
17
namespace
pulp::format
{
18
20
enum class
AraRole
{
21
None
= 0,
22
PlaybackRenderer
= 1,
23
EditorRenderer
= 2,
24
EditorView
= 4
25
};
26
29
class
AraDocumentController
{
30
public
:
31
virtual
~AraDocumentController
() =
default
;
32
34
virtual
void
begin_editing
() {}
35
37
virtual
void
end_editing
() {}
38
40
virtual
void
notify_audio_source_content_changed
(int64_t audio_source_id) {
41
(void)audio_source_id;
42
}
43
45
virtual
int
supported_roles
()
const
{
return
0; }
46
48
virtual
bool
is_ara_supported
()
const
{
return
false
; }
49
51
virtual
std::string
ara_factory_name
()
const
{
return
""
; }
52
};
53
56
bool
host_supports_ara
();
57
62
bool
ara_sdk_compiled_in
();
63
68
int
ara_sdk_generation
();
69
75
constexpr
const
char
*
kClapAraFactoryExtension
=
"com.celemony.ara/clap-factory-v1"
;
76
82
constexpr
const
char
*
kVst3AraFactoryContextKey
=
"com.celemony.ara/vst3-host-factory-v1"
;
83
87
constexpr
const
char
*
kAuAraFactoryPropertyKey
=
"audioUnitARAFactory"
;
88
95
const
void
*
ara_companion_factory_for
(
class
AraDocumentController
* controller);
96
97
}
// namespace pulp::format
pulp::format::AraDocumentController
ARA document controller — manages the plugin's view of the DAW's audio content.
Definition
ara.hpp:29
pulp::format::AraDocumentController::is_ara_supported
virtual bool is_ara_supported() const
Whether this plugin supports ARA.
Definition
ara.hpp:48
pulp::format::AraDocumentController::begin_editing
virtual void begin_editing()
Called when the host creates a new document.
Definition
ara.hpp:34
pulp::format::AraDocumentController::~AraDocumentController
virtual ~AraDocumentController()=default
pulp::format::AraDocumentController::notify_audio_source_content_changed
virtual void notify_audio_source_content_changed(int64_t audio_source_id)
Called when audio source data is available.
Definition
ara.hpp:40
pulp::format::AraDocumentController::supported_roles
virtual int supported_roles() const
Get the supported ARA roles for this plugin.
Definition
ara.hpp:45
pulp::format::AraDocumentController::end_editing
virtual void end_editing()
Called when the host finishes editing the document.
Definition
ara.hpp:37
pulp::format::AraDocumentController::ara_factory_name
virtual std::string ara_factory_name() const
ARA factory name (displayed in the DAW).
Definition
ara.hpp:51
pulp::format
What the product grants a device: the quota table indexed by capability tier and live thermal state.
Definition
aax_editor.hpp:31
pulp::format::ara_companion_factory_for
const void * ara_companion_factory_for(class AraDocumentController *controller)
Return an opaque pointer to an ARA::ARAFactory-compatible struct when the processor is ARA-aware and ...
pulp::format::ara_sdk_compiled_in
bool ara_sdk_compiled_in()
True when Pulp was built with the Celemony ARA SDK (PULP_ENABLE_ARA=ON.
pulp::format::kVst3AraFactoryContextKey
constexpr const char * kVst3AraFactoryContextKey
VST3 — IPluginFactory3::setHostContext attribute key under which ARA-aware hosts (Cubase,...
Definition
ara.hpp:82
pulp::format::kAuAraFactoryPropertyKey
constexpr const char * kAuAraFactoryPropertyKey
AU v3 — AUAudioUnit.audioUnitARAFactory property key.
Definition
ara.hpp:87
pulp::format::kClapAraFactoryExtension
constexpr const char * kClapAraFactoryExtension
Well-known extension id for the CLAP-ARA companion factory.
Definition
ara.hpp:75
pulp::format::host_supports_ara
bool host_supports_ara()
Check if the current host supports ARA.
pulp::format::AraRole
AraRole
ARA role capabilities.
Definition
ara.hpp:20
pulp::format::AraRole::EditorRenderer
@ EditorRenderer
Definition
ara.hpp:23
pulp::format::AraRole::None
@ None
Definition
ara.hpp:21
pulp::format::AraRole::PlaybackRenderer
@ PlaybackRenderer
Definition
ara.hpp:22
pulp::format::AraRole::EditorView
@ EditorView
Definition
ara.hpp:24
pulp::format::ara_sdk_generation
int ara_sdk_generation()
Highest ARA API generation Pulp was compiled against.
core
format
include
pulp
format
ara.hpp
Generated by
1.15.0