JavaScript or PYTHON automation/scripting

Share what you’d like to see added to Ableton Live.
Spaturno
Posts: 22
Joined: Tue Jun 29, 2004 3:55 pm
Location: Milano, Italy
Contact:

JavaScript or PYTHON automation/scripting

Post by Spaturno » Thu Aug 25, 2005 9:58 pm

I've seen some Python related messages in the translation files of the Live app.
Mmmm... are the Abletons internally scripting or prototyping in Python?
If yes, they are a step from the Live automation via scripting.

So my wish is: scripting Live like you script Adobe InDesign via JavaScript or Excel via Visual Basic. Or something like this.

for a = 1 to 16
PlayClip("Track1",a,TriggerMode)
next a


Ciao

Jajah
Posts: 111
Joined: Thu Jun 24, 2004 1:38 pm

Post by Jajah » Fri Aug 26, 2005 10:26 am

more pythonic:

for clip in xrange(16): ## 0-15, use (1,17) for 1-16
clip.play(track, trigger_mode)


where/how did you see those python messages in L5?

saty safe,
Jajah

DirtRider
Posts: 18
Joined: Wed Aug 17, 2005 10:08 am
Location: Belgium

Post by DirtRider » Fri Aug 26, 2005 11:13 am

It's a music program, not a development framework :D

I write code all day PLEASE make sure I never have to do it in a bloody music program.
Also worth mentioning: Kontakt 2 hasa scripting engine and so far it's the buggiest part of the software, so IMHO they'd better diss it!

AAJT! :lol:

Spaturno
Posts: 22
Joined: Tue Jun 29, 2004 3:55 pm
Location: Milano, Italy
Contact:

Post by Spaturno » Mon Aug 29, 2005 10:52 am

{
sDialogOpenAPythonFile = "Choose a Python Script File";
};

It's in the .lng document. There's a .lng for every language.

Sorry Abletons, I know Live isn't Open Source, but I'm courious and those files are not compiled...

Spaturno
Posts: 22
Joined: Tue Jun 29, 2004 3:55 pm
Location: Milano, Italy
Contact:

Post by Spaturno » Mon Aug 29, 2005 10:54 am

DirtRider,
your right, my post is just a wish, scripts just could help for stage direction

Cone
Posts: 190
Joined: Thu May 05, 2005 6:42 pm
Location: Finland

Post by Cone » Mon Aug 29, 2005 12:45 pm

DirtRider, if Live had scripting, nobody would force you to use it. :)

Cakewalk used to have a LISP-like macro language called CAL, very handy to do some moderately complex MIDI manipulation. A Python scripting engine that lets you use some parts of Live's internal APIs could really rock. With enough exposed functionality you could even make internal effects and instruments for Live using those cool Ableton knobs and buttons...

Of course opening up APIs would be a very significant maintenance burden. I don't think we'll see it any time soon, if ever.
MacBook (Late 2006), iMac 21.5" (Late 2009), Mac OS X 10.6.4 // Ableton Suite 8.2 // KORG microKONTROL & padKONTROL // Saffire PRO 24 DSP // ESI nEAR 05 monitors // Audio-Technica ATH-M40fs cans.

noisetonepause
Posts: 4938
Joined: Sat Dec 28, 2002 3:38 pm
Location: Sticks and stones

Post by noisetonepause » Mon Aug 29, 2005 3:01 pm

