[Python.NET] Trouble getting Python for .NET to work in Ableton Live

Tijs Wickardt wickardt at xs4all.nl
Tue Dec 11 21:30:30 CET 2007


Hi group,

I'm new here, so let me start with a small introduction: I'm a Progress
developer (RDBMS with it's own 4GL) for a living, with some experience in
C++ and C#, and I'm into music. Python is new to me, but doesn't seem so
hard to learn (at least the basics). So sorry beforehand for some silly
questions which I should have posted at a Python noob forum ;)

Here's the question:

The provided examples with Python for .NET run fine with the supplied
python.exe on my Win32 XP SP2. I previously had problems with using the
CLR.dll (Python .NET 1.0) inside a default Python 2.4.4 installation, and
asked Brian Lloyd about this, but it was apparently an installation
problem; now, on another machine, this imports fine (import CLR). It was a
Python 2.5.1 installation on the other machine, maybe that's the
difference.

What I'd really like to do however, is the following:
In a music program called Ableton Live, Python scripts are used to make
interfaces between hardware midi controllers and Ableton Live.

I'd like to use Python for .NET here, since I have several C# libraries
I'd like to use for my mappings (and other stuff).

When I copy "Python.Runtime.dll" and "CLR.dll" to a subfolder with a
python script of Ableton Live, it compiles into .pyc. Ableton Live however
gives a message "A serious error has occured", and on shutdown of the
program, a memory fault causes the MS debugger to launch. Not good.

Is what I want possible?
Should I add more code to the .py scripts?
The only thing I've added was "import CLR" in the first line of
"__init__.py" (plus a newline character oc).
Should I use a CLR.dll for Python 2.2, and does that exist?

With the Python for .NET 2.0, I don't see a CLR.dll anymore. Only a
"clr.so" of which I have no clue, and doesn't import. How should I use it?

Here is some more info on Ableton Live's Python implementation (quoted
from www.liveapi.org, which is down at the moment):
# The current limitations that really stand out are: Ableton's Python
environment is based on a stripped down Python 2.2 install
# Updates are limited to 60ms (16 times a second)
# Threads in Ableton's Python environment are only polled every 100ms,
sys.setcheckinterval() doesn't seem to affect this.
# No select.py seems to work, although we suspect that this could be
easily resolved with some additional effort. There's an incompatibility
between Ableton's Python and the 'standard' Python 2.2 major release. They
appear to be different flavors.


Any help appreciated,

Kind regards, Tijs Wickardt










More information about the PythonDotNet mailing list