If Editing in Windows, Do Not Use Wordpad. It will add a lot of Rich Text formatting to the file, which the Python interpreter will not appreciate!!! Use Notepad instead.
@@frankzbruckmann5019 Ok, I'm sorry, still not sure I understand you here. Your name sounds German, perhaps we can switch to that language? If that wasn't the case, I apologize for the assumption
Thank you! This worked right away for me after spending a good portion of my day trying to troubleshoot other options including the old (Python 2) version of this. Custom midi controller here we come!
Hi, not sure if anyone commented already but on pc the custom scripts go to drive :\ProgramData\Ableton(version)\Resources\MIDI Remote Scripts.Hope that helps.
Hi, thanks a lot for your video, it helped me a lot ! I'm right now writing a MIDI script for my AKAI APC mini mk2. Do you know if it is possible to have a LED feedback with the grid on session mode ?... It works, but it would be a lot more useful with light feedback 😅Thanks again :)
Hey my pleasure! That depends on the manufacturer I'm afraid. In my case, the iRig Pads accepts MIDI CC to trigger the backlights on the pads, so I can make them pulse rhythmically with the grid by just setting aside a track with the right MIDI patterns and setting the iRig Pads as its output. Don't know about the AKAI though. You might have to check the manual, if that feature is available, it's gonna be mentioned there for sure!
Thank you so much, I was looking for such a thing for so long. One advice for people who want to control more than 8 tracks(it is a limitation). You can create the same string with appended 2 at the end. For example mine is MiSW_XVI and MiSW_XVI2. And put the midi information for other 8 channel in the second script. And you can add the same device for two control surface scripts in the ableton settings. This way you can control 16 tracks at the same time.
@@TheNeonSyndicate I have tried writing control surface scripts without any success for so long. Even though I am experienced python developer, it was bugging me whole time. I still couldn't create the perfect apc40 script, but at least you showed us the way to make every midi controller useful.
@@homunduruk2530 Credit where credit's due: I didn't come up with any of this, the guy I reference at the beginning of the video did. I just put his knowledge to use in a practical real world example
thank you so much for your great video! I'm struggling with how to know specific numbers or cc# of my midi controller. I'm using iRig Keys IO. I have no idea what kind of numbers or letter things in MIDI_map.py file...
My pleasure. First you should check the manual, it shout be in there somewhere. If not, just create a MIDI track, start recording and move one of your sliders/knobs. Stop recording and double click on that new MIDI clip. In the "Envelopes Tab" select "MIDI Ctrl" on the left and click on the right drop-down menu you'll see a small light blue dot next to the CC you just recorded.
hey man - great Video, thanks for keeping the scripts alive! I saw a bunch of comments regarding naming of the files causing errors - kinda the same case here, but with additional spice on top Ableton is showing me two different names for my MIDI In and Out ports of my controller (Traktor Kontrol F1) - its 'Traktor Kontrol F1 - 1 Input' and 'Traktor Kontrol F1 - 1 Output' (without the ') - could you think of which one to choose here? tried already a bunch of combinations, can't get it to be shown in the dropdown for control surfaces. If you have a hint, glad to receive it :) Thank you!
Yeah, you're right, the naming part seems to be a little more tricky than I could imagine. Meantime, I've stopped using Live so I can't even just quickly open its preferences pane and see if the "real" name is hidden somewhere there. I'm afraid trying some more combinations is the only way to go! Otherwise, you could try and reach out to the guy who had originally shared this method - I'm linking to his GitHub in the description. Anyway, good luck!
Hey, thanks for doing this video! I have an iRigs Pads as well. When you show the feedback on the iRig Pads when muting tracks how exactly are you doing this? I've tried to do this by setting the pads to toggle, but this doesn't work right. I'm guessing you're sending MIDI back to the iRig Pads somehow so the pad will be red when the track is muted. Is that right?
Well spotted! Yes, I have a MIDI clip in Live sending CCs to the iRig Pads - different CCs trigger different colors on different pads. You can even write in automation curves - say a rising ramp, which will make it so that your pad lights up progressively. What pad reacts to what CC is in the manual!
@@TerenceD9 My pleasure! Yeah, this is a great little toy, I love that you can use it as a basic control surface and for finger drumming! Lately I've been experimenting with assigning the pads to notes chromatically and using it as an alternative keyboard - that can also be a interesting idea to play around with
Thanks! You don't set controls for any specific device with this: you control whatever device is currently selected, be it an instrument rack, a drum rack, a reverb, what have you. That's the beauty of it!
@@TheNeonSyndicate I guess then what I am not super clear on is what parameter needs to be edited in the midi map Python file that connects to a device knob. In the video you show it on the device but not sure if I caught you covering that in the code walk through.
can you change the messagetype for only a few parameters instead of the entire section? i want to map some buttons to buttons on my controller, the problem is the buttons don't emit note values, they emit CC signals and not all of the buttons do that. EDIT: solved it. used MIDI OX and LoopBe1 to change the signals emitted and it works.
Not possible I'm afraid. You could either change what the buttons send directly from your hardware if it allows remapping, otherwise your best bet is a MIDI conversion tool like MidiPipe for Mac or Bohme for Windows.
Hi, great Video. Unfortunately Ableton doesnt detect the folder. I am thinking i have some issues with the name of my controller. Its the XONE:K2 and the (:) cant be written in filenames so i changed it to an underscore. Not inside the code only the two filenames. But still ableton doesnt detect the folder... any ideas?
Right, there have been a couple similar comments, I think I remember those people managed to get it to work, but I don't remember how. Maybe just using a space instead of an underscore? Something like that.
I'm running into a Problem with my E-MU Xboard controller. Ableton recognizes it as 'E-MU Xboard49', However, it seems that the usage of dashes '-' isn't allowed. The remote script won't show up in the dropdown menu. If I remove the dash (EMU_Xboard49') it does. Is there a workaround regarding dashes?
Super helpful video!!! Do you know it it's possible to limit the maximum/minimum range of the MASTERVOLUME assignment? I have it assigned to my controller through a midi script, but when the knob is turned up to max the master volume goes all the way up to +6db, I want to somehow limit that to 0db. Any ideas most appreciated!
Not possible on the script unfortunately: only the tempo slider can be limited. My workaroud? Place a utility device on your master channel and set its gain to -6 db. This way, when your master fader is at +6, it will actually be at 0.
Thanks so much, Ive been trying to figure out a way to use a midi controller that wasnt in abletons set of control surfaces, so this helped alot. Though currently i have an issue, ive done all the codework and stuff in python, and though it does appear in abletons list of control surfaces, my midi controller doesnt seem to interact with it at all. i tried changing the midi channels, and i even changed the midi channel for my controller, but nothing seems to happen. is there something i might have missed when i was editing the code? or is it because my midi controller isnt compatible at all?
Sorry to hear that. The issue could be a number of things, we would need to have a look at it step-by-step. Unfortunately, I just started a new job so I don't have the time to provide in-depth support like this anymore. I could, however, offer this service to channel members - after all, even members on the basic "super shredder" tier (3$) get "priority reply to comments", which could well include this kind of support, too. This would make it worth my (unfortunately now very limited) time. I hope you understand and I don't mean any disrespect.
@@RSTypeContent Just to be clear: what I meant was that this kind of in-depth support will be members-only. It's one of the benefits members enjoy. I just don't have the time anymore to offer it to anyone unfortunately. I hope you understand and again, no disrespect meant.
Is it possible to change/ get notes from clips? I see many of the same controls as the max live object model, wondering if the live object model works for remote scripts or if there is a reference manual for all possible functions to and from live.
All assignable functions are listed in the map.py file, and I don't see anything there resembling what you're asking I'm afraid. It might be possible to dive into the other python files and do some deeper modifications there, but that's beyond my grasp of these concepts
Thank you! Explained in easy to understand terms and instructions are clear and linear. I was able to map a controller I had long desired to have control without midi mapping each project! I have a general question regarding the script. Is there anyway to increase the number of parameters/channels above 8? This question is specifically for the PARAMCONTROL, because it is now possible to include 16 Macros in an Ableton 11 device. I have 16 knobs on the controller and it would be a dream to assign them all to a 16 Macro Device. Unfortunately editing the script to include the additional 8 (adding Param 9-16) did not work. I understand you did not create the script, but any information you have regarding this or if you could point me in the right direction on how to figure this out would be greatly appreciated. I briefly scrolled through the comments and looked at Potato Milk's video, but I found no immediate answers.
Hey, glad to hear it helped. So I haven't tried this out personally just yet - something I'm planning on investigating thoroughly some time in the future when I have more time 😅 - but if you have a look at the Python file you had to rename after your controller (NOT the map.py file!), there's a section there where the original creator inserted the following comment: "# My guess is that altering the range here will allow you to alter the range of mixer tracks # So if you had a 16 fader mixer, this would come in handy." That "range" parameter appears later on in the "device" section, too and is suspiciously always set to 8. You could try and set it to 16 and see what that does for you. Might have to play around with some other parts of the code there to get it to work though. In any case, let us know how it goes 🙂
@@TheNeonSyndicate Let me preface, I have limited knowledge on coding, the last time I coded was over 5 years ago. I was able to change the number from 8 to 16 in the file you mentioned and get the controller to work, but without the additional 8 knobs to register. I tried a few iterations by switching the CC numbers of the knobs, changing all the different parameters from 8 channels/tracks/etc to 16 in the Map.py file, but with no luck. I looked into the other SpecialComponent python files and was not able to find anything that I might be able to change. I am not sure if it has something to do with Ableton's coding of the Devices themselves. I have a first gen Push, it is only able to control 8 Macros (at least to my knowledge).I don't know if this has anything to do with over 8 channels being able to be registered in the Device or if it is something else. When you look into it and if you have luck please let me know. I will continue to look into this and if I find a solution I will be sure to post it back here.
Question 1: On the Push 2, you can duplicate a scene so it will add one more layer in real time without much delay for live looping performances. When I go in during the song and manually copy down each clip to the next scene, this process works great but is not as quick and smooth. The duplicate button on the Push 2 and on Ableton pushes all the midi maps for my foot controller down one slot. So nothing controls the new scene that was made and now my second pedal controls scene 3, 3rd pedal controls scene 4 etc. Do you know if there is a way to keep this from happening, or a way I could rethink this process in a smooth live environment? Question 2: I was going to try and customize my foot controller to attempt to make it more like the Push 2 scene selector buttons, which will not shift the "midi mappings" after the duplicating the scene. My foot controller is 5 pin into my audio interface, then into ableton. Ableton just sees the audio interface. Will the customization work without Ableton seeing the name of the foot controller (Midi Maestro) show up, but rather using the audio interface name (UMC404HD)?
never owned any of the devices you mention so I'm just guessing here. As far as 1) goes, not sure I understand your goal: if the scene is already there, why would you wanna duplicate it? Especially seeing as this messes up your midi assignments. As far as 2), the script works with whatever is listed in your MIDI in/out preferences pane, and I'm assuming that would be your audio interface, so you should be good to go. Only one way to find out though
I just figured out that it does work. I remembered another thing. Is there a way to get the stock Ableton Looper effect to retrigger at the beginning of the loop when retriggered in the middle of the loop?
Hey man :) amazing work! Thank you for sharing. Do you if it’s possible to repurpose something like this for use on a different DAW? I’m using Loopy Pro on the iPad and trying to figure out a way to get my Akai controller working as I’d like it/it’s designed… in particular with led light feedback. Any pointers are much appreciated 🌞 happy creating!
Hey thanks! So these scripts are Ableton-specific, it's highly unlikely they'd do anything in any other DAW. Also, other DAWs might not even support custom MIDI scripts. The only other one I use, for instance, is GarageBand, and that one I know for sure doesn't. Sorry I couldn't be of more help here!
thank you so much for the perfect video, that was exactly what i was looking for, so welled explain. Unfortunately it doesn't work with my OP-1 (written like that when midi connected to my ableton 12). I did all the steps multiple times, but it doesn't show up on the midi surface window.... by any chance, have you an idea? thx a lot
What if ableton reads my controller as (for example) Minilab3 (MIDI) ? I haven't been successful just using Minilab3 and I noticed Ableton included (MIDI) in it's recognized name, but the added parenthesis doesn't play nice with python
yes sir. If you select a different track, you're gonna control devices on that track. The device you're currently controlling is identified by that little blue hand icon
Hi super instructive your video, i'm using a kontrol f1 and puttin the values in the midi script but the encoder of the f1 don't move the box i asigned cc 41 help me please
Hey, thanks. Unfortunately I don't have the time anymore to offer personal 1-on-1 support to everybody, so I have added it as a perk for channel members only. I hope you understand and I mean no disrespect.
@@frankzbruckmann5019 You don't have to do anything that you're not comfortable with, but as far as personalized support, I only offer it to channel members. A membership is different from a simple subscription in that it is not free: there is a monthly donation involved. The lowest tier starts at 3$ a month, and of course you can cancel anytime. If you want more information, simply click on the "Join" button below this video to see a list of the different tiers and their various perks.
Very good tutorial thanks man!! The one thing i cannot get to working is the Drumrack. It,s working but only the set notenumbers, so when i select the next bank in drumrack it keeps triggering note 36 for instance!!
@@TheNeonSyndicate Yes that.s all correct. Maybe it has something to do with u using midi pipe, so there is a conversion of your midi messages? Thanks for answering in the first place❤️
@@deejee1971 np. MidiPipe is only an intermediary to convert some midi messages. Have you tried changing the midi input on your track in ableton? Trying out different options there. Having your controller selected might interfere with the script
This is amazing!! Thank you for this video. Is it also possible to use this on a 49key with 16 drum pads. So only the drums have these functions? Great tutorial
minha controladora tem dois canal, então o o lado 1 e o lado 2 tem as mesmas notas midi , porem o lado A usado o canal 1 e o lado B usa o canal 2 , também tem uma chave que duplica a controladora, então o lado A fica no canal 6 e o lado B no canal 7. Como eu faço para mapear essas notas que estão em outros canais ?
You can only use 2 channels with this script. My advice would be to use something like MidiPipe if you're on mac to convert the incoming MIDI channels so that they work with this script.
@@TheNeonSyndicate thanks bro, I use windowsns, but I found an app that does this, for those who have the same problem as me the name of the app is MIDIox
Thanks for the video, I'm trying to create a control script for the spd sx pro but for some reason it doesn't show up in Abletons preferences. I have placed the folder with the right name and the files with the right name in the Ableton / Content / App-Resourses / MIDI Remote Scripts. I'm using Ableton 12. Anyone any Idea what I'm doing wrong? Thanks in advance :)
@@konaraweb This script won't work with 10: it's made to be compatible with Python 3, whereas 10 uses 2. The original Python 2 script might still be available on github though, have you checked?
The blue box, that changes the row in the session view, up and down, I know you can change the size but so you know if you can change the midi note to control?
@@TheNeonSyndicate I got it working, wow! I been searching how to do this since like 2 years ago, thank you so much, I will be controling ableton with the sp 404 mk2 now
Hello and thanks for your explanation! I'd like to ask, if there is a way to use the track selection box in the arrangement view. I am using an usb mixer to control the faders and sends but with a lot more than 8 tracks, it is often a guess which fader i am controlling. The box would help me showing which bank i am currently in. Do you think that is possible ? best regards!
Hey thanks, my pleasure! I'm afraid the track selection box is only visible in clip view. THAT BEING SAID, I know that the new version of Live which is due any day now will introduce a vertical mixer in arrangement view as well, so maybe there's hope! Just speculating though
Wow, this video is just what I was looking for. I've been trying out different midi controllers to use with Ableton but I've been frustrated that nothing so far has integrated and interfaced with the DAW how I would like it to... Then I thought "why can't I make it do what I need it to by programming it?" All these midi controllers are focused on session view but I want customized transport and track/channel focus controls via infinite knob encoders to use in arrangement view.... I still have a lot to learn to accomplish my ideas but this is a definitely a good starting point. Once I accomplish the perfect script I'd love to share it for free for others to use! Some ideas are complicated though and I have so many questions.... like 1. How do I implement infinite encoder knobs to scroll through instrument/audio/channel select simultaneously scrolling (or paging) up and down window (Arturia's Minilab 3 controller almost has this capability but the track being selected gets out of window view)? 2. How do you create "bank" controls and bank selection? 3. Similar to using "shift" key, how do I program a parameter to a knob or button and have that same knob/button affect separate parameters while holding a different button (a button acting like a shift key)?
Well welcome to the fun world of custom MIDI scripts. As far as 3), that part happens entirely on your hardware. Here's how it works. Say your encoder sends out CC71 by default; when you press shift, that assignment is changed, for instance to CC74. So all you gotta do in your script is assign different functions to CC71 and CC74 and you're golden. As far as 2), this script's got you covered, those functions are in there and assignable. For instance, you could control 8 parameters on your device with 8 encoders, then switch to a second bank of a different set of 8 parameters by pressing a knob, then back to that first set by pressing another knob. Just need to write the MIDI notes those 2 knobs generate in the corresponding line on the script. As far as 1), not sure I understand what you mean, could you elaborate?
Thank you for your thoughtful reply! Regarding my first question, If I have say 30 tracks in a project, I'll have to scroll to view through them/put them into view. If I have a track selected, I can scroll out of view of that track that is selected. My question was how can I put a track selector onto a knob and follow the highlighted track with scrolling, so the track that is being selected is always within the viewing window? @@TheNeonSyndicate
@@TheNeonSyndicate Thanks for the quick answer! Yes I've checked, I tried using different keys, different MIDI CCs, changing the behaviour and values of the keys from the Korg editor software, no way. Can't wrap my head around it. The red box is displayed, the volume faders work perfectly.
Thank you for the video,it helped a lot! But there's an issue I wander if you could help with...I midi mapped the overdub function hoping to record in session view when I tap my blueboard controller, but it doesn't act the same as midi mapping directly in ableton which records the armed track in session view, it only turns on/off the overdub buttom but doesn't start recording, I wander if there's any solution or where am I doing it wrong? Been trying to figure it out for quite some time...
Cheers. You could try and assign that same MIDI note number to the relevant record function, too. It's ok to have the same MIDI note trigger multiple different things
Hello! This is a great video. I started working on this and followed the whole video, after placing folder inside MIDI Remote Scripts and starting Live 11 I cant see my control surface listed and pychache folder is never created. Tried the same process with another MIDI controller without success. Working on Live 11.3.10 and Mac OS 10.15.7. Thoughts? Thanks in advance!
@@TheNeonSyndicate Yes, everything was set just like in the video. The only way I got it to "build" was by modifying line 3 in the init script, which has a point before the "YourControllerName" that doesnt exist in the original scripts for live 9/10, tried erasing it an the control surface was built and I could see it listed in the dropdown menu but after setting it up I never saw the session view box anywhere and the buttons I scripted didnt trigger any clip in the session view. I tried searching for decompiled versions of the factory included ctrl surfaces and realized that same line had a point before the name of the MIDI controller, so now it's evident it is needed to build, but if I add it back I don't get it to work :c
@@TheNeonSyndicate its called Touch OSC, its an app for iPad. It's basically a custom MIDI ctrl that allows you to build any kind of control you need, it works great but I just haven't been able to use it for the Remote Script, even tho I only need the red box and arrows to select/launch clips.
Ok, I'd say just go through the steps carefully, making sure everything is done exactly as in the video. Did you add the underscore between Touch and OSC? Like this: Touch_OSC. Is that even the name that appears under the MIDI section of Live's preferences menu when you connect it? Sometimes that's different from the actual name of the controller. Once you made sure to use the name of the controller as Live sees it, have you renamed the clean files with the "replace all" function? Maybe you missed something there. Also, did you place the files into the correct folder? As you can see, there's a million things here that could've gone wrong 🤣 It's not a difficult process, but a very detailed one so it's easy to forget something. We need to narrow things down here to understand where the problem lies. If you could provide screenshots that would be helpful, too!@@jowdaysimgen4450
Yes sir! Haven't published a full-length video yet (though I very much might in the near future), but I have a shorts on it: ua-cam.com/users/shorts0cqUd0ObD8A?feature=share
Thank you very much, your entire workflow is inspiring but funny enough the thing i needed the most was at the end of the video about the pycache folder, i tried adding changes to my script but didn't seem to see anything change. thanks for clarifying that in order for changes in the script to take effect we first need to delete the pycache folder.
I can't rename the "YourControllerName" folder that's in the zip folder itself. Does anybody know what I'm missing/getting wrong? Any help would be greatly appreciated!
Hii rlly loved your video Im working the customized midi template right now. i do have a question U know how if u put one fader linked to master volume and like when u reach limit of fade it passes way above zero on ableton would it possible to, on the template text file set the limit of it to 0??
Hey thanks. Man, I'm sure there's got to be a way to do that, but it won't be in the user-friendly map.py file. There's some code for that probably in one of the other files but that's a little beyond my expertise I'm afraid. Still, you could skim through it looking for words like "fader range" and see if you find something that makes sense
Epic video thank you so much - just getting into Control Script editing and this is a fantastic digest. I was wondering with the track selection box - I have a group track (made up of 8 individual tracks) that I need to fold down during performance. Can I edit a script so that the track selection box includes the 8 hidden tracks in the group instead of spanning across the 8 visual tracks?
Hey thanks, glad it helped. I'm afraid this script works in such a way that it will always select the first 8 active tracks, so it'll always select the next 7 once you fold the first. You could try contacting the original developer though, he might be able to help you!
Hi, I have a weird python related issue if anyone can help. The name of my controller is "X-TOUCH MINI" in Ableton. That Hyphen does not work within code obviously. I tried using a variable, I tried escaping it with no luck. I can see it in Ableton if I use X_TOUCH_MINI within files and folders but it is not working with my mapping script. It shows up as X TOUCH MINI. Does anyone know how I can get it to display in Ableton as "X-TOUCH MINI" ? Thank you and thanks for keeping this project going!
Sorry to hear that. I think I remember someone mentioning a similar issue here in the comments, maybe have a quick skim through them, they might've found a solution!
Nice explanations !!! Lately I`ve been using little midi > OS keyboard shortcut converter called Coyote Midi . Surprisingly it more simple to setup instead doing hack and write custom midi remote scripts . You just need to know which shortcut needed for specific task you want , then translate( map ) our midi key/button/slider/knobs into those shortcuts . For my DIY Arduino midi controller, I`m only using 3 knobs and 10 buttons for most important shortcut in my workflow
Don't think that's possible BUT if you have 2 spare buttons you can assign them to DEVICEBANKNAVLEFT and DEVICEBANKNAVRIGHT to switch between different banks of 8 parameters each. This way you can control them all really - 8 at a time, that is. If you have 8 buttons to spare, you could even assign them to DEVICEBANK so you can select which of the 8 available banks of 8 parameters each you want to control at any given moment
@@GucciGascon That is because when you first launch Ableton, it scans the remote scripts folder, identifies your .py files and creates a "pycache" folder with the .pyc files it then references from that moment on. So what that means for you is: any time you make a change to your map.py file, you need to delete that cache folder in order for Live to stop referencing it and rescan your .py files, become aware of your edits and then recreate that cache folder. Does that solve your problem or was it something else?
Yeah, I changed some of the controls there, too, but it's not really necessary: for the most part you can just keep them as they are and then use those note & CC numbers in your mapping file
@@marcocaviezel2672 Yeah. But again, that's no the important part: the important part is that the numbers you write into the file correspond to the numbers being sent out by your controller. So long as you make sure that's the case, what those numbers are doesn't really matter
Thanks! That wouldn't do you any good though I'm afraid, my scripts just wouldn't work because a) I have changed the default settings on my iRig Pads so they send out different MIDI messages than the default ones and b) I pass all of those through MidiPipe for some extra message conversion. So basically what reaches Live coming from my controller is completely different from what would come from yours, and therefore the script would need to be adapted to your controller anyway. And anyway, asides from that, this script is one that suits my needs and my workflow, and yours (probably) differs from that. Might as well just use these instructions I provided you with to make your own script that a) is compatible with your controller and b) work best for you 😉
Hey, thank you so much for this Great Video!! I'm on windows and trying to setup my midi foot pedal as a controller. I'm converting the midi messages via MIDI-OX since my pedal only outputs "PC" Messages. Ableton Detects everything and all the functions which I need works, except one. The Session Navigation seems to have a problem. it doesn't move the red box one scene at a time. it goes all the way up/down when i press the mapped SESSIONUP/SESSIONDOWN button and also the same thing with right/left.
Hey i have fixed it!! Just posting the solution for anyone else facing the same issue. MIDI-OX was converting the "PC" to just "note on" Messages. the Session Navigation box(Red Box) was not getting a "note off" message so it would go all the way down/up or right/left. in MIDI=Ox i duplicated the "PC" message twice and made it output a "note on" followed by a "note off" That seems to do the trick.
Hi again, I've been having loads of fun looping with my midi pedal after connecting it as a control surface with your midi script. can't thank you enough. I'm just missing one function in the MIDI_Map file, the "Track Launch" button. (not the Clip Launch) I'm sure i went through the whole file and was not able to find that function. is there some way to add this to the MIDI_Map File? Thank you🙂
This button doesn't show up by default. It appears above the I/O section in Session view when you enter midi/key map mode. It looks like a play button. It can launch any clips in a particular track depending on where the scene selector is in that Instance.
Brilliant Video and really well explained. I am wondering if you could please help? what I am trying to do is much simpler than the complex script you set up for your iRig. I have 2 Arduino Leonardos one has 4 encoders, 4 faders and a x,y, joystic the other has 6 encoders and a x,y, joystic. I just want them to be recognised as 2 individual surface controllers so that I can midi learn and assign them to a plugin and save the rack/plugin as default. I know all the encoder cc numbers as I set them on the controller myself. I just want to get more use out of them. Any help or advice would be greatly appreciated. Thank you
I had another look at the video lastnight and if I am in the ball park for what I need do I just input my cc numbers that are being outputted from the arduino into the last paragraph of text 'The Parameters' so that I will then have macros that can be saved per plugin and not just project based saved as they currently are at the moment. The faders act as macros when mapped in project based saves. Both arduinos are currently on midi channel 1. Last question : could I write 2 more lines of text so that I have 2 more parameter added as in 10 parameters so that 4 pots 4 faders and a seperate x and y for the joystick are mapped and recognised within ableton? I am so sorry for the questions but I am trying to reassure myself to feel confident in setting up 2 custom user folders for the Arduinos. Thank you
@@roymitchell5894 You are right in that this method is not project based, that's one of its strengths. The thing though is, you're gonna need to create 2 custom MIDI scripts, one for Leonardo and one for Leonardo #2. So the whole process outlined in this video, you're gonna need to go through 2 times. In each map.py file you can then do the assignments as you please. As far as adding 2 lines of code, that is not gonna work I'm afraid. You can, however, control macros 9-16 with your same 8 faders by just switching to the next device bank - there's a line for that in the map.py file. Just need to save one or two controllers to switch back and forth
Great video could you please demonstrate how to script different modes and presets for any controller knob or button for example a button in mode 1 will navigate tracks and in mode 2 it will navigate devices. Another thing could be shift button for temporary changes in any preset. My controller is Akai Midi mix
Thank you. That's actually quite easy to implement, here's what you need to do. First, create different presets on your controller. For instance, you could set a certain button to send out MIDI note number 1 on preset number 1 and MIDI note number 2 on preset number 2. How to do that differs between MIDI controllers, I can show you how to do that on the iRig PADS but I have no idea how that would work on the Akai, so you're gonna have to check the manual for that. Anyway, step number to would be to associate those 2 different MIDI notes to 2 different functions in your "map.py" file. For instance, you could associate MIDI note 1 to the "tempo tap" function and MIDI note 2 to "playback start". And that's pretty much it! Now when you use preset 1 on your controller, your button is gonna trigger the tempo tap function, whereas when you switch to preset number 2, it's gonna start the playback of your song.
@@TheNeonSyndicate Thanks for your reply. Unfortunately in midimix manual it says you can save one preset at a time and must load any other manually by its software
Hi! Great tutorial. I'm having trouble in Windows. I installed the folder in the MIDI Remote Scripts folder but Ableton won't recognize it as a Contorl Surface, and after doing that, the only control surface that shows up is Push 2. All the other ones have disappeared. Any ideas? I'm using Live 11.2.11
@@TheNeonSyndicate thanks! I updated and now it shows correctly. But I'm having trouble making it work. I change some midi maps just to try if it worked, set message type to 1 (cause my controller sends CCs), changed buttonchannel and sliderchannel to 1 (which is the channel my controller sends to) and I also tried different channels for buttonchannel and sliderchannel. Any ideas on why it won't work? I am using a custom controller made with Arduino, but I double checked the name of the controller and with a midi monitor that it's sending the correct messages.
@@francochiabudini995 That's the issue right there: if you use CCs for both the buttons and the sliders, the channels need to be different. My piece of advice would be to keep the buttons set to notes and make it so that your controller sends out notes instead
@@TheNeonSyndicate now it works with CC! Thanks. Do you know if it is possible to assign different cc values from the same button for different functions? For example, when I press (127) it arms a track, and when I release (0) it triggers loop recording.
@@francochiabudini995 That's an excellent trick I use quite a lot, but in order to make it work you actually have to use 2 different CCs. But with something like MidiPipe you can make it so that your 1 CC assigned to your physical knob turns into 2 different CCs depending on its value. So yeah, totally doable but you need that extra piece of software
I customized the files, colored box appeared but I can't map the cc notes. in my case 45 is play cc note but when I entry the 45 to file global play section it's not working. please help!! BUTTONCHANNEL = 0 # Channel assignment for all mapped buttons/pads; valid range is 0 to 15 ; 0=1, 1=2 etc. MESSAGETYPE = 1 # Message type for buttons/pads; set to 0 for MIDI Notes, 1 for CCs. # When using CCs for buttons/pads, set BUTTONCHANNEL and SLIDERCHANNEL to different values. when I change the "messagetype" value to "1", i can manage to assign buttons but the faders. when its "0" I can only assign faders.. please guys help me
I would leave the MESSAGETYPE set to 0 and use actual MIDI notes for the buttons instead of CCs. Any way you can set up your controller so that your buttons send notes instead of CCs?
@@TheNeonSyndicate thank you so much for reply. in editor which is worlde easy control 9, I only see CC notes. there is not any midi notes option to select.
@@TheNeonSyndicate it's my bad sorry, I mean CC number not note. worlde easy control 9 is looks and functions like korg nanokontrol 2. it has no pads only slider, knob and button it has so in the editor I can only assign CCs. I'm using Live 11.3.10 is this version can make any trouble about codes?
Ah ok understood! So since you cannot assign your controllers to notes, you have to stick with CCs. So yeah, you need to set the MESSAGETYPE parameter to 1 like you did. Remember though: that means that the MIDI channel now needs to be different from the one you're gonna use for SLIDERCHANNEL. So for instance you could set BUTTONCHANNEL to 0 and SLIDERCHANNEL to 1, and set the nanokontrol's buttons and sliders accordingly @@leadpain
You keep saying "Midi Note"....do you mean midi note? or is it the Midi CONTROL number? Because your values seem to be linear and this video is actually confusing.
Usually when I say note, I mean note. Most of the functions here in the script work with midi notes. But hey. I'm not perfect. Could you give me a specific example?
@@linzenmeyer I see. Well, those are, in fact, MIDI notes. I'm simply using numbers instead of letters, because that's how the script works - in other words, it doesn't accept, say, "D#4". It's just a different notation is all. So, for instance, the lowest possible MIDI note, which I believe is C-2, would be 0, the next, C#-2, would be 1, etc.
@@TheNeonSyndicate I'm trying this with an Akai fire controller it's named" FL STUDIO FIRE (Jack 1) but when modifying the files it doesn't show up under control surfaces
@@TheNeonSyndicate Ok I tried again first I forgot to add the underscores instead of the spaces... But still no result it does not show up. Was hoping it would work as I also took time to look for the midi cc's and then added em to the midi/map file I made the name FL_STUDIO_FIRE_(Jack_1) as in ableton it comes up as FL STUDIO FIRE (Jack 1)
If Editing in Windows, Do Not Use Wordpad. It will add a lot of Rich Text formatting to the file, which the Python interpreter will not appreciate!!! Use Notepad instead.
Thanks for the info. Ima pin this
why i can map a kontrol f1
@@frankzbruckmann5019 Could you elaborate a bit on that?
@@TheNeonSyndicate i used the edit controller of ni then a midi generator and get mapped in my kontrol F1
@@frankzbruckmann5019 Ok, I'm sorry, still not sure I understand you here. Your name sounds German, perhaps we can switch to that language? If that wasn't the case, I apologize for the assumption
Thank you! This worked right away for me after spending a good portion of my day trying to troubleshoot other options including the old (Python 2) version of this. Custom midi controller here we come!
Glad to hear it helped. Have fun!
Hi, not sure if anyone commented already but on pc the custom scripts go to drive :\ProgramData\Ableton(version)\Resources\MIDI Remote Scripts.Hope that helps.
Thanks for specifying that. Gonna pin the comment
im missing the Remote scripts folder, what should I do?
never mind, found it
@@InfiniteSuccess0 👍
Fyi...the new features in Live Suite 12 are AWESOME
Hi, thanks a lot for your video, it helped me a lot ! I'm right now writing a MIDI script for my AKAI APC mini mk2. Do you know if it is possible to have a LED feedback with the grid on session mode ?... It works, but it would be a lot more useful with light feedback 😅Thanks again :)
Hey my pleasure! That depends on the manufacturer I'm afraid. In my case, the iRig Pads accepts MIDI CC to trigger the backlights on the pads, so I can make them pulse rhythmically with the grid by just setting aside a track with the right MIDI patterns and setting the iRig Pads as its output. Don't know about the AKAI though. You might have to check the manual, if that feature is available, it's gonna be mentioned there for sure!
Thanks a lot for your help !! :) @@TheNeonSyndicate
@@baptistebaudimant6126 pleasure. Let us know how it goes!
Thank you so much, I was looking for such a thing for so long. One advice for people who want to control more than 8 tracks(it is a limitation). You can create the same string with appended 2 at the end. For example mine is MiSW_XVI and MiSW_XVI2. And put the midi information for other 8 channel in the second script. And you can add the same device for two control surface scripts in the ableton settings. This way you can control 16 tracks at the same time.
Wow! That is so cool! I had no idea you could do that. Thanks for sharing that!
@@TheNeonSyndicate I have tried writing control surface scripts without any success for so long. Even though I am experienced python developer, it was bugging me whole time. I still couldn't create the perfect apc40 script, but at least you showed us the way to make every midi controller useful.
@@homunduruk2530 Credit where credit's due: I didn't come up with any of this, the guy I reference at the beginning of the video did. I just put his knowledge to use in a practical real world example
Hi i'm having problems mapping the 4x4 buton pad can you help me? my device it's a traktor kontrol F1
thank you so much for your great video! I'm struggling with how to know specific numbers or cc# of my midi controller. I'm using iRig Keys IO. I have no idea what kind of numbers or letter things in MIDI_map.py file...
My pleasure. First you should check the manual, it shout be in there somewhere. If not, just create a MIDI track, start recording and move one of your sliders/knobs. Stop recording and double click on that new MIDI clip. In the "Envelopes Tab" select "MIDI Ctrl" on the left and click on the right drop-down menu you'll see a small light blue dot next to the CC you just recorded.
hey man - great Video, thanks for keeping the scripts alive!
I saw a bunch of comments regarding naming of the files causing errors - kinda the same case here, but with additional spice on top
Ableton is showing me two different names for my MIDI In and Out ports of my controller (Traktor Kontrol F1) - its 'Traktor Kontrol F1 - 1 Input' and 'Traktor Kontrol F1 - 1 Output' (without the ') - could you think of which one to choose here? tried already a bunch of combinations, can't get it to be shown in the dropdown for control surfaces.
If you have a hint, glad to receive it :)
Thank you!
Yeah, you're right, the naming part seems to be a little more tricky than I could imagine. Meantime, I've stopped using Live so I can't even just quickly open its preferences pane and see if the "real" name is hidden somewhere there. I'm afraid trying some more combinations is the only way to go! Otherwise, you could try and reach out to the guy who had originally shared this method - I'm linking to his GitHub in the description. Anyway, good luck!
Working in Live12. Thanks!😊
My pleasure. Good to hear more and more people confirming it works in 12
Hey, thanks for doing this video! I have an iRigs Pads as well. When you show the feedback on the iRig Pads when muting tracks how exactly are you doing this? I've tried to do this by setting the pads to toggle, but this doesn't work right. I'm guessing you're sending MIDI back to the iRig Pads somehow so the pad will be red when the track is muted. Is that right?
Well spotted! Yes, I have a MIDI clip in Live sending CCs to the iRig Pads - different CCs trigger different colors on different pads. You can even write in automation curves - say a rising ramp, which will make it so that your pad lights up progressively. What pad reacts to what CC is in the manual!
@@TheNeonSyndicate Got it. Thanks for the confirmation. And great video. Very, very helpful in using my iRig Pads for more than just finger drumming.
@@TerenceD9 My pleasure! Yeah, this is a great little toy, I love that you can use it as a basic control surface and for finger drumming! Lately I've been experimenting with assigning the pads to notes chromatically and using it as an alternative keyboard - that can also be a interesting idea to play around with
Great video. I can't seem to find / figure out how to set the controls for macro knobs on an instrument rack. Any ideas? Thank you!
Thanks! You don't set controls for any specific device with this: you control whatever device is currently selected, be it an instrument rack, a drum rack, a reverb, what have you. That's the beauty of it!
@@TheNeonSyndicate I guess then what I am not super clear on is what parameter needs to be edited in the midi map Python file that connects to a device knob. In the video you show it on the device but not sure if I caught you covering that in the code walk through.
@@RealBassPhat Aah ok gotcha. That would be the 8 "parameter" voices towards the end of the document
Exactly what I was looking for. Great video
Glad to hear it helped!
Excellent! Does it work with Ableton Live 12?
Haven't tested it myself yet, but people commented here that it does, so you should be good to go
can you change the messagetype for only a few parameters instead of the entire section? i want to map some buttons to buttons on my controller, the problem is the buttons don't emit note values, they emit CC signals and not all of the buttons do that.
EDIT: solved it. used MIDI OX and LoopBe1 to change the signals emitted and it works.
Not possible I'm afraid. You could either change what the buttons send directly from your hardware if it allows remapping, otherwise your best bet is a MIDI conversion tool like MidiPipe for Mac or Bohme for Windows.
Hi, great Video. Unfortunately Ableton doesnt detect the folder. I am thinking i have some issues with the name of my controller. Its the XONE:K2 and the (:) cant be written in filenames so i changed it to an underscore. Not inside the code only the two filenames. But still ableton doesnt detect the folder... any ideas?
Right, there have been a couple similar comments, I think I remember those people managed to get it to work, but I don't remember how. Maybe just using a space instead of an underscore? Something like that.
I'm running into a Problem with my E-MU Xboard controller. Ableton recognizes it as 'E-MU Xboard49', However, it seems that the usage of dashes '-' isn't allowed. The remote script won't show up in the dropdown menu. If I remove the dash (EMU_Xboard49') it does. Is there a workaround regarding dashes?
Hmh, wouldn't know, haven't had that issue... Does the script work without the dash?
@@TheNeonSyndicateyes it works withoit the dash. Why would the nsme have to be exactly the same as the one ableton displays?
@@emereo1981 That's (usually) required for the script to work. I guess dashes are the exception!
Super helpful video!!! Do you know it it's possible to limit the maximum/minimum range of the MASTERVOLUME assignment?
I have it assigned to my controller through a midi script, but when the knob is turned up to max the master volume goes all the way up to +6db, I want to somehow limit that to 0db.
Any ideas most appreciated!
Not possible on the script unfortunately: only the tempo slider can be limited. My workaroud? Place a utility device on your master channel and set its gain to -6 db. This way, when your master fader is at +6, it will actually be at 0.
@@TheNeonSyndicate Thank You!!! :) :) :)
@@DJALEXRRR sure thing
Thanks so much, Ive been trying to figure out a way to use a midi controller that wasnt in abletons set of control surfaces, so this helped alot.
Though currently i have an issue, ive done all the codework and stuff in python, and though it does appear in abletons list of control surfaces, my midi controller doesnt seem to interact with it at all. i tried changing the midi channels, and i even changed the midi channel for my controller, but nothing seems to happen. is there something i might have missed when i was editing the code? or is it because my midi controller isnt compatible at all?
Sorry to hear that. The issue could be a number of things, we would need to have a look at it step-by-step. Unfortunately, I just started a new job so I don't have the time to provide in-depth support like this anymore. I could, however, offer this service to channel members - after all, even members on the basic "super shredder" tier (3$) get "priority reply to comments", which could well include this kind of support, too. This would make it worth my (unfortunately now very limited) time. I hope you understand and I don't mean any disrespect.
@@TheNeonSyndicate Thats perfectly fine! Take whatever time you need
@@RSTypeContent Just to be clear: what I meant was that this kind of in-depth support will be members-only. It's one of the benefits members enjoy. I just don't have the time anymore to offer it to anyone unfortunately. I hope you understand and again, no disrespect meant.
Is it possible to change/ get notes from clips? I see many of the same controls as the max live object model, wondering if the live object model works for remote scripts or if there is a reference manual for all possible functions to and from live.
All assignable functions are listed in the map.py file, and I don't see anything there resembling what you're asking I'm afraid. It might be possible to dive into the other python files and do some deeper modifications there, but that's beyond my grasp of these concepts
Thank you! Explained in easy to understand terms and instructions are clear and linear. I was able to map a controller I had long desired to have control without midi mapping each project!
I have a general question regarding the script. Is there anyway to increase the number of parameters/channels above 8? This question is specifically for the PARAMCONTROL, because it is now possible to include 16 Macros in an Ableton 11 device. I have 16 knobs on the controller and it would be a dream to assign them all to a 16 Macro Device.
Unfortunately editing the script to include the additional 8 (adding Param 9-16) did not work. I understand you did not create the script, but any information you have regarding this or if you could point me in the right direction on how to figure this out would be greatly appreciated. I briefly scrolled through the comments and looked at Potato Milk's video, but I found no immediate answers.
Hey, glad to hear it helped. So I haven't tried this out personally just yet - something I'm planning on investigating thoroughly some time in the future when I have more time 😅 - but if you have a look at the Python file you had to rename after your controller (NOT the map.py file!), there's a section there where the original creator inserted the following comment: "# My guess is that altering the range here will allow you to alter the range of mixer tracks
# So if you had a 16 fader mixer, this would come in handy." That "range" parameter appears later on in the "device" section, too and is suspiciously always set to 8. You could try and set it to 16 and see what that does for you. Might have to play around with some other parts of the code there to get it to work though. In any case, let us know how it goes 🙂
@@TheNeonSyndicate Let me preface, I have limited knowledge on coding, the last time I coded was over 5 years ago. I was able to change the number from 8 to 16 in the file you mentioned and get the controller to work, but without the additional 8 knobs to register. I tried a few iterations by switching the CC numbers of the knobs, changing all the different parameters from 8 channels/tracks/etc to 16 in the Map.py file, but with no luck. I looked into the other SpecialComponent python files and was not able to find anything that I might be able to change.
I am not sure if it has something to do with Ableton's coding of the Devices themselves. I have a first gen Push, it is only able to control 8 Macros (at least to my knowledge).I don't know if this has anything to do with over 8 channels being able to be registered in the Device or if it is something else.
When you look into it and if you have luck please let me know. I will continue to look into this and if I find a solution I will be sure to post it back here.
Sure thing. When I find out anything, I'll update you here 👍 @@liberthorn
ahoy! did you end up getting this to work with 16 macros? your dream is also my dream. @@liberthorn
Question 1: On the Push 2, you can duplicate a scene so it will add one more layer in real time without much delay for live looping performances. When I go in during the song and manually copy down each clip to the next scene, this process works great but is not as quick and smooth. The duplicate button on the Push 2 and on Ableton pushes all the midi maps for my foot controller down one slot. So nothing controls the new scene that was made and now my second pedal controls scene 3, 3rd pedal controls scene 4 etc. Do you know if there is a way to keep this from happening, or a way I could rethink this process in a smooth live environment?
Question 2: I was going to try and customize my foot controller to attempt to make it more like the Push 2 scene selector buttons, which will not shift the "midi mappings" after the duplicating the scene. My foot controller is 5 pin into my audio interface, then into ableton. Ableton just sees the audio interface. Will the customization work without Ableton seeing the name of the foot controller (Midi Maestro) show up, but rather using the audio interface name (UMC404HD)?
never owned any of the devices you mention so I'm just guessing here. As far as 1) goes, not sure I understand your goal: if the scene is already there, why would you wanna duplicate it? Especially seeing as this messes up your midi assignments. As far as 2), the script works with whatever is listed in your MIDI in/out preferences pane, and I'm assuming that would be your audio interface, so you should be good to go. Only one way to find out though
I just figured out that it does work. I remembered another thing. Is there a way to get the stock Ableton Looper effect to retrigger at the beginning of the loop when retriggered in the middle of the loop?
@@mattbruamusic Sorry man, Lite user here, don't have access to the looper. Wish I could be more helpful
Hey man :) amazing work! Thank you for sharing. Do you if it’s possible to repurpose something like this for use on a different DAW? I’m using Loopy Pro on the iPad and trying to figure out a way to get my Akai controller working as I’d like it/it’s designed… in particular with led light feedback. Any pointers are much appreciated 🌞 happy creating!
Hey thanks! So these scripts are Ableton-specific, it's highly unlikely they'd do anything in any other DAW. Also, other DAWs might not even support custom MIDI scripts. The only other one I use, for instance, is GarageBand, and that one I know for sure doesn't. Sorry I couldn't be of more help here!
thank you so much for the perfect video, that was exactly what i was looking for, so welled explain. Unfortunately it doesn't work with my OP-1 (written like that when midi connected to my ableton 12). I did all the steps multiple times, but it doesn't show up on the midi surface window.... by any chance, have you an idea? thx a lot
Probably has to do with the name. Try using a space instead of a hyphen!
@@TheNeonSyndicate man, you are so faaaast, yeeees it workssss, thanks a looot
@@Manceau1jules Happy to hear that. Have fun!
What if ableton reads my controller as (for example) Minilab3 (MIDI) ? I haven't been successful just using Minilab3 and I noticed Ableton included (MIDI) in it's recognized name, but the added parenthesis doesn't play nice with python
Have you tried this? Is it not working?
Maybe i missed it, but if i set this up with only device paremeters will it affect the currently selected track?
yes sir. If you select a different track, you're gonna control devices on that track. The device you're currently controlling is identified by that little blue hand icon
Hi super instructive your video, i'm using a kontrol f1 and puttin the values in the midi script but the encoder of the f1 don't move the box i asigned cc 41 help me please
Hey, thanks. Unfortunately I don't have the time anymore to offer personal 1-on-1 support to everybody, so I have added it as a perk for channel members only. I hope you understand and I mean no disrespect.
@@TheNeonSyndicate I have to subscribe?
@@frankzbruckmann5019 You don't have to do anything that you're not comfortable with, but as far as personalized support, I only offer it to channel members. A membership is different from a simple subscription in that it is not free: there is a monthly donation involved. The lowest tier starts at 3$ a month, and of course you can cancel anytime. If you want more information, simply click on the "Join" button below this video to see a list of the different tiers and their various perks.
Very good tutorial thanks man!!
The one thing i cannot get to working is the Drumrack.
It,s working but only the set notenumbers, so when i select the next bank in drumrack it keeps triggering note 36 for instance!!
My pleasure! Hmm, did you set the channel number and the midi note numbers correctly, so that they correspond to what your controller is sending out?
@@TheNeonSyndicate Yes that.s all correct.
Maybe it has something to do with u using midi pipe, so there is a conversion of your midi messages?
Thanks for answering in the first place❤️
@@deejee1971 np. MidiPipe is only an intermediary to convert some midi messages. Have you tried changing the midi input on your track in ableton? Trying out different options there. Having your controller selected might interfere with the script
This is amazing!! Thank you for this video. Is it also possible to use this on a 49key with 16 drum pads. So only the drums have these functions? Great tutorial
My pleasure. Sure, just make sure you use a different MIDI channel than the one you're using for the keys!
minha controladora tem dois canal, então o o lado 1 e o lado 2 tem as mesmas notas midi , porem o lado A usado o canal 1 e o lado B usa o canal 2 , também tem uma chave que duplica a controladora, então o lado A fica no canal 6 e o lado B no canal 7. Como eu faço para mapear essas notas que estão em outros canais ?
You can only use 2 channels with this script. My advice would be to use something like MidiPipe if you're on mac to convert the incoming MIDI channels so that they work with this script.
@@TheNeonSyndicate thanks bro, I use windowsns, but I found an app that does this, for those who have the same problem as me the name of the app is MIDIox
@@igorbuchhorn That's great, thanks for letting us know!
Thanks for the video, I'm trying to create a control script for the spd sx pro but for some reason it doesn't show up in Abletons preferences. I have placed the folder with the right name and the files with the right name in the Ableton / Content / App-Resourses / MIDI Remote Scripts. I'm using Ableton 12. Anyone any Idea what I'm doing wrong? Thanks in advance :)
Sure thing. First thing I'd check is the name, you sure it's spelled correctly including any hyphens or underscores?
@@TheNeonSyndicate having the same problem with ableton 10 here,
@@konaraweb This script won't work with 10: it's made to be compatible with Python 3, whereas 10 uses 2. The original Python 2 script might still be available on github though, have you checked?
Do you know if instead of being CC’s like 1,2,3 and etc, can I control the little box with midi notes? Being C3, C-2, etc etc
Could you elaborate a bit? What's "the little box"?
The blue box, that changes the row in the session view, up and down, I know you can change the size but so you know if you can change the midi note to control?
@@serpieromusic Sure, actually I'm already using MIDI notes to control it, it's all in the script!
@@TheNeonSyndicate I got it working, wow! I been searching how to do this since like 2 years ago, thank you so much, I will be controling ableton with the sp 404 mk2 now
@@serpieromusic Glad to hear you managed to get it to work! Have fun!
Hello and thanks for your explanation! I'd like to ask, if there is a way to use the track selection box in the arrangement view. I am using an usb mixer to control the faders and sends but with a lot more than 8 tracks, it is often a guess which fader i am controlling. The box would help me showing which bank i am currently in.
Do you think that is possible ?
best regards!
Hey thanks, my pleasure! I'm afraid the track selection box is only visible in clip view. THAT BEING SAID, I know that the new version of Live which is due any day now will introduce a vertical mixer in arrangement view as well, so maybe there's hope! Just speculating though
@@TheNeonSyndicate Alright, thanks! So I guess I have to ask the people at ableton. I'm curious, what they'll say.
@@leonkaveto3088 Yeah, let us know how it goes!
Wow, this video is just what I was looking for. I've been trying out different midi controllers to use with Ableton but I've been frustrated that nothing so far has integrated and interfaced with the DAW how I would like it to... Then I thought "why can't I make it do what I need it to by programming it?"
All these midi controllers are focused on session view but I want customized transport and track/channel focus controls via infinite knob encoders to use in arrangement view.... I still have a lot to learn to accomplish my ideas but this is a definitely a good starting point. Once I accomplish the perfect script I'd love to share it for free for others to use!
Some ideas are complicated though and I have so many questions.... like
1. How do I implement infinite encoder knobs to scroll through instrument/audio/channel select simultaneously scrolling (or paging) up and down window (Arturia's Minilab 3 controller almost has this capability but the track being selected gets out of window view)?
2. How do you create "bank" controls and bank selection?
3. Similar to using "shift" key, how do I program a parameter to a knob or button and have that same knob/button affect separate parameters while holding a different button (a button acting like a shift key)?
Well welcome to the fun world of custom MIDI scripts. As far as 3), that part happens entirely on your hardware. Here's how it works. Say your encoder sends out CC71 by default; when you press shift, that assignment is changed, for instance to CC74. So all you gotta do in your script is assign different functions to CC71 and CC74 and you're golden. As far as 2), this script's got you covered, those functions are in there and assignable. For instance, you could control 8 parameters on your device with 8 encoders, then switch to a second bank of a different set of 8 parameters by pressing a knob, then back to that first set by pressing another knob. Just need to write the MIDI notes those 2 knobs generate in the corresponding line on the script. As far as 1), not sure I understand what you mean, could you elaborate?
Thank you for your thoughtful reply! Regarding my first question, If I have say 30 tracks in a project, I'll have to scroll to view through them/put them into view. If I have a track selected, I can scroll out of view of that track that is selected. My question was how can I put a track selector onto a knob and follow the highlighted track with scrolling, so the track that is being selected is always within the viewing window?
@@TheNeonSyndicate
@@kyletaisacan I use TRACKLEFT and TRACKRIGHT to scroll through tracks, and the selected track is always in view, if that's what you mean
Hi! Thank you very much, this is great! Although I can't move the red selection box with my Korg NanoKontrol, what is possibly wrong?
have you checked what MIDI note your controller sends out and written it in the correct place in the file?
@@TheNeonSyndicate Thanks for the quick answer! Yes I've checked, I tried using different keys, different MIDI CCs, changing the behaviour and values of the keys from the Korg editor software, no way. Can't wrap my head around it. The red box is displayed, the volume faders work perfectly.
@@francescolurgo What function in the script did you assign to your notes?
@@TheNeonSyndicate session left/right/up/down, track left/right, scene up/down
@@francescolurgo What are your TSB values?
Thank you for the video,it helped a lot! But there's an issue I wander if you could help with...I midi mapped the overdub function hoping to record in session view when I tap my blueboard controller, but it doesn't act the same as midi mapping directly in ableton which records the armed track in session view, it only turns on/off the overdub buttom but doesn't start recording, I wander if there's any solution or where am I doing it wrong? Been trying to figure it out for quite some time...
Cheers. You could try and assign that same MIDI note number to the relevant record function, too. It's ok to have the same MIDI note trigger multiple different things
Hello! This is a great video.
I started working on this and followed the whole video, after placing folder inside MIDI Remote Scripts and starting Live 11 I cant see my control surface listed and pychache folder is never created.
Tried the same process with another MIDI controller without success.
Working on Live 11.3.10 and Mac OS 10.15.7.
Thoughts?
Thanks in advance!
Cheers. Did you rename it correctly? Upper/lower case letters and underscores?
@@TheNeonSyndicate Yes, everything was set just like in the video.
The only way I got it to "build" was by modifying line 3 in the init script, which has a point before the "YourControllerName" that doesnt exist in the original scripts for live 9/10, tried erasing it an the control surface was built and I could see it listed in the dropdown menu but after setting it up I never saw the session view box anywhere and the buttons I scripted didnt trigger any clip in the session view.
I tried searching for decompiled versions of the factory included ctrl surfaces and realized that same line had a point before the name of the MIDI controller, so now it's evident it is needed to build, but if I add it back I don't get it to work :c
@@jowdaysimgen4450 Yeah, that point is definitely needed. What's the name of your MIDI controller
@@TheNeonSyndicate its called Touch OSC, its an app for iPad.
It's basically a custom MIDI ctrl that allows you to build any kind of control you need, it works great but I just haven't been able to use it for the Remote Script, even tho I only need the red box and arrows to select/launch clips.
Ok, I'd say just go through the steps carefully, making sure everything is done exactly as in the video. Did you add the underscore between Touch and OSC? Like this: Touch_OSC. Is that even the name that appears under the MIDI section of Live's preferences menu when you connect it? Sometimes that's different from the actual name of the controller. Once you made sure to use the name of the controller as Live sees it, have you renamed the clean files with the "replace all" function? Maybe you missed something there. Also, did you place the files into the correct folder? As you can see, there's a million things here that could've gone wrong 🤣 It's not a difficult process, but a very detailed one so it's easy to forget something. We need to narrow things down here to understand where the problem lies. If you could provide screenshots that would be helpful, too!@@jowdaysimgen4450
Do you know of any way to get the irig pads to do midi playback? launchpad lighteffects type functionality if that makes any sense
Yes sir! Haven't published a full-length video yet (though I very much might in the near future), but I have a shorts on it: ua-cam.com/users/shorts0cqUd0ObD8A?feature=share
@@TheNeonSyndicate great! Exactly what I was looking for thanks a bunch
@@chrislinmusic My pleasure. Have fun!
Super helpful! Thanks for sharing.
My pleasure. Have fun!
Thank you very much, your entire workflow is inspiring but funny enough the thing i needed the most was at the end of the video about the pycache folder, i tried adding changes to my script but didn't seem to see anything change. thanks for clarifying that in order for changes in the script to take effect we first need to delete the pycache folder.
Glad to hear it helped!
Thanks for doing this. Really helpful
glad to hear that. Have fun with it!
I can't rename the "YourControllerName" folder that's in the zip folder itself. Does anybody know what I'm missing/getting wrong? Any help would be greatly appreciated!
Have you extracted the files from the zip folder?
@@TheNeonSyndicate I have now 😂😂 thank you !!
@@luna_lee_fae 😁
my pads and sliders are cc's but the sliders does not work, can you help me?
Set all functions to CC in the script but remember to change the MIDI channel, the first group of functions needs to be different from the second one
@@TheNeonSyndicate how can i do that? different channels or different cc's? i already set my sliders, pads, and knobs to different cc's,
@@emboyloyloy3232 It's all in the script notes. Check out the BUTTONCHANNEL and MESSAGETYPE parameters.
Hii rlly loved your video
Im working the customized midi template right now. i do have a question
U know how if u put one fader linked to master volume and like when u reach limit of fade it passes way above zero on ableton
would it possible to, on the template text file set the limit of it to 0??
Hey thanks. Man, I'm sure there's got to be a way to do that, but it won't be in the user-friendly map.py file. There's some code for that probably in one of the other files but that's a little beyond my expertise I'm afraid. Still, you could skim through it looking for words like "fader range" and see if you find something that makes sense
@@TheNeonSyndicate thank you so much for quick response. I will definitely look into that. Ill let u know if i ever find it :)
quick fix i just wen to my midi control center and set maximum level of fader to 109 out of 127 and it stops perfectly on 0!
Glad to hear that does the trick!@@angelorosa700
How do you get the changes to take effect immediately? Don't you have to restart Ableton for it to re-compile all the python files into pyc files?
Yup, that's exactly right. You quit Live, delete the cache folder, type in your changes in the mapping file and then re-start Live
Epic video thank you so much - just getting into Control Script editing and this is a fantastic digest. I was wondering with the track selection box - I have a group track (made up of 8 individual tracks) that I need to fold down during performance. Can I edit a script so that the track selection box includes the 8 hidden tracks in the group instead of spanning across the 8 visual tracks?
Hey thanks, glad it helped. I'm afraid this script works in such a way that it will always select the first 8 active tracks, so it'll always select the next 7 once you fold the first. You could try contacting the original developer though, he might be able to help you!
Hi, I have a weird python related issue if anyone can help. The name of my controller is "X-TOUCH MINI" in Ableton. That Hyphen does not work within code obviously. I tried using a variable, I tried escaping it with no luck. I can see it in Ableton if I use X_TOUCH_MINI within files and folders but it is not working with my mapping script. It shows up as X TOUCH MINI. Does anyone know how I can get it to display in Ableton as "X-TOUCH MINI" ? Thank you and thanks for keeping this project going!
Sorry to hear that. I think I remember someone mentioning a similar issue here in the comments, maybe have a quick skim through them, they might've found a solution!
@@TheNeonSyndicate Found the comment. XTOUCH_MINI works. Thanks again for your content and contribution to the project.
@@ayoabe Glad to hear you were able to get it to work!
Nice explanations !!! Lately I`ve been using little midi > OS keyboard shortcut converter called Coyote Midi . Surprisingly it more simple to setup instead doing hack and write custom midi remote scripts .
You just need to know which shortcut needed for specific task you want , then translate( map ) our midi key/button/slider/knobs into those shortcuts .
For my DIY Arduino midi controller, I`m only using 3 knobs and 10 buttons for most important shortcut in my workflow
Sounds pretty cool! Is it free?
@@TheNeonSyndicate the free version should be enough for most case .
@@morizanova Gotcha. Gonna have to check that out then. Thanks for the suggestion!
@@morizanova Found the catch - Windows only 🥲
Hi brother? How could I know what Midi number is every note sending out?
Depends on your controller. Check out your manual
Thanks for the knowledge! Is there a way to bring the number of encoders to 16 instead of 8 ?
Don't think that's possible BUT if you have 2 spare buttons you can assign them to DEVICEBANKNAVLEFT and DEVICEBANKNAVRIGHT to switch between different banks of 8 parameters each. This way you can control them all really - 8 at a time, that is. If you have 8 buttons to spare, you could even assign them to DEVICEBANK so you can select which of the 8 available banks of 8 parameters each you want to control at any given moment
Great idea! However i couldnt get this script to work, im using the latest 11.3.11 and all the files in midi scripts are pyc not py 😢
@@GucciGascon That is because when you first launch Ableton, it scans the remote scripts folder, identifies your .py files and creates a "pycache" folder with the .pyc files it then references from that moment on. So what that means for you is: any time you make a change to your map.py file, you need to delete that cache folder in order for Live to stop referencing it and rescan your .py files, become aware of your edits and then recreate that cache folder. Does that solve your problem or was it something else?
What a great Video!
How did you set the presets on the iRig Pads?
Are these custom as well?
Thanks for your content!
Yeah, I changed some of the controls there, too, but it's not really necessary: for the most part you can just keep them as they are and then use those note & CC numbers in your mapping file
@@TheNeonSyndicate cool 😀 so these Scenes are made with the 14:34 mapping file?
@@marcocaviezel2672 Yeah. But again, that's no the important part: the important part is that the numbers you write into the file correspond to the numbers being sent out by your controller. So long as you make sure that's the case, what those numbers are doesn't really matter
Great video! I also own an irig pads ... Can you please pass the script to control it? Thanks alot
Thanks! That wouldn't do you any good though I'm afraid, my scripts just wouldn't work because a) I have changed the default settings on my iRig Pads so they send out different MIDI messages than the default ones and b) I pass all of those through MidiPipe for some extra message conversion. So basically what reaches Live coming from my controller is completely different from what would come from yours, and therefore the script would need to be adapted to your controller anyway. And anyway, asides from that, this script is one that suits my needs and my workflow, and yours (probably) differs from that. Might as well just use these instructions I provided you with to make your own script that a) is compatible with your controller and b) work best for you 😉
Hey, thank you so much for this Great Video!!
I'm on windows and trying to setup my midi foot pedal as a controller.
I'm converting the midi messages via MIDI-OX since my pedal only outputs "PC" Messages.
Ableton Detects everything and all the functions which I need works, except one.
The Session Navigation seems to have a problem. it doesn't move the red box one scene at a time.
it goes all the way up/down when i press the mapped SESSIONUP/SESSIONDOWN button and also the same thing with right/left.
Hey i have fixed it!!
Just posting the solution for anyone else facing the same issue.
MIDI-OX was converting the "PC" to just "note on" Messages.
the Session Navigation box(Red Box) was not getting a "note off" message so it would go all the way down/up or right/left.
in MIDI=Ox i duplicated the "PC" message twice and made it output a "note on" followed by a "note off"
That seems to do the trick.
Love it when you find a solution before I even read the comment 👏 @@JamesBritto
Hi again, I've been having loads of fun looping with my midi pedal after connecting it as a control surface with your midi script. can't thank you enough.
I'm just missing one function in the MIDI_Map file, the "Track Launch" button. (not the Clip Launch)
I'm sure i went through the whole file and was not able to find that function.
is there some way to add this to the MIDI_Map File?
Thank you🙂
Good to hear that! What do you mean exactly by "track launch"? What kind of action do you want it to perform?@@JamesBritto
This button doesn't show up by default. It appears above the I/O section in Session view when you enter midi/key map mode. It looks like a play button. It can launch any clips in a particular track depending on where the scene selector is in that Instance.
Brilliant Video and really well explained. I am wondering if you could please help? what I am trying to do is much simpler than the complex script you set up for your iRig. I have 2 Arduino Leonardos one has 4 encoders, 4 faders and a x,y, joystic the other has 6 encoders and a x,y, joystic. I just want them to be recognised as 2 individual surface controllers so that I can midi learn and assign them to a plugin and save the rack/plugin as default. I know all the encoder cc numbers as I set them on the controller myself. I just want to get more use out of them. Any help or advice would be greatly appreciated. Thank you
Thanks. So when you connect both to your DAW, do they appear as 2 separate MIDI controllers?
Yes Arduino Leonardo and Leonardo # 2@@TheNeonSyndicate
I had another look at the video lastnight and if I am in the ball park for what I need do I just input my cc numbers that are being outputted from the arduino into the last paragraph of text 'The Parameters' so that I will then have macros that can be saved per plugin and not just project based saved as they currently are at the moment. The faders act as macros when mapped in project based saves. Both arduinos are currently on midi channel 1. Last question : could I write 2 more lines of text so that I have 2 more parameter added as in 10 parameters so that 4 pots 4 faders and a seperate x and y for the joystick are mapped and recognised within ableton?
I am so sorry for the questions but I am trying to reassure myself to feel confident in setting up 2 custom user folders for the Arduinos.
Thank you
@@roymitchell5894 You are right in that this method is not project based, that's one of its strengths. The thing though is, you're gonna need to create 2 custom MIDI scripts, one for Leonardo and one for Leonardo #2. So the whole process outlined in this video, you're gonna need to go through 2 times. In each map.py file you can then do the assignments as you please. As far as adding 2 lines of code, that is not gonna work I'm afraid. You can, however, control macros 9-16 with your same 8 faders by just switching to the next device bank - there's a line for that in the map.py file. Just need to save one or two controllers to switch back and forth
Thank you so much for all your time and support it's really really appreciated. Thank you ❤@@TheNeonSyndicate
Thank you
Happy to help
Great video could you please demonstrate how to script different modes and presets for any controller knob or button for example a button in mode 1 will navigate tracks and in mode 2 it will navigate devices. Another thing could be shift button for temporary changes in any preset. My controller is Akai Midi mix
Thank you. That's actually quite easy to implement, here's what you need to do. First, create different presets on your controller. For instance, you could set a certain button to send out MIDI note number 1 on preset number 1 and MIDI note number 2 on preset number 2. How to do that differs between MIDI controllers, I can show you how to do that on the iRig PADS but I have no idea how that would work on the Akai, so you're gonna have to check the manual for that. Anyway, step number to would be to associate those 2 different MIDI notes to 2 different functions in your "map.py" file. For instance, you could associate MIDI note 1 to the "tempo tap" function and MIDI note 2 to "playback start". And that's pretty much it! Now when you use preset 1 on your controller, your button is gonna trigger the tempo tap function, whereas when you switch to preset number 2, it's gonna start the playback of your song.
@@TheNeonSyndicate Thanks for your reply. Unfortunately in midimix manual it says you can save one preset at a time and must load any other manually by its software
But i heard from some that it can actually change the presets by its own buttons that are assigned differently but i don't know how
@@THQSLRT aw man that sucks
@@THQSLRT Yeah, makes sense that they would enable you to do so. Only 1 preset at a time sounds like a little too little
Great script!👍
Thanks! Hopefully this helps
many thanks !! it helped a lot :)
Glad to hear that 👍
Hi! Great tutorial. I'm having trouble in Windows. I installed the folder in the MIDI Remote Scripts folder but Ableton won't recognize it as a Contorl Surface, and after doing that, the only control surface that shows up is Push 2. All the other ones have disappeared. Any ideas? I'm using Live 11.2.11
Ok, first thing I'd do is, I'd update to the latest release (11.3.4). Other than that, did you get any error message?
@@TheNeonSyndicate thanks! I updated and now it shows correctly. But I'm having trouble making it work. I change some midi maps just to try if it worked, set message type to 1 (cause my controller sends CCs), changed buttonchannel and sliderchannel to 1 (which is the channel my controller sends to) and I also tried different channels for buttonchannel and sliderchannel. Any ideas on why it won't work? I am using a custom controller made with Arduino, but I double checked the name of the controller and with a midi monitor that it's sending the correct messages.
@@francochiabudini995 That's the issue right there: if you use CCs for both the buttons and the sliders, the channels need to be different. My piece of advice would be to keep the buttons set to notes and make it so that your controller sends out notes instead
@@TheNeonSyndicate now it works with CC! Thanks. Do you know if it is possible to assign different cc values from the same button for different functions? For example, when I press (127) it arms a track, and when I release (0) it triggers loop recording.
@@francochiabudini995 That's an excellent trick I use quite a lot, but in order to make it work you actually have to use 2 different CCs. But with something like MidiPipe you can make it so that your 1 CC assigned to your physical knob turns into 2 different CCs depending on its value. So yeah, totally doable but you need that extra piece of software
Thank you!!!
My pleasure!
thanks dude
Pleasure. Have fun!
Thank you, brother!
My pleasure. Have fun!
Worksss greaaatttt
enjoy 🤘
I customized the files, colored box appeared but I can't map the cc notes. in my case 45 is play cc note but when I entry the 45 to file global play section it's not working. please help!!
BUTTONCHANNEL = 0 # Channel assignment for all mapped buttons/pads; valid range is 0 to 15 ; 0=1, 1=2 etc.
MESSAGETYPE = 1 # Message type for buttons/pads; set to 0 for MIDI Notes, 1 for CCs.
# When using CCs for buttons/pads, set BUTTONCHANNEL and SLIDERCHANNEL to different values.
when I change the "messagetype" value to "1", i can manage to assign buttons but the faders. when its "0" I can only assign faders.. please guys help me
I would leave the MESSAGETYPE set to 0 and use actual MIDI notes for the buttons instead of CCs. Any way you can set up your controller so that your buttons send notes instead of CCs?
@@TheNeonSyndicate thank you so much for reply. in editor which is worlde easy control 9, I only see CC notes. there is not any midi notes option to select.
Hey no problem. But see this is where I get confused. What do you mean "CC notes"? It's either CCs or notes as far as I know right?@@leadpain
@@TheNeonSyndicate it's my bad sorry, I mean CC number not note. worlde easy control 9 is looks and functions like korg nanokontrol 2. it has no pads only slider, knob and button it has so in the editor I can only assign CCs. I'm using Live 11.3.10 is this version can make any trouble about codes?
Ah ok understood! So since you cannot assign your controllers to notes, you have to stick with CCs. So yeah, you need to set the MESSAGETYPE parameter to 1 like you did. Remember though: that means that the MIDI channel now needs to be different from the one you're gonna use for SLIDERCHANNEL. So for instance you could set BUTTONCHANNEL to 0 and SLIDERCHANNEL to 1, and set the nanokontrol's buttons and sliders accordingly @@leadpain
Wow😯
Yup, that's the one
Anyone with Windows, if you can let me know where that folder needs to go to please let me know
should be \ProgramData\Ableton\Live x.x\Resources\MIDI Remote Scripts\
You keep saying "Midi Note"....do you mean midi note? or is it the Midi CONTROL number? Because your values seem to be linear and this video is actually confusing.
Usually when I say note, I mean note. Most of the functions here in the script work with midi notes. But hey. I'm not perfect. Could you give me a specific example?
@TheNeonSyndicate Im not saying you are wrong...from a coding standpoint, I am wondering if its note on off or midi cc etc
@TheNeonSyndicate so for each control you literally went 1, then 2, 3, 4 etc...to me that signifies a control number not a note
@@linzenmeyer I see. Well, those are, in fact, MIDI notes. I'm simply using numbers instead of letters, because that's how the script works - in other words, it doesn't accept, say, "D#4". It's just a different notation is all. So, for instance, the lowest possible MIDI note, which I believe is C-2, would be 0, the next, C#-2, would be 1, etc.
@@TheNeonSyndicate ahhh..ok, very good, I understand it now. Thank you.
Doesnt work on 12
Good news: it does! You need to double-check the process, you've probably got some naming wrong or something, that's all!
@@TheNeonSyndicate I'm trying this with an Akai fire controller it's named" FL STUDIO FIRE (Jack 1)
but when modifying the files it doesn't show up under control surfaces
@@TheNeonSyndicate Is there a way to make pages? or a shift button?
@@TheNeonSyndicate Ok I tried again first I forgot to add the underscores instead of the spaces... But still no result it does not show up. Was hoping it would work as I also took time to look for the midi cc's and then added em to the midi/map file
I made the name FL_STUDIO_FIRE_(Jack_1) as in ableton it comes up as FL STUDIO FIRE (Jack 1)
@@TheNeonSyndicate It showed up as FL_STUDIO_FIRE but the midi controls added do not work lol
Amazing video!
Thanks, glad to hear you enjoyed it!