X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=_manual%2F24_lua-scripting%2F02_class_reference.html;h=f21f6aea82c427a6e30c9fc1d10b210755b1b0b7;hb=a3167e17b75f9430c13e48f7c26c2c235aec24ec;hp=01ec7126b120e7d08e40f93c1f33da3a01f06462;hpb=32de311e4e18a06c21c5613578f4e590bef34b71;p=ardour-manual diff --git a/_manual/24_lua-scripting/02_class_reference.html b/_manual/24_lua-scripting/02_class_reference.html index 01ec712..f21f6ae 100644 --- a/_manual/24_lua-scripting/02_class_reference.html +++ b/_manual/24_lua-scripting/02_class_reference.html @@ -144,11 +144,14 @@ Pointer Classes cannot be created in lua scripts. It always requires a call to C
Returns Corresponding Port or 0.
Methods | ||
---|---|---|
int | connect (Port) | |
int | connect_by_name (std::string) | |
int | connect (std::string) | |
bool | connected () | |
Returns true if this port is connected to anything | ||
bool | connected_to (Port) | |
bool | connected_to_name (std::string) | |
int | disconnect (Port) | |
bool | connected_to (std::string) | |
Returns true if this port is connected to o, otherwise false. | ||
int | disconnect (std::string) | |
int | disconnect_all () | |
int | disconnect_by_name (std::string) | |
std::string | name () | |
Returns Port short name | ||
std::string | pretty_name (bool) | |
unsigned long | size () | |
LuaTable | table () |
C‡: boost::shared_ptr< ARDOUR::AudioRegion >, boost::weak_ptr< ARDOUR::AudioRegion >
+is-a: ARDOUR:Region
+ +A named object associated with a Session. Objects derived from this class are expected to be destroyed before the session calls drop_references().
Methods | ||
---|---|---|
AudioSource | audio_source (unsigned int) | |
bool | isnil () | |
bool | sameinstance (AudioRegion) | |
float | scale_amplitude () | |
void | set_scale_amplitude (float) |
Methods | ||
---|---|---|
bool | at_natural_position () | |
bool | automatic () | |
bool | can_move () | |
bool | captured () | |
void | clear_sync_position () | |
bool | covers (long) | |
void | cut_end (long, int) | |
void | cut_front (long, int) | |
DataType | data_type () | |
bool | external () | |
bool | hidden () | |
bool | import () | |
bool | is_compound () | |
unsigned int | layer () | |
long | length () | |
bool | locked () | |
void | lower () | |
void | lower_to_bottom () | |
StringVector | master_source_names () | |
SourceList | master_sources () | |
void | move_start (long, int) | |
void | move_to_natural_position () | |
bool | muted () | |
unsigned int | n_channels () | |
void | nudge_position (long) | |
bool | opaque () | |
long | position () | |
How the region parameters play together: POSITION: first frame of the region along the timeline START: first frame of the region within its source(s) LENGTH: number of frames the region represents | ||
bool | position_locked () | |
double | quarter_note () | |
void | raise () | |
void | raise_to_top () | |
void | set_hidden (bool) | |
void | set_initial_position (long) | |
A gui may need to create a region, then place it in an initial position determined by the user. When this takes place within one gui operation, we have to reset _last_position to prevent an implied move. | ||
void | set_length (long, int) | |
void | set_locked (bool) | |
void | set_muted (bool) | |
void | set_opaque (bool) | |
void | set_position (long, int) | |
void | set_position_locked (bool) | |
void | set_start (long) | |
void | set_sync_position (long) | |
Set the region's sync point.
| ||
void | set_video_locked (bool) | |
float | shift () | |
Source | source (unsigned int) | |
long | start () | |
float | stretch () | |
bool | sync_marked () | |
LuaTable(long, ...) | sync_offset (int&) | |
long | sync_position () | |
Returns Sync position in session time | ||
void | trim_end (long, int) | |
void | trim_front (long, int) | |
void | trim_to (long, long, int) | |
bool | video_locked () | |
bool | whole_file () | |
Cast | ||
AudioRegion | to_audioregion () | |
MidiRegion | to_midiregion () | |
Readable | to_readable () |
Methods | ||
---|---|---|
std::string | name () | |
Cast | ||
Stateful | to_stateful () | |
StatefulDestructible | to_statefuldestructible () |
C‡: boost::shared_ptr< ARDOUR::AudioSource >, boost::weak_ptr< ARDOUR::AudioSource >
is-a: ARDOUR:Source
@@ -392,11 +481,47 @@ Pointer Classes cannot be created in lua scripts. It always requires a call to CA named object associated with a Session. Objects derived from this class are expected to be destroyed before the session calls drop_references().
Methods | ||
---|---|---|
std::string | captured_for () | |
bool | empty () | |
bool | isnil () | |
bool | isnil () | |
long | length (long) | |
unsigned int | n_channels () | |
unsigned int | n_channels () | |
long | read (FloatArray, long, long, int) | |
long | readable_length () | |
long | readable_length () | |
bool | sameinstance (AudioSource) | |
bool | sameinstance (AudioSource) | |
float | sample_rate () | |
Cast | ||
Readable | to_readable () |
Methods | ||
---|---|---|
std::string | ancestor_name () | |
bool | can_be_analysed () | |
bool | destructive () | |
bool | has_been_analysed () | |
long | natural_position () | |
long | timeline_position () | |
long | timestamp () | |
int | use_count () | |
bool | used () | |
bool | writable () | |
Cast | ||
AudioSource | to_audiosource () | |
MidiSource | to_midisource () |
Methods | ||
---|---|---|
std::string | name () | |
Cast | ||
Stateful | to_stateful () | |
StatefulDestructible | to_statefuldestructible () |
C‡: boost::shared_ptr< ARDOUR::AudioTrack >, boost::weak_ptr< ARDOUR::AudioTrack >
is-a: ARDOUR:Track
@@ -434,6 +559,7 @@ Pointer Classes cannot be created in lua scripts. It always requires a call to Cenable custom plugin-insert configuration
Returns true if successful
the signal processorat at end of the processing chain which produces output
************************************************************* Pure interface begins here*************************************************************
Return the first processor that accepts has at least one MIDI input and at least one audio output. In the vast majority of cases, this will be "the instrument". This does not preclude other MIDI->audio processors later in the processing chain, but that would be a special case not covered by this utility function.
C‡: boost::shared_ptr< ARDOUR::AutomatableSequence<Evoral::Beats> >, boost::weak_ptr< ARDOUR::AutomatableSequence<Evoral::Beats> >
+is-a: ARDOUR:Automatable
+ +Methods | ||
---|---|---|
bool | isnil () | |
bool | sameinstance (AutomatableSequence) | |
Cast | ||
Sequence | to_sequence () |
Methods | ||
---|---|---|
AutomationControl | automation_control (Parameter, bool) |
C‡: boost::shared_ptr< ARDOUR::AutomationControl >, boost::weak_ptr< ARDOUR::AutomationControl >
is-a: PBD:Controllable
@@ -785,6 +932,7 @@ Pointer Classes cannot be created in lua scripts. It always requires a call to CMethods | ||
---|---|---|
bool | isnil () | |
PannerShell | panner_shell () | |
bool | sameinstance (Delivery) |
Methods | ||
---|---|---|
LuaTable | build_filename () | |
... | build_filename (--lua--) | |
Creates a filename from a series of elements using the correct separator for filenames. No attempt is made to force the resulting filename to be an absolute path. If the first element is a relative path, the result will be a relative path. | ||
LuaTable(float, ...) | get_plugin_insert_param (PluginInsert, unsigned int, bool&) | |
get a plugin control parameter value
Returns value | ||
LuaTable(float, ...) | get_processor_param (Processor, unsigned int, bool&) | |
get a plugin control parameter value
Returns value | ||
LuaTable | hsla_to_rgba () | |
... | hsla_to_rgba (--lua--) | |
A convenience function for colorspace HSL to RGB conversion. All ranges are 0..1 Example: local r, g, b, a = ARDOUR.LuaAPI.hsla_to_rgba (hue, saturation, luminosity, alpha) Returns 4 parameters: red, green, blue, alpha (in range 0..1) | ||
Processor | new_luaproc (Session, std::string) | |
create a new Lua Processor (Plugin)
Returns Processor object (may be nil) | ||
NotePtr | new_noteptr (unsigned char, Beats, Beats, unsigned char, unsigned char) | |
Processor | new_plugin (Session, std::string, PluginType, std::string) | |
create a new Plugin Instance
Returns Processor or nil | ||
PluginInfo | new_plugin_info (std::string, PluginType) | |
search a Plugin
Returns PluginInfo or nil if not found | ||
Processor | nil_proc () | |
LuaTable | plugin_automation () | |
... | plugin_automation (--lua--) | |
A convenience function to get a Automation Lists and ParamaterDescriptor for a given plugin control. This is equivalent to the following lua code function (processor, param_id) local plugininsert = processor:to_insert () local plugin = plugininsert:plugin(0) @@ -1098,10 +1255,14 @@ Pointer Classes cannot be created in lua scripts. It always requires a call to C local acl = ac:alist() return ac:alist(), ac:to_ctrl():list(), t[2] end Example usage: get the third input parameter of first plugin on the given route (Ardour starts counting at zero). local al, cl, pd = ARDOUR.LuaAPI.plugin_automation (route:nth_plugin (0), 3) Returns 3 parameters: AutomationList, ControlList, ParamaterDescriptor | ||
... | sample_to_timecode (--lua--) | |
Generic conversion from audio sample count to timecode. (TimecodeType, sample-rate, sample-pos) | ||
bool | set_plugin_insert_param (PluginInsert, unsigned int, float) | |
set a plugin control-input parameter value This is a wrapper around set_processor_param which looks up the Processor by plugin-insert.
Returns true on success, false on error or out-of-bounds value | ||
bool | set_processor_param (Processor, unsigned int, float) | |
set a plugin control-input parameter value
Returns true on success, false on error or out-of-bounds value | ||
... | timecode_to_sample (--lua--) | |
Generic conversion from timecode to audio sample count. (TimecodeType, sample-rate, hh, mm, ss, ff) | ||
void | usleep (unsigned long) |
high-level abstraction to process a single channel of the given Readable.
If the plugin is not yet initialized, initialize() is called.
if is not nil, it is called with the immediate Vamp::Plugin::Features on every process call.
Returns 0 on success
initialize the plugin for use with analyze().
This is equivalent to plugin():initialise (1, 512, 1024) and prepares a plugin for analyze.
Manual initialization is only required to set plugin-parameters which depend on prior initialization of the plugin.
vamp:reset () ++ initialize the plugin for use with analyze().
This is equivalent to plugin():initialise (1, ssiz, bsiz) and prepares a plugin for analyze. (by preferred step and block sizes are used. if the plugin does not specify them or they're larger than 8K, both are set to 1024)
Manual initialization is only required to set plugin-parameters which depend on prior initialization of the plugin.
vamp:reset () vamp:initialize () vamp:plugin():setParameter (0, 1.5, nil) vamp:analyze (r, 0)StringVector list_plugins () Plugin plugin () FeatureSet process (FloatArrayVector, RealTime) @@ -1136,6 +1298,48 @@ Pointer Classes cannot be created in lua scripts. It always requires a call to C process given array of audio-samples.
This is a lua-binding for vamp:plugin():process ()
- d
- audio-data, the vector must match the configured channel count and hold a complete buffer for every channel as set during plugin():initialise()
- rt
- timestamp matching the provided buffer.
Returns features extracted from that data (if the plugin is causal)
... send (--lua--) + Transmit an OSC message
Path (string) and type (string) must always be given. The number of following args must match the type. Supported types are:
'i': integer (lua number)
'f': float (lua number)
'd': double (lua number)
'h': 64bit integer (lua number)
's': string (lua string)
'c': character (lua string)
'T': boolean (lua bool) -- this is not implicily True, a lua true/false must be given
'F': boolean (lua bool) -- this is not implicily False, a lua true/false must be given
- lua:
- lua arguments: path, types, ...
Returns boolean true if successful, false on error.
↠ ARDOUR:LuaProc
+C‡: boost::shared_ptr< ARDOUR::LuaProc >, boost::weak_ptr< ARDOUR::LuaProc >
+is-a: ARDOUR:Plugin
+ ++A plugin is an external module (usually 3rd party provided) loaded into Ardour for the purpose of digital signal processing.
This class provides an abstraction for methords provided by all supported plugin standards such as presets, name, parameters etc.
Plugins are not used directly in Ardour but always wrapped by a PluginInsert.
Methods | ||
---|---|---|
bool | isnil () | |
bool | sameinstance (LuaProc) | |
DspShm | shmem () | |
LuaTableRef | table () |
Methods | ||
---|---|---|
IOPortDescription | describe_io_port (DataType, bool, unsigned int) | |
std::string | get_docs () | |
PluginInfo | get_info () | |
LuaTable(int, ...) | get_parameter_descriptor (unsigned int, ParameterDescriptor&) | |
std::string | get_parameter_docs (unsigned int) | |
char* | label () | |
bool | load_preset (PresetRecord) | |
Set parameters using a preset | ||
char* | maker () | |
char* | name () | |
LuaTable(unsigned int, ...) | nth_parameter (unsigned int, bool&) | |
unsigned int | parameter_count () | |
bool | parameter_is_input (unsigned int) | |
PresetRecord | preset_by_label (std::string) | |
PresetRecord | preset_by_uri (std::string) | |
std::string | unique_id () | |
Cast | ||
LuaProc | to_luaproc () |
Methods | ||
---|---|---|
void | clear_changes () | |
Forget about any changes to this object's properties | ||
ID | id () | |
OwnedPropertyList | properties () |
C‡: ARDOUR::LuaTableRef
@@ -1192,7 +1396,7 @@ Pointer Classes cannot be created in lua scripts. It always requires a call to CReallocate the buffer used internally to handle at least size_t units of data.
The buffer is not silent after this operation. the capacity argument passed to the constructor must have been non-zero.
C‡: boost::shared_ptr< ARDOUR::MidiModel >, boost::weak_ptr< ARDOUR::MidiModel >
+is-a: ARDOUR:AutomatableSequence
+ +This is a higher level (than MidiBuffer) model of MIDI data, with separate representations for notes (instead of just unassociated note on/off events) and controller data. Controller data is represented as part of the Automatable base (i.e. in a map of AutomationList, keyed by Parameter). Because of this MIDI controllers and automatable controllers/widgets/etc are easily interchangeable.
Methods | ||
---|---|---|
void | apply_command (Session, Command) | |
bool | isnil () | |
NoteDiffCommand | new_note_diff_command (std::string) | |
Start a new NoteDiff command. This has no side-effects on the model or Session, the returned command can be held on to for as long as the caller wishes, or discarded without formality, until apply_command is called and ownership is taken. | ||
bool | sameinstance (MidiModel) |
Cast | ||
---|---|---|
Sequence | to_sequence () |
Methods | ||
---|---|---|
AutomationControl | automation_control (Parameter, bool) |
C‡: ARDOUR::MidiModel::DiffCommand
+is-a: PBD:Command
+ +Base class for Undo/Redo commands and changesets
This class object is only used indirectly as return-value and function-parameter. It provides no methods by itself.
+Methods | ||
---|---|---|
std::string | name () | |
void | set_name (std::string) |
Methods | ||
---|---|---|
void | clear_changes () | |
Forget about any changes to this object's properties | ||
ID | id () | |
OwnedPropertyList | properties () |
C‡: ARDOUR::MidiModel::NoteDiffCommand
+is-a: ARDOUR:MidiModel:DiffCommand
+ +Base class for Undo/Redo commands and changesets
Methods | ||
---|---|---|
void | add (NotePtr) | |
void | remove (NotePtr) |
Methods | ||
---|---|---|
std::string | name () | |
void | set_name (std::string) |
Methods | ||
---|---|---|
void | clear_changes () | |
Forget about any changes to this object's properties | ||
ID | id () | |
OwnedPropertyList | properties () |
C‡: boost::shared_ptr< ARDOUR::MidiPlaylist >, boost::weak_ptr< ARDOUR::MidiPlaylist >
+is-a: ARDOUR:Playlist
+ +A named object associated with a Session. Objects derived from this class are expected to be destroyed before the session calls drop_references().
Methods | ||
---|---|---|
bool | isnil () | |
bool | sameinstance (MidiPlaylist) | |
void | set_note_mode (NoteMode) |
Methods | ||
---|---|---|
void | add_region (Region, long, float, bool, int) | |
Region | combine (RegionList) | |
unsigned int | count_regions_at (long) | |
Playlist | cut (AudioRangeList&, bool) | |
DataType | data_type () | |
void | duplicate (Region, long, long, float) | |
| ||
void | duplicate_range (AudioRange&, float) | |
void | duplicate_until (Region, long, long, long) | |
| ||
Region | find_next_region (long, RegionPoint, int) | |
long | find_next_region_boundary (long, int) | |
void | lower_region (Region) | |
void | lower_region_to_bottom (Region) | |
unsigned int | n_regions () | |
void | raise_region (Region) | |
void | raise_region_to_top (Region) | |
Region | region_by_id (ID) | |
RegionListPtr | region_list () | |
RegionListPtr | regions_at (long) | |
RegionListPtr | regions_touched (long, long) | |
Returns regions which have some part within this range. | ||
RegionListPtr | regions_with_end_within (Range) | |
RegionListPtr | regions_with_start_within (Range) | |
void | remove_region (Region) | |
void | split (long) | |
void | split_region (Region, long, int) | |
Region | top_region_at (long) | |
Region | top_unmuted_region_at (long) | |
void | uncombine (Region) | |
Cast | ||
AudioPlaylist | to_audioplaylist () | |
MidiPlaylist | to_midiplaylist () |
Methods | ||
---|---|---|
std::string | name () | |
Cast | ||
Stateful | to_stateful () | |
StatefulDestructible | to_statefuldestructible () |
C‡: boost::shared_ptr< ARDOUR::MidiPort >, boost::weak_ptr< ARDOUR::MidiPort >
is-a: ARDOUR:Port
@@ -1216,15 +1543,13 @@ Pointer Classes cannot be created in lua scripts. It always requires a call to CMethods | ||
---|---|---|
int | connect (Port) | |
int | connect_by_name (std::string) | |
int | connect (std::string) | |
bool | connected () | |
Returns true if this port is connected to anything | ||
bool | connected_to (Port) | |
bool | connected_to_name (std::string) | |
int | disconnect (Port) | |
bool | connected_to (std::string) | |
Returns true if this port is connected to o, otherwise false. | ||
int | disconnect (std::string) | |
int | disconnect_all () | |
int | disconnect_by_name (std::string) | |
std::string | name () | |
Returns Port short name | ||
std::string | pretty_name (bool) | |
AudioPort | to_audioport () | |
MidiPort | to_midiport () |
C‡: boost::shared_ptr< ARDOUR::MidiRegion >, boost::weak_ptr< ARDOUR::MidiRegion >
+is-a: ARDOUR:Region
+ +A named object associated with a Session. Objects derived from this class are expected to be destroyed before the session calls drop_references().
Methods | ||
---|---|---|
bool | do_export (std::string) | |
Export the MIDI data of the MidiRegion to a new MIDI file (SMF). | ||
bool | isnil () | |
double | length_beats () | |
MidiSource | midi_source (unsigned int) | |
MidiModel | model () | |
bool | sameinstance (MidiRegion) | |
double | start_beats () |
Methods | ||
---|---|---|
bool | at_natural_position () | |
bool | automatic () | |
bool | can_move () | |
bool | captured () | |
void | clear_sync_position () | |
bool | covers (long) | |
void | cut_end (long, int) | |
void | cut_front (long, int) | |
DataType | data_type () | |
bool | external () | |
bool | hidden () | |
bool | import () | |
bool | is_compound () | |
unsigned int | layer () | |
long | length () | |
bool | locked () | |
void | lower () | |
void | lower_to_bottom () | |
StringVector | master_source_names () | |
SourceList | master_sources () | |
void | move_start (long, int) | |
void | move_to_natural_position () | |
bool | muted () | |
unsigned int | n_channels () | |
void | nudge_position (long) | |
bool | opaque () | |
long | position () | |
How the region parameters play together: POSITION: first frame of the region along the timeline START: first frame of the region within its source(s) LENGTH: number of frames the region represents | ||
bool | position_locked () | |
double | quarter_note () | |
void | raise () | |
void | raise_to_top () | |
void | set_hidden (bool) | |
void | set_initial_position (long) | |
A gui may need to create a region, then place it in an initial position determined by the user. When this takes place within one gui operation, we have to reset _last_position to prevent an implied move. | ||
void | set_length (long, int) | |
void | set_locked (bool) | |
void | set_muted (bool) | |
void | set_opaque (bool) | |
void | set_position (long, int) | |
void | set_position_locked (bool) | |
void | set_start (long) | |
void | set_sync_position (long) | |
Set the region's sync point.
| ||
void | set_video_locked (bool) | |
float | shift () | |
Source | source (unsigned int) | |
long | start () | |
float | stretch () | |
bool | sync_marked () | |
LuaTable(long, ...) | sync_offset (int&) | |
long | sync_position () | |
Returns Sync position in session time | ||
void | trim_end (long, int) | |
void | trim_front (long, int) | |
void | trim_to (long, long, int) | |
bool | video_locked () | |
bool | whole_file () | |
Cast | ||
AudioRegion | to_audioregion () | |
MidiRegion | to_midiregion () | |
Readable | to_readable () |
Methods | ||
---|---|---|
std::string | name () | |
Cast | ||
Stateful | to_stateful () | |
StatefulDestructible | to_statefuldestructible () |
C‡: boost::shared_ptr< ARDOUR::MidiSource >, boost::weak_ptr< ARDOUR::MidiSource >
+is-a: ARDOUR:Source
+ +Source for MIDI data
Methods | ||
---|---|---|
bool | empty () | |
bool | isnil () | |
long | length (long) | |
MidiModel | model () | |
bool | sameinstance (MidiSource) |
Methods | ||
---|---|---|
std::string | ancestor_name () | |
bool | can_be_analysed () | |
bool | destructive () | |
bool | has_been_analysed () | |
long | natural_position () | |
long | timeline_position () | |
long | timestamp () | |
int | use_count () | |
bool | used () | |
bool | writable () | |
Cast | ||
AudioSource | to_audiosource () | |
MidiSource | to_midisource () |
Methods | ||
---|---|---|
std::string | name () | |
Cast | ||
Stateful | to_stateful () | |
StatefulDestructible | to_statefuldestructible () |
C‡: boost::shared_ptr< ARDOUR::MidiTrack >, boost::weak_ptr< ARDOUR::MidiTrack >
is-a: ARDOUR:Track
@@ -1274,6 +1727,7 @@ Pointer Classes cannot be created in lua scripts. It always requires a call to Cenable custom plugin-insert configuration
Returns true if successful
the signal processorat at end of the processing chain which produces output
************************************************************* Pure interface begins here*************************************************************
Return the first processor that accepts has at least one MIDI input and at least one audio output. In the vast majority of cases, this will be "the instrument". This does not preclude other MIDI->audio processors later in the processing chain, but that would be a special case not covered by this utility function.
A variant of PropertyList that does not delete its property list in its destructor. Objects with their own Properties store them in an OwnedPropertyList to avoid having them deleted at the wrong time.
This class object is only used indirectly as return-value and function-parameter. It provides no methods by itself.
+C‡: boost::shared_ptr< ARDOUR::PannerShell >, boost::weak_ptr< ARDOUR::PannerShell >
+is-a: ARDOUR:SessionObject
+ +Class to manage panning by instantiating and controlling an appropriate Panner object for a given in/out configuration.
Methods | ||
---|---|---|
bool | bypassed () | |
bool | isnil () | |
bool | sameinstance (PannerShell) | |
void | set_bypassed (bool) |
Methods | ||
---|---|---|
std::string | name () | |
Cast | ||
Stateful | to_stateful () | |
StatefulDestructible | to_statefuldestructible () |
C‡: ARDOUR::ParameterDescriptor
is-a: Evoral:ParameterDescriptor
@@ -1542,11 +2024,14 @@ Pointer Classes cannot be created in lua scripts. It always requires a call to CMethods | ||
---|---|---|
IOPortDescription | describe_io_port (DataType, bool, unsigned int) | |
std::string | get_docs () | |
PluginInfo | get_info () | |
LuaTable(int, ...) | get_parameter_descriptor (unsigned int, ParameterDescriptor&) | |
PresetRecord | preset_by_label (std::string) | |
PresetRecord | preset_by_uri (std::string) | |
bool | sameinstance (Plugin) | |
std::string | unique_id () | |
Cast | ||
LuaProc | to_luaproc () |
ID | id () | |
OwnedPropertyList | properties () |
C‡: ARDOUR::Plugin::IOPortDescription
+ +Data Members | ||
---|---|---|
unsigned int | group_channel | |
std::string | group_name | |
bool | is_sidechain | |
std::string | name |
C‡: boost::shared_ptr< ARDOUR::PluginInsert::PluginControl >, boost::weak_ptr< ARDOUR::PluginInsert::PluginControl >
is-a: ARDOUR:AutomationControl
@@ -1759,12 +2259,14 @@ Pointer Classes cannot be created in lua scripts. It always requires a call to CMethods | ||
---|---|---|
int | connect (Port) | |
int | connect_by_name (std::string) | |
int | connect (std::string) | |
bool | connected () | |
Returns true if this port is connected to anything | ||
bool | connected_to (Port) | |
bool | connected_to_name (std::string) | |
int | disconnect (Port) | |
bool | connected_to (std::string) | |
Returns true if this port is connected to o, otherwise false. | ||
int | disconnect (std::string) | |
int | disconnect_all () | |
int | disconnect_by_name (std::string) | |
bool | isnil () | |
std::string | name () | |
Returns Port short name | ||
int | disconnect_port (Port) | |
LuaTable(int, ...) | get_backend_ports (std::string, DataType, PortFlags, StringVector&) | |
LuaTable(int, ...) | get_connections (std::string, StringVector&) | |
void | get_physical_inputs (DataType, StringVector&) | |
void | get_physical_outputs (DataType, StringVector&) | |
void | get_physical_inputs (DataType, StringVector&, MidiPortFlags, MidiPortFlags) | |
void | get_physical_outputs (DataType, StringVector&, MidiPortFlags, MidiPortFlags) | |
Port | get_port_by_name (std::string) | |
Returns Corresponding Port or 0. | ||
LuaTable(int, ...) | get_ports (DataType, PortList&) | |
bool | active () | |
void | deactivate () | |
std::string | display_name () | |
ChanCount | input_streams () | |
bool | isnil () | |
ChanCount | output_streams () | |
bool | sameinstance (Processor) | |
Cast | ||
Amp | to_amp () | |
Automatable | to_automatable () | |
PluginInsert | to_insert () | |
IOProcessor | to_ioprocessor () | |
PeakMeter | to_meter () | |
MonitorProcessor | to_monitorprocessor () | |
PeakMeter | to_peakmeter () | |
SideChain | to_sidechain () | |
bool | locked () | |
void | lower () | |
void | lower_to_bottom () | |
StringVector | master_source_names () | |
SourceList | master_sources () | |
void | move_start (long, int) | |
void | move_to_natural_position () | |
bool | muted () | |
unsigned int | n_channels () | |
void | nudge_position (long) | |
bool | opaque () | |
long | position () | |
How the region parameters play together: POSITION: first frame of the region along the timeline START: first frame of the region within its source(s) LENGTH: number of frames the region represents | ||
bool | position_locked () | |
double | quarter_note () | |
void | raise () | |
void | raise_to_top () | |
bool | sameinstance (Region) | |
Set the region's sync point.
| ||
void | set_video_locked (bool) | |
float | shift () | |
Source | source (unsigned int) | |
long | start () | |
float | stretch () | |
bool | sync_marked () | |
bool | video_locked () | |
bool | whole_file () | |
Cast | ||
AudioRegion | to_audioregion () | |
MidiRegion | to_midiregion () | |
Readable | to_readable () |
enable custom plugin-insert configuration
Returns true if successful
the signal processorat at end of the processing chain which produces output
************************************************************* Pure interface begins here*************************************************************
Return the first processor that accepts has at least one MIDI input and at least one audio output. In the vast majority of cases, this will be "the instrument". This does not preclude other MIDI->audio processors later in the processing chain, but that would be a special case not covered by this utility function.
C‡: ARDOUR::RouteGroup
A group identifier for routes.
RouteGroups permit to define properties which are shared among all Routes that use the given identifier.
A route can at most be in one group.
This class object is only used indirectly as return-value and function-parameter. It provides no methods by itself.
+Methods | ||
---|---|---|
int | add (Route) | |
Add a route to a group. Adding a route which is already in the group is allowed; nothing will happen.
| ||
void | clear () | |
void | destroy_subgroup () | |
bool | empty () | |
int | group_master_number () | |
bool | has_subgroup () | |
bool | is_active () | |
bool | is_color () | |
bool | is_gain () | |
bool | is_hidden () | |
bool | is_monitoring () | |
bool | is_mute () | |
bool | is_recenable () | |
bool | is_relative () | |
bool | is_route_active () | |
bool | is_select () | |
bool | is_solo () | |
void | make_subgroup (bool, Placement) | |
int | remove (Route) | |
RouteListPtr | route_list () | |
void | set_active (bool, void*) | |
void | set_color (bool) | |
void | set_gain (bool) | |
void | set_hidden (bool, void*) | |
void | set_monitoring (bool) | |
void | set_mute (bool) | |
void | set_recenable (bool) | |
void | set_relative (bool, void*) | |
void | set_route_active (bool) | |
void | set_select (bool) | |
void | set_solo (bool) | |
unsigned long | size () |
C‡: std::list<ARDOUR::RouteGroup* >
+ +Constructor | ||
---|---|---|
ℂ | ARDOUR.RouteGroupList () | |
Methods | ||
bool | empty () | |
LuaIter | iter () | |
void | reverse () | |
unsigned long | size () | |
LuaTable | table () |
C‡: std::list<boost::shared_ptr<ARDOUR::Route> >
@@ -2283,7 +2850,6 @@ Pointer Classes cannot be created in lua scripts. It always requires a call to C"actual" sample rate of session, set by current audioengine rate, pullup/down etc.
"native" sample rate of session, regardless of current audioengine rate, pullup/down etc
save session
Returns zero on success
C‡: boost::shared_ptr< ARDOUR::Source >, boost::weak_ptr< ARDOUR::Source >
+is-a: ARDOUR:SessionObject
A named object associated with a Session. Objects derived from this class are expected to be destroyed before the session calls drop_references().
Methods | ||
---|---|---|
std::string | ancestor_name () | |
bool | can_be_analysed () | |
bool | destructive () | |
bool | empty () | |
bool | has_been_analysed () | |
bool | isnil () | |
long | length (long) | |
long | natural_position () | |
bool | sameinstance (Source) | |
long | timeline_position () | |
long | timestamp () | |
int | use_count () | |
bool | used () | |
bool | writable () | |
Cast | ||
AudioSource | to_audiosource () | |
MidiSource | to_midisource () |
Methods | ||
---|---|---|
std::string | name () | |
Cast | ||
Stateful | to_stateful () | |
StatefulDestructible | to_statefuldestructible () |
C‡: std::vector<boost::shared_ptr<ARDOUR::Source> >
+ +Constructor | ||
---|---|---|
ℂ | ARDOUR.SourceList () | |
Methods | ||
LuaTable | add (LuaTable {Source}) | |
Source | at (unsigned long) | |
bool | empty () | |
LuaIter | iter () | |
void | push_back (Source) | |
unsigned long | size () | |
LuaTable | table () |
C‡: boost::shared_ptr< ARDOUR::Stripable >, boost::weak_ptr< ARDOUR::Stripable >
@@ -2842,12 +3459,15 @@ Pointer Classes cannot be created in lua scripts. It always requires a call to CConstructor | ||
---|---|---|
ℂ | ARDOUR.Tempo (double, double) | |
| ||
| ||
Methods | ||
double | beats_per_minute () | |
double | frames_per_beat (long) | |
audio samples per beat
| ||
double | frames_per_note_type (long) | |
audio samples per note type. if you want an instantaneous value for this, use TempoMap::frames_per_quarter_note_at() instead.
| ||
double | frames_per_quarter_note (long) | |
audio samples per quarter note. if you want an instantaneous value for this, use TempoMap::frames_per_quarter_note_at() instead.
| ||
double | note_type () | |
double | note_types_per_minute () | |
double | quarter_notes_per_minute () |
C‡: ARDOUR::TempoMap
@@ -2855,8 +3475,12 @@ Pointer Classes cannot be created in lua scripts. It always requires a call to CTempo Map - mapping of timecode to musical time. convert audio-samples, sample-rate to Bar/Beat/Tick, Meter/Tempo
Methods | ||
---|---|---|
MeterSection | add_meter (Meter, double, BBT_TIME, long, PositionLockStyle) | |
MeterSection | add_meter (Meter, double, BBT_TIME, PositionLockStyle) | |
TempoSection | add_tempo (Tempo, double, long, Type, PositionLockStyle) | |
BBT_TIME | bbt_at_frame (long) | |
Returns the BBT time corresponding to the supplied frame position.
Returns the BBT time at the frame position . | ||
double | exact_beat_at_frame (long, int) | |
double | exact_qn_at_frame (long, int) | |
MeterSection | meter_section_at_beat (double) | |
MeterSection | meter_section_at_frame (long) | |
TempoSection | tempo_section_at_frame (long) | |
std::string | comment () | |
bool | customize_plugin_insert (Processor, unsigned int, ChanCount, ChanCount) | |
enable custom plugin-insert configuration
Returns true if successful | ||
IO | input () | |
Delivery | main_outs () | |
the signal processorat at end of the processing chain which produces output | ||
bool | muted () | |
Processor | nth_plugin (unsigned int) | |
Processor | nth_processor (unsigned int) | |
Processor | nth_send (unsigned int) | |
IO | output () | |
PannerShell | panner_shell () | |
PeakMeter | peak_meter () | |
************************************************************* Pure interface begins here************************************************************* | ||
int | remove_processor (Processor, ProcessorStreams, bool) | |
bool | set_strict_io (bool) | |
bool | soloed () | |
bool | strict_io () | |
Processor | the_instrument () | |
Return the first processor that accepts has at least one MIDI input and at least one audio output. In the vast majority of cases, this will be "the instrument". This does not preclude other MIDI->audio processors later in the processing chain, but that would be a special case not covered by this utility function. | ||
Amp | trim () | |
Cast | ||
Automatable | to_automatable () | |
Track | to_track () |
Musical time in beats.
Constructor | ||
---|---|---|
ℂ | Evoral.Beats (double) | |
Create from a real number of beats. | ||
Methods | ||
double | to_double () |
Methods | ||
---|---|---|
unsigned char* | buffer () | |
unsigned char | channel () | |
void | clear () | |
void | set_buffer (unsigned int, unsigned char*, bool) | |
void | set_channel (unsigned char) | |
void | set_type (unsigned char) | |
unsigned int | size () | |
long | time () | |
unsigned char | type () |
C‡: Evoral::MIDIEvent<long>
-is-a: Evoral:Event
+C‡: boost::shared_ptr< Evoral::Note<Evoral::Beats> >, boost::weak_ptr< Evoral::Note<Evoral::Beats> >
Methods | ||
---|---|---|
unsigned char | channel () | |
void | set_channel (unsigned char) | |
void | set_type (unsigned char) | |
unsigned char | type () | |
unsigned char | channel () | |
bool | isnil () | |
Beats | length () | |
unsigned char | note () | |
unsigned char | off_velocity () | |
bool | sameinstance (NotePtr) | |
Beats | time () | |
unsigned char | velocity () |
Methods | ||
---|---|---|
unsigned char* | buffer () | |
void | clear () | |
void | set_buffer (unsigned int, unsigned char*, bool) | |
unsigned int | size () | |
long | time () |
C‡: Evoral::Parameter
@@ -3653,6 +4287,15 @@ Pointer Classes cannot be created in lua scripts. It always requires a call to CC‡: boost::shared_ptr< Evoral::Sequence<Evoral::Beats> >, boost::weak_ptr< Evoral::Sequence<Evoral::Beats> >
+is-a: Evoral:ControlSet
+ +Methods | ||
---|---|---|
bool | isnil () | |
bool | sameinstance (Sequence) |
C‡: std::bitset<47ul>
@@ -3896,6 +4539,30 @@ Pointer Classes cannot be created in lua scripts. It always requires a call to CConstructor | ||
---|---|---|
ℂ | Timecode.BBT_TIME (unsigned int, unsigned int, unsigned int) | |
Data Members | ||
unsigned int | bars | |
unsigned int | beats | |
unsigned int | ticks |
C‡: Timecode::Time
+ +Constructor | ||
---|---|---|
ℂ | Timecode.Time (double) | |
Data Members | ||
bool | drop | |
Whether this Time uses dropframe Timecode | ||
unsigned int | frames | |
Timecode frames (not audio samples) | ||
unsigned int | hours | |
unsigned int | minutes | |
bool | negative | |
double | rate | |
Frame rate of this Time | ||
unsigned int | seconds | |
unsigned int | subframes | |
Typically unused |
C‡: Vamp::Plugin
@@ -3904,8 +4571,26 @@ Pointer Classes cannot be created in lua scripts. It always requires a call to CVamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio or related data.
In most cases, the input will be audio and the output will be a stream of derived data at a lower sampling resolution than the input.
Note that this class inherits several abstract methods from PluginBase. These must be implemented by the subclass.
PLUGIN LIFECYCLE
Feature extraction plugins are managed differently from real-time plugins (such as VST effects). The main difference is that the parameters for a feature extraction plugin are configured before the plugin is used, and do not change during use.
1. Host constructs the plugin, passing it the input sample rate. The plugin may do basic initialisation, but should not do anything computationally expensive at this point. You must make sure your plugin is cheap to construct, otherwise you'll seriously affect the startup performance of almost all hosts. If you have serious initialisation to do, the proper place is in initialise() (step 5).
2. Host may query the plugin's available outputs.
3. Host queries programs and parameter descriptors, and may set some or all of them. Parameters that are not explicitly set should take their default values as specified in the parameter descriptor. When a program is set, the parameter values may change and the host will re-query them to check.
4. Host queries the preferred step size, block size and number of channels. These may all vary depending on the parameter values. (Note however that you cannot make the number of distinct outputs dependent on parameter values.)
5. Plugin is properly initialised with a call to initialise. This fixes the step size, block size, and number of channels, as well as all of the parameter and program settings. If the values passed in to initialise do not match the plugin's advertised preferred values from step 4, the plugin may refuse to initialise and return false (although if possible it should accept the new values). Any computationally expensive setup code should take place here.
6. Host finally checks the number of values, resolution, extents etc per output (which may vary depending on the number of channels, step size and block size as well as the parameter values).
7. Host will repeatedly call the process method to pass in blocks of input data. This method may return features extracted from that data (if the plugin is causal).
8. Host will call getRemainingFeatures exactly once, after all the input data has been processed. This may return any non-causal or leftover features.
9. At any point after initialise was called, the host may optionally call the reset method and restart processing. (This does not mean it can change the parameters, which are fixed from initialise until destruction.)
A plugin does not need to handle the case where setParameter or selectProgram is called after initialise has been called. It's the host's responsibility not to do that. Similarly, the plugin may safely assume that initialise is called no more than once.
Methods | ||
---|---|---|
InputDomain | getInputDomain () | |
Get the plugin's required input domain. If this is TimeDomain, the samples provided to the process() function (below) will be in the time domain, as for a traditional audio processing plugin. If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to process(). The input data for the FFT will be rotated so as to place the origin in the centre of the block. The plugin does not get to choose the window type -- the host will either let the user do so, or will use a Hanning window. | ||
unsigned long | getMaxChannelCount () | |
Get the maximum supported number of input channels. | ||
unsigned long | getMinChannelCount () | |
Get the minimum supported number of input channels. | ||
OutputList | getOutputDescriptors () | |
Get the outputs of this plugin. An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the process() call. | ||
unsigned long | getPreferredBlockSize () | |
Get the preferred block size (window size -- the number of sample frames passed in each block to the process() function). This should be called before initialise(). A plugin that can handle any block size may return 0. The final block size will be set in the initialise() call. | ||
unsigned long | getPreferredStepSize () | |
Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the process() function) for the plugin. This should be called before initialise(). A plugin may return 0 if it has no particular interest in the step size. In this case, the host should make the step size equal to the block size if the plugin is accepting input in the time domain. If the plugin is accepting input in the frequency domain, the host may use any step size. The final step size will be set in the initialise() call. | ||
FeatureSet | getRemainingFeatures () | |
After all blocks have been processed, calculate and return any remaining features derived from the complete input. | ||
std::string | getType () | |
Used to distinguish between Vamp::Plugin and other potential sibling subclasses of PluginBase. Do not reimplement this function in your subclass. | ||
bool | initialise (unsigned long, unsigned long, unsigned long) | |
Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames). The input sample rate should have been already specified at construction time. Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported. | ||
void | reset () | |
Reset the plugin after use, to prepare it for another clean run. Not called for the first initialisation (i.e. initialise must also do a reset). |
Get the version number of the plugin. | ||
StringVector | getPrograms () | |
Get the program settings available in this plugin. A program is a named shorthand for a set of parameter values; changing the program may cause the plugin to alter the values of its published parameters (and/or non-public internal processing parameters). The host should re-read the plugin's parameter values after setting a new program. The programs must have unique names. | ||
std::string | getType () | |
Get the type of plugin. This is to be implemented by the immediate subclass, not by actual plugins. Do not attempt to implement this in plugin code. | ||
void | selectProgram (std::string) | |
Select a program. (If the given program name is not one of the available programs, do nothing.) | ||
void | setParameter (std::string, float) | |
ℂ | Vamp.Plugin.FeatureSet () | |
Methods | ||
---|---|---|
LuaTable | add (LuaTable {Feature}) | |
... | at (--lua--) | |
void | clear () | |
unsigned long | count (int) | |
bool | empty () |