Who wants access to Ableton's Python API? .. You? .. Ok!

Discuss music production with Ableton Live.
Post Reply
Tone Deft
Posts: 24152
Joined: Mon Oct 02, 2006 5:19 pm

Post by Tone Deft » Thu Jun 07, 2007 4:03 am

Nathan - Have you guys seen a way to control two instances of Live separately?

Awesome work, what a head trip!! Thank you!
In my life
Why do I smile
At people who I'd much rather kick in the eye?
-Moz

Nathan Ramella
Posts: 128
Joined: Wed Jun 06, 2007 10:48 am

Post by Nathan Ramella » Thu Jun 07, 2007 4:45 am

Tone Deft wrote:Nathan - Have you guys seen a way to control two instances of Live separately?

Awesome work, what a head trip!! Thank you!
Sure, right now the way to do that would be to change the listen port on the second Live. By default it listens on port 9000 for incoming OSC requests, however in LiveOSC.py, line 40 you'll see this line..

self.oscServer = RemixNet.OSCServer()

You can start OSCServer with the following arguments

self.oscServer = RemixNet.OSCServer(OSCClientHost, OSCClientSendPort, ListenInterface, ListenPort)

OSCClientHost is the host Ableton will send OSC commands back to, if your callback supports them. (Default localhost)

OSCClientSendPort is the port that it will be sending to (default 9001)

ListenInterface is the IP address on the machine Live is running on that it will listen for incoming OSC requests on, by default it is '' which means listen on every interface

ListenPort is the port that Live will listen for OSC commands on

So if you wanted to have two lives going, you could copy the LiveOSC directory to LiveOSC2, and modify that line to say..

self.oscServer = RemixNet.OSCServer(None, None, None, 8000)

And if you run two Live's with one running LiveOSC and the other running LiveOSC2, one will listen on port 9000, one will listen on port 8000.

Granted, this is a mad-hacky way to do it, but you get the idea but that should work.
remix.net - versus / liveapi / hangthedj / ammobox

Mr-Bit
Posts: 293
Joined: Sat Dec 16, 2006 3:02 pm
Location: The Studio
Contact:

Post by Mr-Bit » Thu Jun 07, 2007 8:02 am

OMG! great news, with L7 just around the corner exiting times.

kidbeyond
Posts: 19
Joined: Tue Aug 30, 2005 6:34 am
Location: San Francisco, CA
Contact:

Post by kidbeyond » Thu Jun 07, 2007 8:06 am

Wow. This seems AMAZING. Nice work, you guys.

I don't know Python, so I have a feeling I haven't even grasped the full implications of how awesome this could be.

OSX OSX OSX please!

-- Kid B

Michael Hatsis
Posts: 1807
Joined: Tue Nov 16, 2004 6:27 pm
Location: Here and There
Contact:

Post by Michael Hatsis » Thu Jun 07, 2007 8:23 am

This is completely insane!!!!!you mentioned something in this post about being able to do things not possible in Live, ala changing the name of the master track. Would it be possible to access parameters not MIDI mappable like follow actions and/or clip BPM? Im really looking forward to playing around with this.

Thanks Again!!!!
Last edited by Michael Hatsis on Thu Jun 07, 2007 8:45 am, edited 1 time in total.

3dot...
Posts: 9996
Joined: Tue Feb 20, 2007 11:10 pm

Post by 3dot... » Thu Jun 07, 2007 8:28 am

Tone Deft wrote:
forge wrote:
Tone Deft wrote:
And where the f-ing hell is Machinate?????

.
He's playing with his new Evolver
Damn you Dave Smith.
I can really relate... :lol:

3dot...
Posts: 9996
Joined: Tue Feb 20, 2007 11:10 pm

Post by 3dot... » Thu Jun 07, 2007 8:58 am

This requires it's own 'sticky' !!! I'm gonna get on this tommorow...
I would be interested in building a complete live contol interface...Which Goes beyond my current Mackie Ctrl/Bome's parameters.
Where ALL live Functions could be mapped simply( with a UI...) to any Midi Controller/kbd ...
Could all parameters be fed back through OSC ...?
Could Devices be built into the live library with PYTHON?
Have been planning to get some reading done about OSC (back when I was using VVVV) ...
Guess I won't be making any tunes this weekend....
Gonna be listening to music and trying to learn OSC and Python... Digital audio has made me into a complete geek...
If this is what I think it is then the 'Lemur's days are numbered....

Sales Dude McBoob
Posts: 2842
Joined: Thu Dec 02, 2004 9:34 pm
Location: Durham, NC. USA
Contact:

Post by Sales Dude McBoob » Thu Jun 07, 2007 1:55 pm

