Skip to content

Latest commit

 

History

History
66 lines (50 loc) · 6.25 KB

README.md

File metadata and controls

66 lines (50 loc) · 6.25 KB

Ableton Live / Komplete Kontrol integration

This is a replacement for the Host Integration scripts for using the Komplete Kontrol S-series keyboards with Ableton Live 9.2+.

Do I need this? Yes, if you want to control Ableton track volume faders and device macro controls from your controller.

keyboards

Features

  • Adds automatic Ableton device encoder support. This means that when a device is focused (it has the blue hand icon), the 8 encoder knobs on the keyboard automatically map to the macro controls.

  • Adds fader support for Master and 7 more tracks. This allows easy track volume adjustment and mixing directly from your controller.

  • Changes the Loop button to instead activate Session Record. The transport controls are incomplete, and I decided easy activation of this setting was more important.

  • Adjusts the track selection algorithm. I found the way that the controller's arrow keys function to be too idiosyncratic and wanted to change it. The behavior is as follows:

    • Navigating left or right will select the currently selected/focused track if it's not already armed.
    • Navigating will select the next track in the chosen direction if the previous track was already armed.
    • ‎Navigating past the end of the list of tracks has no effect.
  • See Advanced Features below.

Installation

  • Download a copy of this repo from the Releases page. Choose a version ending with -patched.
  • ‎Close any running copies of Ableton Live.
  • Unpack the contents of the archive into your Ableton MIDI Remote Scripts folder, using the same location as in the documentation.
  • Using Controller Editor, create configuration pages for the encoder knobs:
    1. Devices - devices configuration screenshot
    2. Name=DEV1, Type=Control Change, Channel=1, Number=22, Mode=Absolute, RangeFrom=0, RangeTo=127, Display=Unipolar
    3. Name=DEV2, Type=Control Change, Channel=1, Number=23, Mode=Absolute, RangeFrom=0, RangeTo=127, Display=Unipolar
    4. Name=DEV3, Type=Control Change, Channel=1, Number=24, Mode=Absolute, RangeFrom=0, RangeTo=127, Display=Unipolar
    5. Name=DEV4, Type=Control Change, Channel=1, Number=25, Mode=Absolute, RangeFrom=0, RangeTo=127, Display=Unipolar
    6. Name=DEV5, Type=Control Change, Channel=1, Number=26, Mode=Absolute, RangeFrom=0, RangeTo=127, Display=Unipolar
    7. Name=DEV6, Type=Control Change, Channel=1, Number=27, Mode=Absolute, RangeFrom=0, RangeTo=127, Display=Unipolar
    8. Name=DEV7, Type=Control Change, Channel=1, Number=28, Mode=Absolute, RangeFrom=0, RangeTo=127, Display=Unipolar
    9. Name=DEV8, Type=Control Change, Channel=1, Number=29, Mode=Absolute, RangeFrom=0, RangeTo=127, Display=Unipolar
    10. Faders - faders configuration screenshot
    11. Name=MASTER, Type=Control Change, Channel=1, Number=30, Mode=Absolute, RangeFrom=0, RangeTo=127, Display=Unipolar
    12. Name=TRACK1, Type=Control Change, Channel=1, Number=31, Mode=Absolute, RangeFrom=0, RangeTo=127, Display=Unipolar
    13. Name=TRACK2, Type=Control Change, Channel=1, Number=32, Mode=Absolute, RangeFrom=0, RangeTo=127, Display=Unipolar
    14. Name=TRACK3, Type=Control Change, Channel=1, Number=33, Mode=Absolute, RangeFrom=0, RangeTo=127, Display=Unipolar
    15. Name=TRACK4, Type=Control Change, Channel=1, Number=34, Mode=Absolute, RangeFrom=0, RangeTo=127, Display=Unipolar
    16. Name=TRACK5, Type=Control Change, Channel=1, Number=35, Mode=Absolute, RangeFrom=0, RangeTo=127, Display=Unipolar
    17. Name=TRACK6, Type=Control Change, Channel=1, Number=36, Mode=Absolute, RangeFrom=0, RangeTo=127, Display=Unipolar
    18. Name=TRACK7, Type=Control Change, Channel=1, Number=37, Mode=Absolute, RangeFrom=0, RangeTo=127, Display=Unipolar
  • ‎Start Ableton Live
  • ‎In Preferences > MIDI, fill in 2 rows: one for the Komplete Kontrol DAW device (Komplete Kontrol Mk1 DAW), and one for the Komplete Kontrol MIDI keyboard input (Komplete Kontrol Mk1 MIDI). Assign the Komplete Kontrol DAW - 1 and KOMPLETE KONTROL S## (Port 1) inputs and outputs to these control surfaces, respectively.

screenshot showing Ableton MIDI configuration

Advanced Features

  • MIDI source track support. When arming a track, if it's name contains [M], this is a hint to also arm the "MIDI source" track (its label must contain [MIDISRC]). This is to allow using a Komplete Kontrol instance's Scale feature while actually playing an Ableton, or at least non-KK track. N.B.: MIDISRC should not have any sound output assigned to it. This is most efficiently accomplished by using a KK instance that loads an empty Reaktor instance, which won't consume much CPU.

Ableton controls will not be active when a KK instance is selected (use Shift+Instance on the controller to toggle).

Future Improvements/TODO

  • Figure out a way to hijack the righthand side controls (Browse, Instance, etc). These seem to be on a different controller and aren't communicating through Ableton's ControlSurface API.
  • ‎Is it possible to have the track selection arrow buttons work without first placing a KK instance on a track? That would be great.
  • Figure out a way to allow custom encoder CC values to be easily MIDI-mapped. Can this be done without more code?
  • Support for the Komplete Kontrol MK2. I don't have one, so I don't know what it's missing (if anything), but I'd be more than happy to reimplement this or something similar if I were sent one!
  • Suggestions and PRs welcome!

Questions?

Your question may already have been answered in the original announcement post. Otherwise feel free to DM me on Reddit for help.