Python API Enhancements

Share what you’d like to see added to Ableton Live.
Post Reply
mdk
Posts: 914
Joined: Sun Jul 31, 2005 3:51 pm
Location: Skopje, Macedonia
Contact:

Python API Enhancements

Post by mdk » Thu Oct 25, 2007 10:05 am

I just had a quick scan through the Beta (B7) to see if the API had changed but it looks pretty much the same, which is a real shame, so here is what i think could be added to make the API really useful.

1. Clip Object

Audio Clip

Warp mode control

Currently the Clip only has a 'warping' boolean, a warp_mode object would be great with

mode : int (0 -> beat, 1 -> Tone etc..)
param1 : int (used for beat, tone and texture modes)
param2 : int (only used for texture mode)

Reverse control

An attribute to be able to control reverse would be great.

Slice to midi method with parameters

mode : int ( Warp, bar, 1/2 etc)
preset : int

Midi Clip

notes : array of Note objects

Note attributes

start
end
length : allow both end and length to be writable and compute the other when one changes :)
velocity (for note on)
velocity_off (for note off)

2. Racks

Allow access to contents of racks via a chains array of chain objects.

Chain attributes

name
mixer : (MixerDevice)
key_range (range object : low and high attributes)
velocity_range (as key)
chain_range (or just called range,again a range object)
devices : array of Device objects

The rack itself needs a chain_select attribute.

That covers the instrument rack, the drum rack has more options so each instrument chain would need :

receive_note
play_note
choke_group
audio_to

Then the rack object also needs an array for the fx :

effects : array of RackSend objects with attributes :

name
mixer : MixerDevice
devices : array of Devices
audio_to : int to select output

General Features

Allow for the creation and removal of anything you can do manually in Live :

midi clips (optional filename parameter)
audio clips (required filename parameter)
devices

the methods would be best on the valid container objects, so a track can create / delete midi clips, audio clips and devices, whereas rack chains can just create / delete devices.

Also anywhere you can use an audio file its would be great to have write access to the filename so you can swap the samples. Actually you could represent audio files via File objects, so you could programmatically go through the Library / Browser and grab a file object from any audio clip and just assign it to where you want, a clip, a sampler zone, an impulse slot.

all this would make it possible to create a real online library, with rack sharing, preset sharing, tagging, rating, commenting etc.. Like a combination of Kore and the Reaktor User Library. Just imagine how amazing that would be.

of course i havent even touched on envelopes, either clip or automation envelopes. Both of those would be really useful as well then I could write my own automation smoothing functions (and other interesting stuff like value scaling, waveshaping, perlin noise etc..etc..)

It could even prove a useful means of prototyping new functions for you. The community builds something using the API, you get to see it in action and can then consider making it a native function. Bingo, free R&D for you, less complaints from us because we can solve our own problems.

its a win-win situation. :D
Pr0k Records - Bandcamp Facebook Twitter

annihilator.1
Posts: 291
Joined: Tue Jun 27, 2006 6:17 pm
Location: England

Post by annihilator.1 » Thu Oct 25, 2007 6:33 pm

I think that the Live API should be available within Live itself , like a Live Scripting Language.

Live 7 has the ability to attatch notes to racks etc ,so if that note pad area could host a script...

keeko
Posts: 57
Joined: Sat Jul 23, 2005 11:32 am
Location: Brighton, UK
Contact:

Post by keeko » Fri Oct 26, 2007 11:26 pm

BIG +1 on this.

I gave up on the API project (and went back to making music) when I realised many of the parameters I wanted access to weren't there.

Please consider implementing changes to the API to give us access to the parameters mdk lists.
Windows 10, Live 9.7.1 (64 bit)

e-theory
Posts: 135
Joined: Tue Oct 31, 2006 3:33 am
Location: Sydney, Australia
Contact:

Post by e-theory » Mon Oct 29, 2007 2:58 am

Wow, what an idea!

Giving Live users the ability to be able to edit Python API scripts directly within the Live interface would indeed make Live THE most powerful Music production platform in the world - and the resulting scripts would not only help out users but also Ableton themselves.

Once users write scripts for say CM Motomix integration for instance, then it should be relatively straight forward for Ableton to then integrate such a script into the core of Live ( from my own Python to C conversion experiences, especially if the API is relatively 1-1 with their codebase ).

It would be like an "Open Source" idea for Live - where I strongly believe the the user should sign an agreement before using the scripting feature that they will allow Ableton to use their code within the next version of the software without any intellectual property issues - this would make the arrangement more attractive to Ableton and the rest of the community.

This would be an absolute dream come true.

Please please please please do it! It would make programmers like me exceptionally happy and in a short space of time the code results would make EVERYONE very happy....
evolutionary theory - Core RnD and Technical Director at Dr.D Studios / DnB Producer / Composer
evolutionarytheory@gmail.com