(Ruby > Python) < Io (will be when when it's done, anyways)

stew
Posts: 313
Joined: Mon May 05, 2003 6:46 pm
Location: Ulm, Germany

Post by stew » Mon Aug 29, 2005 9:22 pm

Ooooh, Python scripting would so rock. :D I love Python. Just imagine programmatically changing effect parameters or sample offsets. OK, maybe that's what SuperCollider and pd are for, but anyways...

Maybe the Python hooks are there for automated testing? Scripts can be very useful for software QA.

gaspode
Posts: 1089
Joined: Sun Jan 19, 2003 6:56 am
Location: Hollis, NH
Contact:

Heh...

Post by gaspode » Thu Sep 01, 2005 10:30 pm

Forget Python... Perl 6.0 all the way!

ryansupak
Posts: 429
Joined: Wed Aug 18, 2004 7:23 pm

Post by ryansupak » Tue Sep 06, 2005 3:02 pm

Or...perhaps expose an API as COM Objects or similar, and let people use whatever language they want to call methods?

I'm fine without it, but I'm sure I'd find a use for it if it were there.

rs

pmuellr
Posts: 11
Joined: Sat Dec 11, 2004 7:09 am

concrete example

Post by pmuellr » Fri Sep 09, 2005 4:16 am

As a concrete example, I'd like to be able to control my Line6 Pod. Ideally, I'd like to have a script invocation stored in a clip. And the script should (obviously) have midi i/o support. I could then have the following sort of clips: load some presets, save current presets, switch to preset. Might be nice to be able to specify scripts to run when a session is loaded; then I could have my presets ready to go for each session. The switch to preset you could put in a track that you would 'run' as the song is playing, to switch presets while you're playing.

Some implications:

Please go a bit further than a menu option that allows you to run a python script. Make a script invocation a 1st call 'thing', not a bolt on.

Scripts should appear in a new browser window, and also in the file browser windows, allowing you to run them from the browser. Dragging a script to a clip would indicate running the script when that clip would normally play, instead of a one-time-invocation from the browser. Allow some way of passing some arguments, or enough ui capabilities for the script to display a prompter.

Presumably people will want to also create modules (in the python sense), so there should be some kind of directory where we can install these.

BTW, the Mackie support seems to be implemented in Python. There's a bunch of compiled (source-challenged) .pyc files in the 5.0.1 release. The Python support is already there! Just document it and tell us how to hook it in!

Hey, we'll help. Write doc. Write macros. Write some tools to let people distribute/download/manage scripts. Etc.
pmuellr

bensuthers
Posts: 760
Joined: Wed Oct 01, 2003 4:51 am

Post by bensuthers » Fri Sep 09, 2005 4:40 am

oh dear.

Cone
Posts: 190
Joined: Thu May 05, 2005 6:42 pm
Location: Finland

Post by Cone » Fri Sep 09, 2005 2:54 pm

Indeed.

alia_k
Posts: 1
Joined: Sat Sep 10, 2005 6:51 pm
Location: Saudi Arabia

Re: concrete example

Post by alia_k » Sat Sep 10, 2005 7:03 pm

pmuellr wrote:As a concrete example, I'd like to be able to control my Line6 Pod. Ideally, I'd like to have a script invocation stored in a clip. And the script should (obviously) have midi i/o support. I could then have the following sort of clips: load some presets, save current presets, switch to preset. Might be nice to be able to specify scripts to run when a session is loaded; then I could have my presets ready to go for each session. The switch to preset you could put in a track that you would 'run' as the song is playing, to switch presets while you're playing.

Some implications:

Please go a bit further than a menu option that allows you to run a python script. Make a script invocation a 1st call 'thing', not a bolt on.

Scripts should appear in a new browser window, and also in the file browser windows, allowing you to run them from the browser. Dragging a script to a clip would indicate running the script when that clip would normally play, instead of a one-time-invocation from the browser. Allow some way of passing some arguments, or enough ui capabilities for the script to display a prompter.

Presumably people will want to also create modules (in the python sense), so there should be some kind of directory where we can install these.

BTW, the Mackie support seems to be implemented in Python. There's a bunch of compiled (source-challenged) .pyc files in the 5.0.1 release. The Python support is already there! Just document it and tell us how to hook it in!

Hey, we'll help. Write doc. Write macros. Write some tools to let people distribute/download/manage scripts. Etc.
I like it a lot!

The questions remains is how you could apply a script to a group of clips such that something like this (at the very least) would be doable

Code: Select all

for clip in tracks[1].groups[1]:
    clip.play()
    time.sleep(.5)
AK

kettensaege
Posts: 106
Joined: Thu Sep 02, 2004 2:42 pm
Location: Germany

Post by kettensaege » Tue Nov 29, 2005 10:24 am

that would be so cool!
If the abletons would expose certain functionality to a scripting language, we ourselves could write functionality like "export track as seperate audio files" or custom midi plugins, combinator-like audio-devices that reuse existing plugins and simply put them behind a custom interface etc.
plus, dear abletons, you could use this for automated testing of your application, cross platform! :)
Oh, an please, make it python ...
Thanks!

Post Reply