This is taken from an old post I made on Ableton Addicts. I updated the DL link, enjoy.
Ok, It took me forever to find out how to do this with out Max Runtime. I found a tutorial on how to do it with FL Studio, but it had some holes, and no one that ever used controllers before might not had got it. So I'm making one for Ableton Live 8. Also I believe this method will only work with PC, unless you find similar software that will run on Mac (should work in 9 as well)
You will need MidiYoke, Bome's Midi Translator Classic, and Avis Rejoice, and the Microsoft 360 Controller driver to do this.
Always check for updated versions ^^
I packed them all in a .rar for you.. download it here
1. Make sure your controller is plugged in to a USB port and that you have all the listed software installed.
2. In Rejoice towards the right of the middle section click "Note On" then press and hold a button on your controller, there will be a value that shows up, and click "Add" Do this until you add all your buttons. There will be a list of all assigned buttons at the top.
In the middle in the "Midi Out" drop menu select "Out To MIDI YOKE: 1"
(I know its wrong in the picture, change it from your default)
Then at the bottom click "Route MIDI" and select "MIDI Yoke: 1"
3. Run Bome's Midi Translator Classic.
go to "Midi In" at the top and select "MIDI Yoke: 1" you will not need a Midi Out selected
4. Click the "[+]" in he middle that says "Add New Translator" when you hover over it.
Name it after the bottom you will press. Keep doing this until you have a list of all your buttons.
5. Right click a translation and click "edit" (or double click)
Then, click the check box that says "Capture MIDI" then hold down you botton for that translation the uncheck "Capture MIDI" then press apply, you must be holding the button when you uncheck the box
(Repeat process for all buttons)
7. How to Map MIDI controls in Ableton:
Press CTRL+M and click on what you want to map then press the button you want to map the press CTRL+M again and now that control is mapped