http://www.evolutionary-theory.com
http://www.evolutionaryrecordings.com
now evolving.... site coming soon....

http://soundcloud.com/evolutionarytheory

aznach
Posts: 2
Joined: Tue Oct 30, 2007 9:41 pm

100% in favour!

Post by aznach » Tue Oct 30, 2007 9:51 pm

Exciting!

@e-theory
Very sensible remarks.

We should start a lobby, seriously.

e-theory
Posts: 135
Joined: Tue Oct 31, 2006 3:33 am
Location: Sydney, Australia
Contact:

Post by e-theory » Tue Oct 30, 2007 10:38 pm

Start a lobby, hell I'd jump on the next plane to Germany and start doing an interpretive dance if that is what it will take ( and besides I loved Germany the last time I went there anyway, Berlin is still a blurrrrr in my memory.... ).

SO, how can we get this happening?

Man I would LOVE to go to town on this whole Python scripting thing - It is the language that I use at work every day and hence I think I would be pretty capable of giving back a LOT of useful stuff to those crazy but exceptionally awesome Ableton Germans!

YAY!

Also, I wish they would release a plugin API to allow coders to write native plugins for their GUI. I would love to be able to write nicer filters etc. etc. for everyone and simple be able to pass out a small plugin file to do it.... I know there is VST blah blah but I LOVE their GUI so much I would be willing to switch APIs just to do it!

Also, whilst I am on a role, Ableton please create full Mackie Control emulation for the Novation Remote SL like it has for Pro Tools - the current integration is a nice try but SOOOOOO far from being where it should be, better yet, succumb to my Python demands and I will do it for you - promise!
evolutionary theory - Core RnD and Technical Director at Dr.D Studios / DnB Producer / Composer
evolutionarytheory@gmail.com

http://www.evolutionary-theory.com
http://www.evolutionaryrecordings.com
now evolving.... site coming soon....

http://soundcloud.com/evolutionarytheory

aznach
Posts: 2
Joined: Tue Oct 30, 2007 9:41 pm

Post by aznach » Tue Oct 30, 2007 11:18 pm

Ableton's interests to expose Live to Python, or vice versa, might be considerable from a marketing point of view.

Maybe our effort would benefit from contacting LiveAPI.org to add some weight to the lobby, after which we could contact Ableton directly (like beggars?).

As well, we could attempt to gather and team up with members of Python's and Live's communities that like the idea.

Snakes Live!

cbit
Posts: 170
Joined: Fri Apr 08, 2005 3:17 pm
Location: Rotterdam, Netherlands
Contact:

Post by cbit » Sat Nov 10, 2007 8:06 pm

e-theory wrote:Giving Live users the ability to be able to edit Python API scripts directly within the Live interface would indeed make Live THE most powerful Music production platform in the world - and the resulting scripts would not only help out users but also Ableton themselves.
Absolutely. If ableton could pull something like this off, and deliver the first fully scriptable extensable DAW, It would make it VERY difficult for heavy users to switch to a different DAW, because they'd be so used to working in an environment almost perfectly tuned to their way of working. Perhaps Live could infact be "all things to all people".
basementhum.blogspot.com. Adventures in computer music production.
Macbook 2 Ghz Intel Core 2 Duo. 3GB RAM. OS X 10.5.8

Philippe_Michael
Posts: 46
Joined: Wed Nov 14, 2007 5:19 pm

Post by Philippe_Michael » Wed Nov 21, 2007 5:07 am

Hey! I am sooo interested in this, but the LiveAPI.org site doesn't work... anybody knows where to turn?

longjohns
Posts: 9088
Joined: Mon Dec 22, 2003 3:42 pm
Location: seattle

Post by longjohns » Wed Nov 21, 2007 5:25 am

the folder is not that big, I could email it to you.

I'm not sure it was the latest they had, mine says v.9

?

444Kb

yannxou
Posts: 148
Joined: Fri Feb 27, 2004 8:39 pm
Location: Barcelona

Re: Python API Enhancements

Post by yannxou » Thu Mar 25, 2010 12:01 am

I've just found this thread looking for some information on the Python API and noticed it has 3 years..

Anyway I'm wondering if those Enhancements will be added sometime now that Max4Live is released because I can see room for both:
- Max4Live to build Audio/Midi effects or other devices
- Python API to build interfaces.

so..bump!
Live 9 Suite / MaxForLive / MacBook Black 2.4Ghz / 4Gb RAM / OSX 10.7.5 / Motu828 mk1 / MicroKONTROL / Midisport 4x4 / Korg Kaoss Pad II / Nocturn / Wiimote.

Post Reply