Record MIDI or Audio Clip with TDAbleton? Using record_length

I’m trying to utilize an old trick for recording clips in Ableton that I used in Max for Live:

Basically: If you fire an empty clip (MIDI or Audio) it will start recording one, if the track is armed.

Although when I pulse ‘Fire Clip’ in the TDAbleton abletonClipSlot it defaults to pulsing stop button.

If I bypass the AbletonClipSlotExt method onParPulse() I can successfully start recording a clip. This looks to be because of the conditional on line 129, if self.ClipInfo: , which returns None if the clip is empty.

I’d like to request this functionality be added to TDAbleton. with the ability to specify ‘record_length’.

This is similar to this post
Although it’s not really a bug, as the lom reference states that if its ‘None’ it will stop clip.

Thanks,

According to the LOM: Lom link

Fire

Parameter: record_length (optional)
launch_quantization (optional)
Fires the clip or triggers the Stop Button, if any. Starts recording if slot is empty and track is armed. Starts recording of armed and empty tracks within a Group Track if Preferences->Launch->Start Recording on Scene Launch is ON. If record_length is provided, the slot will record for the given length in beats. launch_quantization overrides the global quantization if provided.

And according to structure-void struct void link

fire( (ClipSlot)arg1) → None : Fire a Clip if this Clipslot owns one, else trigger the stop button, if we have one. C++ signature : void fire(TPyHandle)fire( (ClipSlot)self [, (float)record_length=1.7976931348623157e+308 [, (int)launch_quantization=-2147483648 [, (bool)force_legato=False]]]) → None : If ‘record_length’ is passed, the clip will be refired after the given recording length. Raises an error if the slot owns a clip. ‘launch_quantization’ determines the quantization of global transport that is applied overriding the value in the song. ‘force_legato’ will make the clip play inmediatelly. The playhead will be moved to keep the clip synchronized. C++ signature : void fire(TPyHandle [,double=1.7976931348623157e+308 [,int=-2147483648 [,bool=False]]])

I’ll look into this for next update. Seems reasonable.

1 Like