19 #ifndef _ardour_lua_api_h_
20 #define _ardour_lua_api_h_
26 #include <rubberband/RubberBandStretcher.h>
27 #include <vamp-hostsdk/Plugin.h>
42 namespace ARDOUR {
namespace LuaAPI {
63 std::shared_ptr<Processor>
new_send (
Session* s, std::shared_ptr<ARDOUR::Route> r, std::shared_ptr<ARDOUR::Processor> p);
215 bool set_automation_data (std::shared_ptr<ARDOUR::AutomationControl> ac, luabridge::LuaRef tbl,
double thin = -1);
301 std::vector<std::string>
env ();
315 Vamp (
const std::string&,
float sample_rate);
337 int analyze (std::shared_ptr<ARDOUR::AudioReadable> r, uint32_t channel, luabridge::LuaRef fn);
373 ::Vamp::Plugin::FeatureSet
process (
const std::vector<float*>& d, ::Vamp::RealTime rt);
391 std::shared_ptr<AudioRegion>
process (luabridge::LuaRef cb);
413 std::vector<std::shared_ptr<AudioSource> >
_asrc;
415 RubberBand::RubberBandStretcher
_rbs;
426 std::shared_ptr<Evoral::Note<Temporal::Beats> >
429 std::list<std::shared_ptr< Evoral::Note<Temporal::Beats> > >
432 std::list<std::shared_ptr< Evoral::Event<Temporal::Beats> > >
435 std::list<std::shared_ptr< Evoral::PatchChange<Temporal::Beats> > >
456 _addr = lo_address_new_from_url (uri.c_str());
static const samplecnt_t _bufsize
bool set_strech_and_pitch(double stretch_ratio, double pitch_ratio)
bool read_region(bool study)
std::shared_ptr< AudioRegion > _region
uint32_t n_channels() const
samplecnt_t read(Sample *, samplepos_t pos, samplecnt_t cnt, int channel) const
std::shared_ptr< AudioReadable > readable()
RubberBand::RubberBandStretcher _rbs
std::map< size_t, size_t > _mapping
std::shared_ptr< Rubberband > _self
std::vector< std::shared_ptr< AudioSource > > _asrc
bool set_mapping(luabridge::LuaRef tbl)
Rubberband(Rubberband const &)
std::shared_ptr< AudioRegion > finalize()
std::shared_ptr< AudioRegion > process(luabridge::LuaRef cb)
Rubberband(std::shared_ptr< AudioRegion >, bool percussive)
samplecnt_t readable_length_samples() const
::Vamp::Plugin::FeatureSet process(const std::vector< float * > &d, ::Vamp::RealTime rt)
int analyze(std::shared_ptr< ARDOUR::AudioReadable > r, uint32_t channel, luabridge::LuaRef fn)
Vamp(const std::string &, float sample_rate)
::Vamp::Plugin * plugin()
static std::vector< std::string > list_plugins()
static void assign(luabridge::LuaRef *rv, T key, const LuaTableEntry &s)
static void * findclasskey(lua_State *L, const void *key)
std::vector< LuaTableEntry > _data
float get_plugin_insert_param(std::shared_ptr< ARDOUR::PluginInsert > pi, uint32_t which, bool &ok)
int hsla_to_rgba(lua_State *lua)
std::list< std::shared_ptr< Evoral::PatchChange< Temporal::Beats > > > patch_change_list(std::shared_ptr< ARDOUR::MidiModel >)
int datatype_ctor_midi(lua_State *L)
bool set_plugin_insert_param(std::shared_ptr< ARDOUR::PluginInsert > pi, uint32_t which, float value)
std::list< std::shared_ptr< Evoral::Note< Temporal::Beats > > > note_list(std::shared_ptr< ARDOUR::MidiModel >)
std::string ascii_dtostr(const double d)
int datatype_ctor_audio(lua_State *L)
int timecode_to_sample_lua(lua_State *L)
std::shared_ptr< ARDOUR::Processor > new_luaproc(ARDOUR::Session *s, const std::string &p)
std::string dump_untagged_plugins()
int sample_to_timecode(lua_State *L)
std::shared_ptr< ARDOUR::Processor > nil_processor()
std::list< std::shared_ptr< ARDOUR::PluginInfo > > list_plugins()
bool set_automation_data(std::shared_ptr< ARDOUR::AutomationControl > ac, luabridge::LuaRef tbl, double thin=-1)
int sample_to_timecode_lua(lua_State *L)
bool set_processor_param(std::shared_ptr< ARDOUR::Processor > proc, uint32_t which, float value)
int simple_export(lua_State *L)
std::shared_ptr< ARDOUR::Processor > new_plugin_with_time_domain(ARDOUR::Session *s, const std::string &id, ARDOUR::PluginType type, Temporal::TimeDomain td, const std::string &preset="")
std::shared_ptr< Evoral::Note< Temporal::Beats > > new_noteptr(uint8_t, Temporal::Beats, Temporal::Beats, uint8_t, uint8_t)
std::list< std::shared_ptr< Evoral::Event< Temporal::Beats > > > sysex_list(std::shared_ptr< ARDOUR::MidiModel >)
float get_processor_param(std::shared_ptr< Processor > proc, uint32_t which, bool &ok)
int color_to_rgba(lua_State *lua)
bool set_plugin_insert_property(std::shared_ptr< ARDOUR::PluginInsert > pi, std::string const &uri, luabridge::LuaRef value)
int plugin_automation(lua_State *lua)
int get_plugin_insert_property(lua_State *p)
std::shared_ptr< ARDOUR::Processor > new_plugin(ARDOUR::Session *s, const std::string &id, ARDOUR::PluginType type, const std::string &preset="")
std::shared_ptr< ARDOUR::PluginInfo > new_plugin_info(const std::string &id, ARDOUR::PluginType type)
int build_filename(lua_State *lua)
int timecode_to_sample(lua_State *L)
bool wait_for_process_callback(size_t n_cycles, int64_t timeout_ms)
bool reset_processor_to_default(std::shared_ptr< Processor > proc)
std::shared_ptr< Processor > new_send(Session *s, std::shared_ptr< ARDOUR::Route > r, std::shared_ptr< ARDOUR::Processor > p)
std::vector< std::string > env()
std::shared_ptr< ARDOUR::Processor > new_luaproc_with_time_domain(ARDOUR::Session *s, const std::string &p, Temporal::TimeDomain td)
int datatype_ctor_null(lua_State *lua)
int desc_scale_points(lua_State *p)
Temporal::samplecnt_t samplecnt_t
Temporal::samplepos_t samplepos_t
LuaTableEntry(int kt, int vt)