{"id":8576,"date":"2021-07-29T11:17:19","date_gmt":"2021-07-29T09:17:19","guid":{"rendered":"https:\/\/www.swub.de\/en\/?post_type=docs&#038;p=8576"},"modified":"2023-02-08T00:31:31","modified_gmt":"2023-02-07T23:31:31","password":"","slug":"keyswitch-expression-map_create-an-own-custom-control-script-for-instant-mapping","status":"publish","type":"docs","link":"https:\/\/www.swub.de\/en\/software\/support\/article\/keyswitch-expression-map_create-an-own-custom-control-script-for-instant-mapping\/","title":{"rendered":"Create an own custom control script for instant mapping"},"content":{"rendered":"\n<p>If your MIDI controller does not provide a native Control Surface Script (e.g. <a href=\"https:\/\/www.korg.com\/us\/products\/computergear\/nanokontrol2\/\" target=\"_blank\" rel=\"noreferrer noopener\">Korg nanoKONTROL2<\/a>), you can create an own script to control at least the <strong>eight dials<\/strong> of the <strong>custom bank<\/strong>. It might sound a bit like a nerdy task for a programmer or computer specialist, but actually it is very simple and you can even connect the pitch bend or modulation wheel of your keyboard in that way.<\/p>\n\n\n\n<p>Open the path of Ableton\u2019s preferences in the File Explorer or Finder (1) . You have to activate hidden items to see the folder \u201cAppData\u201d. Create a new folder (2) and give it for example the name myScript (3). Finally, copy the file UserConfiguration.txt in your new created folder (4). The name of the file needs to remain unchanged!!!<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img decoding=\"async\" src=\"https:\/\/www.swub.de\/wp-content\/uploads\/2021\/08\/KeySwitch-and-Expression-Map_Manual-and-User-Guide_Control-Surface-Script_Path_PresetFolder_User-Remote-Scripts_Create_New-Folder_MyScript_User-Configuration.png\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Mac:<\/strong> <em>HD:\/Users\/[Username]\/Library\/Preferences\/Ableton\/Live x.x.x\/User Remote Scripts<\/em><\/p>\n\n\n\n<p>Open the script with an editor. On windows for example <strong>Notepad<\/strong> or <strong>Textedit<\/strong> on a Mac. Alternatively, you can also install the open source software <strong><a href=\"https:\/\/notepad-plus-plus.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Notepad++<\/a><\/strong>.<\/p>\n\n\n\n<p>Let&#8217;s have a look to the script and edit <strong>three parts<\/strong> of it:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>You must define the <strong>MIDI channel<\/strong> on what your MIDI controller sends data.<\/li>\n\n\n\n<li>Type in the <strong>name<\/strong> of your controller. In the best case exactly how it is called in the preferences of Ableton.<\/li>\n\n\n\n<li>Scroll down and define the <strong>CC numbers<\/strong> of the dials (encoders) which you want to use.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img loading=\"lazy\" decoding=\"async\" width=\"667\" height=\"794\" src=\"https:\/\/www.swub.de\/wp-content\/uploads\/2021\/08\/KeySwitch-and-Expression-Map_Manual-and-User-Guide_Control-Surface-Script_User-Remote-Scripts_Create-Change-Edit_UserConfiguration_Korg-nanoKONTROL2_Example.png\" alt=\"\" class=\"wp-image-10570\" srcset=\"https:\/\/www.swub.de\/wp-content\/uploads\/2021\/08\/KeySwitch-and-Expression-Map_Manual-and-User-Guide_Control-Surface-Script_User-Remote-Scripts_Create-Change-Edit_UserConfiguration_Korg-nanoKONTROL2_Example.png 667w, https:\/\/www.swub.de\/wp-content\/uploads\/2021\/08\/KeySwitch-and-Expression-Map_Manual-and-User-Guide_Control-Surface-Script_User-Remote-Scripts_Create-Change-Edit_UserConfiguration_Korg-nanoKONTROL2_Example-252x300.png 252w\" sizes=\"auto, (max-width: 667px) 100vw, 667px\" \/><\/figure>\n\n\n\n<p>The quickest way to find out these information is probably to switch on the <strong>MIDI assignment<\/strong> in Ableton.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"608\" src=\"https:\/\/www.swub.de\/wp-content\/uploads\/2021\/08\/KeySwitch-and-Expression-Map_Manual-and-User-Guide_Control_Permanent_Mapping-Browser_MIDI-Map-Mode_Assignment_Ableton_MIDI-Controller_Dial-Button-1024x608.png\" alt=\"\" class=\"wp-image-10515\" srcset=\"https:\/\/www.swub.de\/wp-content\/uploads\/2021\/08\/KeySwitch-and-Expression-Map_Manual-and-User-Guide_Control_Permanent_Mapping-Browser_MIDI-Map-Mode_Assignment_Ableton_MIDI-Controller_Dial-Button-1024x608.png 1024w, https:\/\/www.swub.de\/wp-content\/uploads\/2021\/08\/KeySwitch-and-Expression-Map_Manual-and-User-Guide_Control_Permanent_Mapping-Browser_MIDI-Map-Mode_Assignment_Ableton_MIDI-Controller_Dial-Button-300x178.png 300w, https:\/\/www.swub.de\/wp-content\/uploads\/2021\/08\/KeySwitch-and-Expression-Map_Manual-and-User-Guide_Control_Permanent_Mapping-Browser_MIDI-Map-Mode_Assignment_Ableton_MIDI-Controller_Dial-Button-768x456.png 768w, https:\/\/www.swub.de\/wp-content\/uploads\/2021\/08\/KeySwitch-and-Expression-Map_Manual-and-User-Guide_Control_Permanent_Mapping-Browser_MIDI-Map-Mode_Assignment_Ableton_MIDI-Controller_Dial-Button.png 1454w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Activate the <strong>MIDI Map Mode<\/strong> by pressing the <em>MIDI button<\/em> in the upper right corner of Ableton Live\u2019s user interface.<\/li>\n\n\n\n<li>Then click for example on the <em>Expression<\/em> dial in the KeySwitch &amp; Expression Map and turn the dial on your MIDI controller to find out its CC number and channel.<\/li>\n\n\n\n<li>The <strong>Mapping Browser<\/strong> will show you now the information we need to know.<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n\n\n\n<p>In our example, you would write for the <strong>CC number<\/strong> <em>Encoder1: <strong>52<\/strong><\/em>, <em>Encoder2: <strong>51<\/strong><\/em> and so on.<\/p>\n\n\n\n<p>The <strong>channel<\/strong> is for all dials <strong>1<\/strong>. Hence, it is enough to write only a value for the <strong>global channel<\/strong>. The lines with the channels of the encoder you can ignore and let it on -1. Ableton will assume that the encoders have the same channel as the global channel.<\/p>\n\n\n\n<p><strong>Attention:<\/strong> There is one little trap you can run into: The script counts the MIDI channels from <strong>0-15<\/strong>, but the interface of Ableton displays them from <strong>1-16<\/strong>. Therefore, you have to reduce the number by <strong>minus 1<\/strong>.<\/p>\n\n\n\n<p>For this reason, we would write into the script G<em>lobalGhannel: <strong>0<\/strong><\/em><\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>After you have found out all necessary information, <strong>delete all mappings<\/strong> and press again on the <em>MIDI button<\/em> to <strong>leave<\/strong> the MIDI Map Mode.<\/li>\n<\/ol>\n\n\n\n<p><strong>Save<\/strong> the script and <strong>reopen<\/strong> Ableton. Choose in the <strong>preferences<\/strong> your script as Control Surface and your MIDI controller as input and output. Do not forget to activate the MIDI port for Track and Remote.<\/p>\n\n\n\n<p>Ready!<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img decoding=\"async\" src=\"https:\/\/www.swub.de\/wp-content\/uploads\/2021\/08\/KeySwitch-and-Expression-Map_Manual-and-User-Guide_Control-Surface-Script_User-Remote-Scripts_Ableton-Preferences_Link-MIDI_Korg-nanoKONTROL2_Example.png\" alt=\"\"\/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>If your MIDI controller is not natively supported as a control surface in Ableton&#8217;s settings, you can easily create a user remote script yourself. This way you can even use the mod wheel or other dials of your keyboard for instant mapping!  Here is a three-step tutorial on how to do it.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","pgc_sgb_lightbox_settings":"","footnotes":""},"doc_category":[368],"doc_tag":[423,496,603,509,578,506,584,610,389,507,525,583,426,607,541,542,471,572,465,523,579,580,585,512,372,405,385,430,518,508,609,608],"class_list":["post-8576","docs","type-docs","status-publish","hentry","doc_category-knowledge-tips","doc_tag-ableton-live","doc_tag-bank","doc_tag-continuous-controls","doc_tag-control-change","doc_tag-control-surface-script","doc_tag-custom-bank","doc_tag-dial","doc_tag-encoder","doc_tag-hardware","doc_tag-instant-mapping","doc_tag-keyboard","doc_tag-knob","doc_tag-knowledge-base","doc_tag-korg-nanokontrol","doc_tag-macro","doc_tag-map","doc_tag-midi-channel","doc_tag-midi-controller","doc_tag-midi-controls","doc_tag-midi-port","doc_tag-midi-remote-script","doc_tag-modulation-wheel-mod-wheel","doc_tag-pad","doc_tag-script-editor","doc_tag-set-up","doc_tag-settings","doc_tag-support","doc_tag-tips","doc_tag-tutorial","doc_tag-user-preset","doc_tag-user-remote-script","doc_tag-userconfiguration-txt"],"year_month":"2026-05","word_count":482,"total_views":"978","reactions":{"happy":"1","normal":"0","sad":"0"},"author_info":{"name":"swub","author_nicename":"swubhome","author_url":"https:\/\/www.swub.de\/en\/author\/swubhome\/"},"doc_category_info":[{"term_name":"Knowledge and Tips","term_url":"https:\/\/www.swub.de\/en\/software\/support\/category\/knowledge-tips\/"}],"doc_tag_info":[{"term_name":"Ableton Live","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/ableton-live\/"},{"term_name":"Bank","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/bank\/"},{"term_name":"Continuous Controls","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/continuous-controls\/"},{"term_name":"Control Change","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/control-change\/"},{"term_name":"Control Surface Script","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/control-surface-script\/"},{"term_name":"Custom Bank","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/custom-bank\/"},{"term_name":"Dial","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/dial\/"},{"term_name":"Encoder","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/encoder\/"},{"term_name":"Hardware","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/hardware\/"},{"term_name":"Instant Mapping","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/instant-mapping\/"},{"term_name":"Keyboard","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/keyboard\/"},{"term_name":"Knob","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/knob\/"},{"term_name":"Knowledge Base","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/knowledge-base\/"},{"term_name":"Korg nanoKONTROL","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/korg-nanokontrol\/"},{"term_name":"Macro","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/macro\/"},{"term_name":"Map","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/map\/"},{"term_name":"MIDI Channel","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/midi-channel\/"},{"term_name":"MIDI Controller","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/midi-controller\/"},{"term_name":"MIDI Controls","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/midi-controls\/"},{"term_name":"MIDI Port","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/midi-port\/"},{"term_name":"MIDI Remote Script","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/midi-remote-script\/"},{"term_name":"Modulation Wheel (Mod wheel)","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/modulation-wheel-mod-wheel\/"},{"term_name":"Pad","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/pad\/"},{"term_name":"Script Editor","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/script-editor\/"},{"term_name":"Set-Up","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/set-up\/"},{"term_name":"Settings","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/settings\/"},{"term_name":"Support","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/support\/"},{"term_name":"Tips","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/tips\/"},{"term_name":"Tutorial","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/tutorial\/"},{"term_name":"User Preset","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/user-preset\/"},{"term_name":"User Remote Script","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/user-remote-script\/"},{"term_name":"UserConfiguration.txt","term_url":"https:\/\/www.swub.de\/en\/software\/support\/tag\/userconfiguration-txt\/"}],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"betterdocs-category-thumb":false},"uagb_author_info":{"display_name":"swub","author_link":"https:\/\/www.swub.de\/en\/author\/swubhome\/"},"uagb_comment_info":0,"uagb_excerpt":"If your MIDI controller is not natively supported as a control surface in Ableton's settings, you can easily create a user remote script yourself. This way you can even use the mod wheel or other dials of your keyboard for instant mapping! Here is a three-step tutorial on how to do it.","knowledge_base_info":[],"knowledge_base_slug":[],"_links":{"self":[{"href":"https:\/\/www.swub.de\/en\/wp-json\/wp\/v2\/docs\/8576","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.swub.de\/en\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www.swub.de\/en\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.swub.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.swub.de\/en\/wp-json\/wp\/v2\/comments?post=8576"}],"version-history":[{"count":0,"href":"https:\/\/www.swub.de\/en\/wp-json\/wp\/v2\/docs\/8576\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.swub.de\/en\/wp-json\/wp\/v2\/media?parent=8576"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/www.swub.de\/en\/wp-json\/wp\/v2\/doc_category?post=8576"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www.swub.de\/en\/wp-json\/wp\/v2\/doc_tag?post=8576"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}