{"id":38948537,"url":"https://github.com/raphaelquast/beatstep","last_synced_at":"2026-01-17T16:06:56.054Z","repository":{"id":50215174,"uuid":"315461709","full_name":"raphaelquast/beatstep","owner":"raphaelquast","description":" A Midi Remote Script for Ableton Live 10 \u0026 11 and the Arturia Beatstep controller","archived":false,"fork":false,"pushed_at":"2023-11-24T10:16:45.000Z","size":97429,"stargazers_count":40,"open_issues_count":10,"forks_count":11,"subscribers_count":5,"default_branch":"master","last_synced_at":"2023-11-24T11:26:27.281Z","etag":null,"topics":["ableton-live","beatstep","midi","midi-remote-script"],"latest_commit_sha":null,"homepage":"https://raphaelquast.github.io/beatstep/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raphaelquast.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-11-23T23:02:09.000Z","updated_at":"2023-11-24T10:04:05.000Z","dependencies_parsed_at":"2022-09-24T08:21:59.455Z","dependency_job_id":null,"html_url":"https://github.com/raphaelquast/beatstep","commit_stats":null,"previous_names":[],"tags_count":20,"template":null,"template_full_name":null,"purl":"pkg:github/raphaelquast/beatstep","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelquast%2Fbeatstep","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelquast%2Fbeatstep/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelquast%2Fbeatstep/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelquast%2Fbeatstep/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raphaelquast","download_url":"https://codeload.github.com/raphaelquast/beatstep/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raphaelquast%2Fbeatstep/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28511852,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T13:38:16.342Z","status":"ssl_error","status_checked_at":"2026-01-17T13:37:44.060Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ableton-live","beatstep","midi","midi-remote-script"],"created_at":"2026-01-17T16:06:53.658Z","updated_at":"2026-01-17T16:06:56.044Z","avatar_url":"https://github.com/raphaelquast.png","language":"Python","funding_links":["https://www.buymeacoffee.com/raphaelquast"],"categories":[],"sub_categories":[],"readme":"# Beatstep_Q\n**Beatstep_Q** is a **MIDI Remote Script** for **Ableton Live 9, 10 \u0026 11** and the **Arturia BeatStep** controller.  \nIt turns your BeatStep into a fully-fledged control-surface for Ableton Live !\n\n- there are 6 different layers that give you a lot of control over Ableton Live:  \n  - play midi instruments with access to the **full range** of midi-notes!\n  - browse Ableton's library (in the info-bar) and prelisten/load/hotswap instruments \u0026 devices\n  - control tracks/scenes and clips\n     - select / arm / mute / solo / start / stop / record / delete / duplicate / overdub / undo / redo / ...\n  - initialize and edit 16 note MIDI-sequences\n     - change properties of one or more notes simultaneously via the \"multi-touch\" editing mode\n  - get indications on the status of clips, tracks, playback-state and MIDI notes via button-LED's\n  - ... and much more!\n\n### Comments / suggestions / bugs?  \n\u003e Just drop an [Issue](https://github.com/raphaelquast/beatstep/issues) or start a [Discussion](https://github.com/raphaelquast/beatstep/discussions) and I'll see what I can do!  \n  \n\n... and as you might imagine...  \ndeveloping and maintaining all of this is quite some work, so if you like what I did, how about buying me a coffee?   \n\n\u003ccenter\u003e\n\u003ca href=\"https://www.buymeacoffee.com/raphaelquast\" target=\"_blank\"\u003e\u003cimg src=\"https://www.buymeacoffee.com/assets/img/custom_images/yellow_img.png\" alt=\"Buy Me A Coffee\" style=\"height: 41px !important;width: 174px !important;\" \u003e\u003c/a\u003e\n\u003c/center\u003e\n\n# Installation\n\nNo real installation required... just copy the files, and you are ready to go!\n\n1) copy all files of the latest [release](https://github.com/raphaelquast/beatstep/releases) into a folder named **\"Beatstep_Q\"**   \n   inside the MIDI Remote scripts folder of Ableton Live   \n   (located at `..install-dir..\\Resources\\MIDI Remote Scripts`) \n2) start Ableton and select **Beatstep_Q** as control-surface in the MIDI-tab of the preferences.  \n   (make sure to activate both `track` and `remote` for this device!)\n\n❗BeatStep's **storage bank 9** is used during runtime. Any configuration stored to this slot will be overwritten❗ \n\n# Overlay\nThe overlay-design provides indications for all assignments (including secondary-functions)  \n\u003csup\u003e\n(I got mine printed here: [Taktility](https://www.taktility.com/))\n\u003c/sup\u003e\n\n\u003ctable\u003e\u003ctr\u003e\n\u003ctd align=\"center\" width=54%\u003e\n  \u003cimg src=/BeatStep_Q_Overlay.png/\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\" width=46%\u003e\n  \u003cimg src=https://github.com/raphaelquast/beatstep/assets/22773387/829309ee-d57e-437b-81fe-b00c239b7fa0 /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n\n# Summary of Assignments\n\n![assignments-image](/assignment_01.png)\n\n---\n\n# More detailed explanations on the assignments:\n\nThe 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).\n\n- It's best to **connect the controller after Ableton started** to ensure that all settings are properly assigned.\n\n- 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\"*)\n\n\u003e After initialization, you can recall any saved MIDI configuration and the control-layers will still work!\n\n\n\n\n\n\n## General (click to expand)\n\n\u003cdetails\u003e\u003csummary\u003e:black_square_button: \u003cstrong\u003eBUTTONS\u003c/strong\u003e\u003c/summary\u003e\n\nThe buttons `recall`, `store`,`chan` and `shift` are used to activate the control-layers.\n\n- to maintain the initial functionality of the buttons, the layers are activated when the buttons are **released** !\n\n- all layers (except the *\"shift-layer\"*) remain activated until the corresponding button is pressed again\n\n- holding `shift` and pressing `chan` will activate the *\"mix-layer\"* \n- holding `shift` and pressing `recall` will activate the *\"browser-layer\"* \n\n- **double-tapping** `shift` will activate the *\"shift-layer\"* permanently (until shift is pressed again) \n\n- the *\"if shift pressed\"* features are only available if the corresponding layer is activated permanently **and** `shift` is pressed\n\nThe `stop` button works the same (on all layers) as follows:\n\n- if the selected clip is currently recording: only recording is stopped (but playback is continued)\n\n- if the selected clip is playing: stop is triggered\n\n- *\"if shift pressed\"* : stop **ALL** tracks\n\n\u003e While no layer is active, all buttons can be used to play midi-notes!  \n\u003e (\u003e\u003e use the `transpose-encoder` to change the assigned range of midi-notes)\n\n\n\u003c/details\u003e\n\n\n---\n\n\u003cdetails\u003e\u003csummary\u003e:white_circle: \u003cstrong\u003eENCODERS\u003c/strong\u003e\u003c/summary\u003e  \n\nThe `transpose-encoder` can be used to transpose the note-assignments of the buttons.  \n(a red button-color indicates that the lower-left button is at the note C-2, C-1, C0, C1, etc.)\n\u003e The info-message also tells you the current assignment of the lower-left button (e.g. `button 9`)\n\n- `encoder 1-4` and `9-12` : control the first 8 parameters of the selected device\n\n- `encoder 5, 6, 13, 14` : send A, B, C, D of selected track\n\n- `encoder 7` : volume of selected track\n  \n  - *\"if shift pressed\"*: volume of master-track\n\n- `encoder 15` : pan of selected track\n  \n  - *\"if shift pressed\"*: pan of master-track\n\n- `encoder 8` : track-selection (left-right) [💡 this is the same for all layers!]\n  \n  - *\"if shift pressed\"* **and** a *\"drum-rack\"* is selected:\n\n    select drum-pad slot of the viewed 16 slots\n\n- `encoder 16` : scene selection (up-down) [💡 this is the same for all layers!]\n  - *\"if shift pressed\"* **and** a *\"drum-rack\"* is selected:\n\n    select row of viewed drum-pads\n\n\u003c/details\u003e\n\n--- \t\n\n## Layers (click to expand)\n\n\n\u003cdetails\u003e\n\u003csummary\u003e:trumpet: \u003cstrong\u003eSHIFT\u003c/strong\u003e\u003c/summary\u003e  \n\nIf NO other layer is activated, pressing \"shift\" temporarily activates the `shift` layer \nIt serves as a *quick-access* layer for frequently used functions.  \nThe layer is deactivated as soon as `shift` is released!   \n**double-tap** `shift` to activate the layer permanently.\n\n\nThe lights in the first indicate the currently activated clip.\n(`red` for midi, `blue` for audio and `magenta` for return tracks)\n\nThe lights in the second row indicate the track-arm status:\n\n- `red` if the track is **armed** and **not muted**\n  \n  - `magenta` if the track is armed but muted\n\n- `blue` if the track represents a **track-group**\n\n- `off` if the track is muted and **not** armed\n\n\n#### The assignments are as follows:\n\n- `button 1-7`: select track 1-7 of the currently focussed slots (red box)\n  \n  - double tap an already selected track to arm/unarm it\n    - if the selected track is a track-group, instead fold/unfold the group\n\n- `button 8`: select previous scene (e.g. go 1 scene up)\n  \n  - if the control-layer is activated permanently, holding `shift` will switch to track-selection\n\n- `button 9` : undo last step\n\n- `button 10`: delete selected clip\n\n- `button 12`: duplicate the currently selected clip and set the focus to the duplicate\n\n- `button 13`: duplicate the currently selected loop\n\n- `button 15`: start recording\n  \n  - if the currently selected slot is empty, start recording a new clip\n  \n  - if a clip is already present, toggle overdubbing the clip\n\n- `button 16` : select next scene (if at the end, create a new scene)\n  \n  - if the control-layer is activated permanently, holding `shift` will switch to track-selection\n\nAll 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!)\n\n\u003c/details\u003e\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e:open_file_folder: \u003cstrong\u003eBROWSE\u003c/strong\u003e\u003c/summary\u003e  \nThe browser works ONLY in the info-bar... it is not connected to Ableton's browser-window!\n(I know this would be nice... but the Ableton python-API does not allow it)\nThe status-bar symbols indicate the following:\n\n- :red_circle: : the selected item can be loaded\n- :fire: ... :fire: : hotswap is active\n- :arrows_counterclockwise: : the item can be hotswapped\n- :black_circle: : the item can not be loaded directly (it's a collection of sub-items)\n- :file_folder: : the item is a folder (and can not be loaded directly)\n- :small_blue_diamond: a loadable item that is not selected\n\nMost button-lights are simply there to help remember the button-assignments.\n- `button 13` indicates if **hotswap** is on or off (`red` for on)\n- `button 14` indicates if **prelisten** is on or off (`blue` for on)\n\n#### The assignments are as follows:\n\n- `button 1` : open **sounds**\n- `button 2` : open **drums**\n- `button 3` : open **instruments**\n- `button 4` : open **audio-effects**\n- `button 5` : open **MIDI-effects**\n- `button 6` : open **samples**\n- `button 7` : open **collections**\n- `button 8` : select previous track\n   - \"if shift pressed\" : select previous device\n\n- `button 9` : go 1 item left\n- `button 10` : go 1 item right\n- `button 11` : go 1 folder-level down (if possible)\n- `button 12` : go 1 folder-level up (if possible)\n- `button 13` : toggle hotswapping the currently selected instrument/device\n- `button 14` : toggle item-preview\n- `button 15` : load the selected item (on the currently selected track if possible)\n   - \"if shift pressed\" : load the selected item on a new track\n- `button 16` : select next track\n   - \"if shift pressed\" : select next device\n\n\nAll encoders are assigned similar to the *\"shift-layer\"*.\n\n\n\u003c/details\u003e\n\n--- \n\n\u003cdetails\u003e\n\u003csummary\u003e:violin: \u003cstrong\u003eCONTROL\u003c/strong\u003e\u003c/summary\u003e  \n\nMost lights are simply there to help remember the button-assignments.\nThe lights of `button 13` and `button 14` indicate the status of their corresponding parameter in Live.\n\n- `button 13` indicates the status of the metronome (`red` for on)\n- `button 14` indicates the status of \"automation arm\" (`red` for active)\n   - \"if shift pressed\" and an automation has been overridden, the button will turn `blue`\n\n- `button 3`, `10` and `11` will turn red if shift is pressed to highlight the alternative functionality\n\n#### The assignments are as follows:\n\n- `button 1` : redo last step\n\n- `button 2` : fold / unfold selected device\n\n- `button 3` : activate / deactivate selected device\n  \n  - *\"if shift pressed\"* : delete selected device\n\n- `button 6` : cycle through the *\"launch-quantization\"* times (e.g. 1 bar, 1/2 bar, 1/8 bar etc.)\n  \n  - *\"if shift pressed\"* : turn *\"launch-quantization\"* off\n\n- `button 7` : toggle between showing the selected *\"clip-details\"* or the *\"device-chain\"* of the selected track\n  \n  - *\"if shift pressed\"* : toggle between Ableton's session-view and arrangement-view\n\n- `button 8` : select previous scene (e.g. go 1 scene up)\n\n- - *\"if shift pressed\"* : select previous track\n\n- `button 9` : undo last step\n\n- `button 10` : duplicate selected track\n  \n  - \"if shift pressed\" : delete selected track\n\n- `button 11` : duplicate selected scene\n  \n  - *\"if shift pressed\"* : delete selected scene\n\n- `button 12` : tap tempo\n\n- `button 13` : toggle metronome\n\n- `button 14` : toggle *\"session automation record\"*\n  \n  - *\"if shift-pressed\"* and an automation has been overridden: *\"re-enable automation\"*\n\n- `button 15` : change the assigned \"pad velocity curve\" (e.g. the midi velocity response of the pad)\n  \n  - `blue` for linear, `magenta` for logarithmic, `red` for exponential and `off` for \"always max. velocity\"\n\n- `button 16` : select next scene (if at the end, create a new scene)\n  \n  - *\"if shift-pressed\"*: select next track\n\nAll encoders are assigned similar to the *\"shift-layer\"*.\n\n\u003c/details\u003e\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e:guitar: \u003cstrong\u003eLAUNCH\u003c/strong\u003e\u003c/summary\u003e  \n\nIn this control-layer, both button-rows (e.g. `1-7` and `9-15`) represent clip-slots.  \nNOTICE: the `stop` button has a special feature in this layer (see below).\n\nThere are 2 possible ways to activate this layer:\n\n- tap `store` to control **2 clip-slots of 7 tracks**\n   - only the `store` button LED will be on\n- tap `shift + store` to control **14 clip-slots of 1 track**\n   - the LED's of `store`, `chan` and `recall` will be on\n\nThe button-lights indicate the status of the clip-slots, e.g.:\n\n- `blue` indicates a slot with a clip\n  - a `blue blinking` slot indicates a clip that is triggered to **stop**\n\n- `red` indicates a clip that is playing\n  - a `red blinking` slot indicates a clip that is triggered to **play**\n\n- `magenta` indicates a group-track (it will turn `red` if a clip of the group is playing) [or indicate a triggered clip in `shift + store` mode]\n\n- the `shift` button indicates if *\"re-trigger clips\"* or *\"stop clips\"* mode is active\n\n#### The assignments are as follows:\n\n- the `stop-button` toggles the behavior of the buttons (indicated by the `shift` button LED)\n  \n  - *\"re-trigger clips\"* mode (`shift` LED OFF) : tapping on an already playing clip will **re-trigger** the clip\n  \n  - *\"stop clips\"* mode (`shift` LED ON) : tapping on an already playing clip will **stop** the clip\n  \n  (... the *\"if shift-pressed\"* behavior is still similar to the other layers, e.g. *\"stop all clips\"*)\n\n- `button 1-7` : launch the clips present in the top-row of the selection.\n  \n  - *\"if shift-pressed\"* : select the track to which the clip-slot belongs to\n    - if the slot is a \"group-slot\": fold/unfold the corresponding group\n\n- `button 8` : select previous scene (e.g. go 1 scene up)\n \n  - *\"if shift-pressed\"*: select previous track\n\n- `button 9-15` : same as `1-7` but for the bottom row of the selection.\n\n- `button 16` : select next scene (if at the end, add a new scene)\n  \n  - *\"if shift-pressed\"*: select next track\n\nAll encoders are assigned similar to the *\"shift-layer\"*.\n\n\u003c/details\u003e\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e:headphones: \u003cstrong\u003eMIX\u003c/strong\u003e\u003c/summary\u003e  \n\nThe lights in the top-row indicate the mute / solo status of the corresponding track.\n\n- `blue` for a track that is set to solo\n\n- `magenta` for an unmuted track\n\n- `red` if the track is both solo and muted\n\n- `off` if the track is muted and not solo\n\nThe lights in the bottom-row indicate the arm status of the corresponding track.\n\n- `red` if the track is armed\n\n- `blue` if the track represents a track-group\n\n- `off` if the track is unarmed (and no track-group)\n\n#### The assignments are as follows:\n\n- `button 1-7` : set the **mute** status of the first 6 tracks in the red box\n  \n  - *\"if shift pressed\"*: **solo** the corresponding track\n\n- `button 9-15` : set the **arm** status of the first 7 tracks in the red box\n  \n  - if the track represents a group, fold / unfold the corresponding group\n\n- `button 8` : select previous scene (e.g. go 1 scene up)\n  \n  - *\"if shift pressed\"*: select previous track\n\n- `button 16` : select next scene (if at the end, create a new scene)\n  \n  - \"if shift pressed\" : select next track\n\n- `encoder 1-7` : *\"track volume\"* of corresponding track\n  \n  - *\"if shift pressed\"* : *\"send A\"* of corresponding track\n\n- `encoder 9-15` : *\"track pan\"* of corresponding track\n  \n  - *\"if shift pressed\"* : *\"send B\"* of corresponding track\n\n- `encoder 8` : track-selection (left-right)\n\n- `encoder 16` : scene selection (up-down)\n\n- `transpose encoder` : set volume of master-track\n\n\u003c/details\u003e\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e:musical_score: \u003cstrong\u003eSEQUENCER\u003c/strong\u003e\u003c/summary\u003e  \n\nThe `sequencer`-layer is only available in **Ableton 11** or newer!  \n\nThe `sequencer` layer has 2 different functionalities:\n\n- If `shift` is pressed, you can use all button-functions from the `shift`-layer!\n\n\nNOTE: The first 6 characters of a clip-name are used to parse the tempo of the midi sequence!  \n\u003e E.g. a clip-name starting with `1/32_Q` will be identified as having a tempo of 1/32.  \n\u003e Any characters after the first 6 are ignored. (e.g. a name of `1/32_Q what a nice clip` is fine!)\n\n\n\u003cdetails\u003e\n\u003csummary\u003e:ant: \u003cstrong\u003eSEQUENCE EDITOR\u003c/strong\u003e (active if a MIDI clip is selected)\u003c/summary\u003e  \n\nIn the sequence-editor mode you can edit the first 16 notes of the selected MIDI clip.\n\n- the colors of `buttons 1-16` are\n  - `black` if there is no note or the note is muted\n  - `blue` if there is a note, and it is unmuted\n  - `magenta` if the note is unmuted and outside the loop\n    - it also indicates if less than 16 notes are present\n  - a moving `red` light indicates the playback-state of the clip\n\n- check the Ableton info-bar for info-messages!\n\n#### The assignments are as follows:\n\n- multi-touch editing mode:\n   - touch \u0026 hold one (or more) buttons and turn the `transpose`-encoder to change the assigned property of the selected notes\n   - use `encoder 1-6` to set which property you want to change\n\n- `button 1-16` : mute/unmute corresponding note\n- `shift` + `button 1-16` : use functionality of `shift`-layer\n\n- `encoder 1` : set encoders to change **note pitch**\n- `encoder 2` : set encoders to change **note velocity**\n- `encoder 3` : set encoders to change **note start-time**\n- `encoder 4` : set encoders to change **note duration**\n- `encoder 5` : set encoders to change **note velocity-deviation**\n- `encoder 6` : set encoders to change **note probability**\n\n- `encoder 8` : select prev/next track\n\n- `encoder 9` : change the loop start-time (coarse steps)\n- `encoder 10` : change the loop start-time (fine steps)\n- `encoder 11` : change the position of the loop (fine steps)\n- `encoder 12` : change the loop end-time (fine steps)\n- `encoder 13` : change the loop end-time (coarse steps)\n\n- `encoder 15` : transpose all notes that are inside the loop\n- `encoder 16` : select prev/next scene\n\n- `shift` + `encoder 1-16` : change assigned parameter of corresponding note\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003e:hatching_chick: \u003cstrong\u003eSEQUENCE INITIALIZER\u003c/strong\u003e (active if the selected clip-slot is empty)\u003c/summary\u003e  \n\nIn the sequence-initializer layer you can set the start-parameters for the midi-sequence  \nthat is initialized if you press `chan` again.\n\n- `buttons` 1-8 indicates the tempo of the MIDI notes as \"notes/bar\"\n  [1/32, 1/16, 1/8, 1/4, 1/2, 1, 2, 4]\n\n- `buttons` 9, 10, 11, 12 indicate how the note-interval is filled\n  - NOTE you can also use this to offset the notes!\n- `buttons`13, 14, 15, 16 indicate the velocity of the notes (0.25, 0.5, 0.75, 1)\n\n- check the Ableton info-bar for info-messages!\n\n#### The assignments are as follows:\n\n- `buttons` 1-8: set sequence-tempo\n- `buttons` 9, 10, 11, 12 : set note-interval\n- `buttons`13, 14, 15, 16 : set velocity\n- **double-tap** `shift` : initialize a 16 note midi sequence with the selected parameters\n\n- `transpose-encoder` : set the note-pitch for the initialized sequence\n\n- `encoder 1` : set encoders to change **note pitch**\n- `encoder 2` : set encoders to change **note velocity**\n- `encoder 3` : set encoders to change **note start-time**\n- `encoder 4` : set encoders to change **note duration**\n- `encoder 5` : set encoders to change **note velocity-deviation**\n- `encoder 6` : set encoders to change **note probability**\n\n- `encoder 8` : select prev/next track\n\n- `encoder 9` : set pitch increment of notes\n- `encoder 10` : set number of incremented notes\n\n- `encoder 15` : transpose all notes that are inside the loop\n- `encoder 16` : select prev/next scene\n\n\u003c/details\u003e\n\n\n\u003c/details\u003e\n---  \n\n## Thanks to\n\n- [untergeek](https://www.untergeek.de/2014/11/taming-arturias-beatstep-sysex-codes-for-programming-via-ipad/) for unravelling BeatStep sysex messages\n\n- Julien Bayle for the awesome [PythonLiveAPI_documentation](https://julienbayle.studio/PythonLiveAPI_documentation/) and some more info's ( [here](https://julienbayle.studio/ableton-live-midi-remote-scripts/) )\n\n- Hanz Petrov for his [Introduction to the Framework-classes](https://livecontrol.q3f.org/ableton-liveapi/articles/introduction-to-the-framework-classes/) and the corresponding [remotescripts-blog](http://remotescripts.blogspot.com)\n\n---\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraphaelquast%2Fbeatstep","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraphaelquast%2Fbeatstep","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraphaelquast%2Fbeatstep/lists"}