Care to elaborate on this?
Usage of LiveAPI.org software can cause irreparable damage to Ableton Live projects if used incorrectly.
You try to open your set and you get this dialog box:
Unfortunately your set has been consumed by an Arbitrary Blob and Live cannot recover it.

simioliolio
Posts: 3
Joined: Thu Jun 07, 2007 2:29 pm

Post by simioliolio » Thu Jun 07, 2007 2:35 pm

wow wow wow, such a good idea! how no one has done this before i really dont know. just followed the link from monome community, and i now have butterflies, and crazy ideas whizzing around in my head. sweet as! next gen live performance! no more dull mouse performances! done well guys def having a crack at this.

axou
Posts: 95
Joined: Wed Feb 15, 2006 10:59 am

Post by axou » Thu Jun 07, 2007 3:05 pm

3dot... wrote: If this is what I think it is then the 'Lemur's days are numbered....
huh ??
This is more like the beginning of a new era for Live & Lemur owners, who have the most configurable OSC-native controller out there. Those are the best equipped to take advantage of this new layer of access to Live's functionalities

corneliusw
Posts: 78
Joined: Thu Jul 14, 2005 4:49 am
Location: melbourne AU
Contact:

Post by corneliusw » Thu Jun 07, 2007 3:07 pm

this is exactly what I have been waiting for. Unbelievable job guys. Just wish I wasn't so damn busy! I gotta get me head around Python now ... and the fact that Ableton are behind it?! i just gets better. My Lemur is going to be very happy soon :D

Nathan Ramella
Posts: 128
Joined: Wed Jun 06, 2007 10:48 am

Post by Nathan Ramella » Thu Jun 07, 2007 6:22 pm

mike@TrackTeam Audio wrote:Would it be possible to access parameters not MIDI mappable like follow actions and/or clip BPM? Im really looking forward to playing around with this.

Thanks Again!!!!
I looked last night and couldn't locate any Follow Action mapping stuff or clip BPM, sorry. :( That kind of bummed me out too.
remix.net - versus / liveapi / hangthedj / ammobox

Nathan Ramella
Posts: 128
Joined: Wed Jun 06, 2007 10:48 am

Post by Nathan Ramella » Thu Jun 07, 2007 6:23 pm

axou wrote:
3dot... wrote: If this is what I think it is then the 'Lemur's days are numbered....
huh ??
This is more like the beginning of a new era for Live & Lemur owners, who have the most configurable OSC-native controller out there. Those are the best equipped to take advantage of this new layer of access to Live's functionalities
Quoted for truth.
remix.net - versus / liveapi / hangthedj / ammobox

Nathan Ramella
Posts: 128
Joined: Wed Jun 06, 2007 10:48 am

Post by Nathan Ramella » Thu Jun 07, 2007 6:27 pm

3dot... wrote: I would be interested in building a complete live contol interface...Which Goes beyond my current Mackie Ctrl/Bome's parameters.
Where ALL live Functions could be mapped simply( with a UI...) to any Midi Controller/kbd ...
Could all parameters be fed back through OSC ...?
Could Devices be built into the live library with PYTHON?
1. Complete live control interface going beyond current parameters? Check!

2. All live functions mapped to any midi controller? (Partially, triggering and device parameters for sure, the exposed Python API stuff definitely favors 'Live performers' with its current capabilities.

3. All parameters be fed back through OSC? Yes. You can make what I call 'zombie beacons', which would be wrapped method instances that when a parameter gets modified would broadcast out the new setting. So. Check!

4. Devices built into the live library with Python... If you mean things like DSP / samplers "internal" instruments like Impulse, etc. No. If you mean completely customized hardware device interfaces for triggering Live actions, then yes.
remix.net - versus / liveapi / hangthedj / ammobox

Nathan Ramella
Posts: 128
Joined: Wed Jun 06, 2007 10:48 am

Post by Nathan Ramella » Thu Jun 07, 2007 6:31 pm

Sales Dude McBoob wrote:Care to elaborate on this?
Usage of LiveAPI.org software can cause irreparable damage to Ableton Live projects if used incorrectly.
You try to open your set and you get this dialog box:
Unfortunately your set has been consumed by an Arbitrary Blob and Live cannot recover it.
Basically if you delete or illegally (within expected parameters) modify them and save your set it could break things. The Python API is really a wrapper around C++ code, a lot of functions are just references to C++ code (Which is why you can't instantiate new clips or whatnot, it's just references that require C++ to be initialized correctly.

Since the API was designed with a very specific set of purposes in mind as an interface to the C++ code, if you as the user modify the object in a way that C++ isn't expecting and doesn't stop you from doing, you could get unexpected results.

The disclaimer is put out there so that we don't get people messing things up and thinking it's LiveAPI.org or Ableton's fault. If you play with this software and you mess something up that's a YP, not a MP.

-n
remix.net - versus / liveapi / hangthedj / ammobox

Post Reply