[Ardour-Dev] lua bindings - midi region create
robin at gareus.org
Tue Oct 18 12:12:11 PDT 2016
On 10/18/2016 08:02 PM, Nathan Stewart wrote:
> I took a look at the _vamp_audio_to_midi lua script, and had some questions:
> 1) We don't currently have bindings for creating midi regions (or audio?) I
> can't bind the constructor, but what should be exported?
Since the objects need C++ lifetime, they cannot be directly constructed
from a script.
Effectively RegionFactory::create() needs to be exposed, but it's
probably better to abstract that and create a dedicated method for Lua
which hides some details (PropertyList), like
MidiTimeAxisView::add_region() does for the Ardour GUI.
> 2) The function expects one audio region and one midi region. We currently
> can't select dissimilar types - so you can't for instance select an audio
> region and a MIDI track.
Indeed, the current Audio-to-MIDI script is just an example and proof of
> That would be one way to select the desired audio
> region, and provide a destination for the MIDI region created. If we
> select an audio track (so that we can select the MIDI track for the
> destination), we don't have a way to restrict the conversion to specific
> regions. Given the two current options, I think selecting regions and
> creating a new track for them to go to would be the most desirable solution.
Yes, creating new MIDI tracks is likely the most usable option. I'd keep
region/track mapping intact though.
e.g select 3 audio-regions on audio-track1, 2 audio-egions on
audio-track2 -> create 2 new midi tracks (not 5).
One downside: Undo is not possible (since track creation cannot be undone).
> 3) If we expect the output region to exist, it's currently
> difficult to (impossible? I haven't yet figured out how, seeing indications
> you can't) create an empty region in a MIDI track with no content.
press "D" (draw mode), then draw a region onto the midi-track.
see 20sec into https://vimeo.com/186035015
More information about the Ardour-Dev