SkillAgentSearch skills...

Beatstep

A Midi Remote Script for Ableton Live 10 & 11 and the Arturia Beatstep controller

Install / Use

/learn @raphaelquast/Beatstep
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Beatstep_Q

Beatstep_Q is a MIDI Remote Script for Ableton Live 9, 10 & 11 and the Arturia BeatStep controller.
It turns your BeatStep into a fully-fledged control-surface for Ableton Live !

  • there are 6 different layers that give you a lot of control over Ableton Live:
    • play midi instruments with access to the full range of midi-notes!
    • browse Ableton's library (in the info-bar) and prelisten/load/hotswap instruments & devices
    • control tracks/scenes and clips
      • select / arm / mute / solo / start / stop / record / delete / duplicate / overdub / undo / redo / ...
    • initialize and edit 16 note MIDI-sequences
      • change properties of one or more notes simultaneously via the "multi-touch" editing mode
    • get indications on the status of clips, tracks, playback-state and MIDI notes via button-LED's
    • ... and much more!

Comments / suggestions / bugs?

Just drop an Issue or start a Discussion and I'll see what I can do!

... and as you might imagine...
developing and maintaining all of this is quite some work, so if you like what I did, how about buying me a coffee?

<center> <a href="https://www.buymeacoffee.com/raphaelquast" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/yellow_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;" ></a> </center>

Installation

No real installation required... just copy the files, and you are ready to go!

  1. copy all files of the latest release into a folder named "Beatstep_Q"
    inside the MIDI Remote scripts folder of Ableton Live
    (located at ..install-dir..\Resources\MIDI Remote Scripts)
  2. start Ableton and select Beatstep_Q as control-surface in the MIDI-tab of the preferences.
    (make sure to activate both track and remote for this device!)

❗BeatStep's storage bank 9 is used during runtime. Any configuration stored to this slot will be overwritten❗

Overlay

The overlay-design provides indications for all assignments (including secondary-functions)
<sup> (I got mine printed here: Taktility) </sup>

<table><tr> <td align="center" width=54%> <img src=/BeatStep_Q_Overlay.png/> </td> <td align="center" width=46%> <img src=https://github.com/raphaelquast/beatstep/assets/22773387/829309ee-d57e-437b-81fe-b00c239b7fa0 /> </td> </tr> </table>

Summary of Assignments

assignments-image


More detailed explanations on the assignments:

The script will set all encoders and buttons to send messages on the Midi-channel 10. To indicate a successful setup, the top-row will light up red and blue (about 2 seconds after plugin).

  • It's best to connect the controller after Ableton started to ensure that all settings are properly assigned.

  • To ensure that the script is automatically selected (instead of the default script), rename the already existing "Beatstep" folder to "_Beatstep" (or something that it is alphabetically sorted after "BeatStep_Q")

After initialization, you can recall any saved MIDI configuration and the control-layers will still work!

General (click to expand)

<details><summary>:black_square_button: <strong>BUTTONS</strong></summary>

The buttons recall, store,chan and shift are used to activate the control-layers.

  • to maintain the initial functionality of the buttons, the layers are activated when the buttons are released !

  • all layers (except the "shift-layer") remain activated until the corresponding button is pressed again

  • holding shift and pressing chan will activate the "mix-layer"

  • holding shift and pressing recall will activate the "browser-layer"

  • double-tapping shift will activate the "shift-layer" permanently (until shift is pressed again)

  • the "if shift pressed" features are only available if the corresponding layer is activated permanently and shift is pressed

The stop button works the same (on all layers) as follows:

  • if the selected clip is currently recording: only recording is stopped (but playback is continued)

  • if the selected clip is playing: stop is triggered

  • "if shift pressed" : stop ALL tracks

While no layer is active, all buttons can be used to play midi-notes!
(>> use the transpose-encoder to change the assigned range of midi-notes)

</details>
<details><summary>:white_circle: <strong>ENCODERS</strong></summary>

The transpose-encoder can be used to transpose the note-assignments of the buttons.
(a red button-color indicates that the lower-left button is at the note C-2, C-1, C0, C1, etc.)

The info-message also tells you the current assignment of the lower-left button (e.g. button 9)

  • encoder 1-4 and 9-12 : control the first 8 parameters of the selected device

  • encoder 5, 6, 13, 14 : send A, B, C, D of selected track

  • encoder 7 : volume of selected track

    • "if shift pressed": volume of master-track
  • encoder 15 : pan of selected track

    • "if shift pressed": pan of master-track
  • encoder 8 : track-selection (left-right) [💡 this is the same for all layers!]

    • "if shift pressed" and a "drum-rack" is selected:

      select drum-pad slot of the viewed 16 slots

  • encoder 16 : scene selection (up-down) [💡 this is the same for all layers!]

    • "if shift pressed" and a "drum-rack" is selected:

      select row of viewed drum-pads

</details>

Layers (click to expand)

<details> <summary>:trumpet: <strong>SHIFT</strong></summary>

If NO other layer is activated, pressing "shift" temporarily activates the shift layer It serves as a quick-access layer for frequently used functions.
The layer is deactivated as soon as shift is released!
double-tap shift to activate the layer permanently.

The lights in the first indicate the currently activated clip. (red for midi, blue for audio and magenta for return tracks)

The lights in the second row indicate the track-arm status:

  • red if the track is armed and not muted

    • magenta if the track is armed but muted
  • blue if the track represents a track-group

  • off if the track is muted and not armed

The assignments are as follows:

  • button 1-7: select track 1-7 of the currently focussed slots (red box)

    • double tap an already selected track to arm/unarm it
      • if the selected track is a track-group, instead fold/unfold the group
  • button 8: select previous scene (e.g. go 1 scene up)

    • if the control-layer is activated permanently, holding shift will switch to track-selection
  • button 9 : undo last step

  • button 10: delete selected clip

  • button 12: duplicate the currently selected clip and set the focus to the duplicate

  • button 13: duplicate the currently selected loop

  • button 15: start recording

    • if the currently selected slot is empty, start recording a new clip

    • if a clip is already present, toggle overdubbing the clip

  • button 16 : select next scene (if at the end, create a new scene)

    • if the control-layer is activated permanently, holding shift will switch to track-selection

All encoders are assigned as described above except for the transpose-encoder, which is now used to select devices in the device-chain of the selected track. (turning the transpose-encoder will automatically focus the view to the device-chain!)

</details>
<details> <summary>:open_file_folder: <strong>BROWSE</strong></summary> The browser works ONLY in the info-bar... it is not connected to Ableton's browser-window! (I know this would be nice... but the Ableton python-API does not allow it) The status-bar symbols indicate the following:
  • :red_circle: : the selected item can be loaded
  • :fire: ... :fire: : hotswap is active
  • :arrows_counterclockwise: : the item can be hotswapped
  • :black_circle: : the item can not be loaded directly (it's a collection of sub-items)
  • :file_folder: : the item is a folder (and can not be loaded directly)
  • :small_blue_diamond: a loadable item that is not selected

Most button-lights are simply there to help remember the button-assignments.

  • button 13 indicates if hotswap is on or off (red for on)
  • button 14 indicates if prelisten is on or off (blue for on)

The assignments are as follows:

  • button 1 : open sounds

  • button 2 : open drums

  • button 3 : open instruments

  • button 4 : open audio-effects

  • button 5 : open MIDI-effects

  • button 6 : open samples

  • button 7 : open collections

  • button 8 : select previous track

    • "if shift pressed" : select previous device
  • button 9 : go 1 item left

  • button 10 : go 1 item right

  • button 11 : go 1 folder-level down (if possible)

  • button 12 : go 1 folder-level up (if possible)

  • button 13 : toggle hotswapping the currently selected instrument/device

  • button 14 : toggle item-preview

  • button 15 : load the selected item (on the currently selected track if possible)

    • "if shift pressed" : load the selected item on a new track
  • button 16 : select next track

    • "if shift pressed" : select next device

All encoders are assigned similar to the "shift-layer".

</details>
<details> <summary>:violin: <strong>CONTROL</strong></summary>

Most lights are simply there to help remember the button-assignments. The lights of button 13 and button 14 indicate the status of their corresponding parameter in Live.

  • button 13 indicates the status of the metronome (red for on)

  • button 14 indicates the status of "automation arm" (red for active)

    • "if shift pressed" and an automation has been overridden, the button will turn blue
  • button 3, 10

Related Skills

View on GitHub
GitHub Stars56
CategoryDevelopment
Updated2mo ago
Forks13

Languages

Python

Security Score

100/100

Audited on Jan 25, 2026

No findings