LiveEnhancementSuite / LESforWindows

Ableton Live, supercharged (on Windows)
https://enhancementsuite.me/
MIT License
204 stars 22 forks source link

[Feature] Support Live 12 (Beta) #40

Open enoversum opened 10 months ago

enoversum commented 10 months ago

Hey @Inversil , I know it's quite early, and I totally get that Live 12 isn't yet ready for shipping, or completely finished, so things might change until then. It however appears that Live's new browser, as powerful as it just got, won't accept a typical LES search to some extent.

If you pick an item from your double-right-click menu, you can see it being typed into Live's browser, then Live swallows it whole, until you re-click your menu item, then Live re-searches, then finds and opens the corresponding item. Meaning, you'd always need two searches for one and the same search to actually load your search result. I can probably create a screencast, but there is really not much more to it than what I described. Live 12 took over my L11 settings, so apart from new features and shortcuts and the likes, my settings haven't changed.

enoversum commented 10 months ago

https://github.com/LiveEnhancementSuite/LESforWindows/assets/8190174/1185e4ea-6b46-4b3f-9b9a-66bc68d109db

Okay, here is a quick demo of the issue. Loaded a fresh new set with minimal devices, so a high CPU strain can't be the reason.

IOnlyFetchBranches commented 8 months ago

Just wanted to say I get the same behavior, anything we can do to help? Would love to understand this code more ;)

Love LES a ton and it was weird going without it, thats forsure

IOnlyFetchBranches commented 8 months ago

Also, i dont know much about AHK, but i spent a few hours speed learning and i think i made a rudimentary fix that may perhaps help anyone else having this issue.

In short, im not happy with it, i just changed it so it runs the selection twice, i also added a delay in between the down arrrow and the enter key send event, after noticing a bit of desync, or what i think was desync, again, new to this.

https://github.com/LiveEnhancementSuite/LESforWindows/assets/23384158/5903a192-3219-4508-ade4-af7904cd6df7

No guarantee it works for you, but i know for me LES is super essential to my workflow so i had to figure out some dumb workaround. Don't bite me once it starts opening your plugins twice in the future ;P

These are the only changes i made, and who knows if it will break at next patch, just figured i'd share in case it comes in handy for anyone else image

The much smarter dev of the project will come up with a better fix i'm sure :)

Edit: funnily enough, after a little testing, it did add it twice, so i think the key is in the delay there and splitting the send command, just a hunch, but yea, if you have that problem, set the loop back to one, to reiterate, keep line 1156 as it is, then compile your own copy, theres a chance it may start working for you too.

sorry; again, i'm a c# dev LOL

jones0170 commented 6 months ago

Hi, I am not trying to hijack this issue thread. It seems Live 12 is dropping on 3/5. Any chances of this beautiful work, that has become my total workflow process... continuing on in Live 12? I have not a clue on what changes there would be, as it seems there is a lot of changes, underneath the Live 12 hood, with shortcuts. Lots remain the same, however. Just curious and thank you for any insight you can provide, as well as providing us with such a great tool.

DirkDingleberry commented 6 months ago

Hi, I am not trying to hijack this issue thread. It seems Live 12 is dropping on 3/5. Any chances of this beautiful work, that has become my total workflow process... continuing on in Live 12? I have not a clue on what changes there would be, as it seems there is a lot of changes, underneath the Live 12 hood, with shortcuts. Lots remain the same, however. Just curious and thank you for any insight you can provide, as well as providing us with such a great tool.

I'm hoping for this as well! Currently on the beta, and LES almost works. You can add devices from the right click menu, but you have to do it twice for it to work for some reason, so it's much less efficient currently. I hope it's an easy fix!

IOnlyFetchBranches commented 6 months ago

hmmm, in case you guys are on windows and.. just dont wanna compile ur own AHK script, you can give this a go. I just used the innosetup script they provided -- however i recommend reading the readme and building your own copy incase the timings i tweaked dont work for you. If it doesn't work for you, you can follow my last post to try to tweak your own timings. You can rename your current LES (Under %UserProfile%\Documents\LES) to (name)_backup.exe, then install this one if you'd like.

I've been using this edit since i got beta access and it still works fine. Hopefully the dev will drop a final build once live 12 has been out some time + they are prolly busy with other things lol. I only ask that you give it a heart if it works for u thx, if it doesnt work, i'm sorry friend

Happy producing

https://drive.google.com/file/d/15uFKVPrCP1J0W0qj8icGOFWu01oS_9j7/view?usp=sharing

DirkDingleberry commented 6 months ago

Thank you Branches! I'm a noob when it comes to most things and I've never compiled my own code, so this was very helpful.

Smopraq commented 6 months ago

[IOnlyFetchBranches] Thanks, that works suprisingly well!

On another note, not sure this is the place for this, but: feature request: Shortcut keyboardcommand for the new combined freeze & flatten function? Ctrl+Alt+F for example.

Official ableton notes: You can now freeze and flatten tracks in a single step using the new "Freeze and Flatten Track" command. This command can be found in the Edit menu, or the right-click context menu of a Track Title Bar.

IOnlyFetchBranches commented 6 months ago

[IOnlyFetchBranches] Thanks, that works suprisingly well!

On another note, not sure this is the place for this, but: feature request: Shortcut keyboardcommand for the new combined freeze & flatten function? Ctrl+Alt+F for example.

Official ableton notes: You can now freeze and flatten tracks in a single step using the new "Freeze and Flatten Track" command. This command can be found in the Edit menu, or the right-click context menu of a Track Title Bar.

not the right place at all bud, please keep it on topic.

You can open another issue, but this one is about compatibility with live 12. I can look into it though, when i have time. Also I wanna look into if its possible to incorporate the new filters into search so that maybe we can finally escape the age old "echo" opens "alter echo" because it because "alter echo" begins with a and contains "echo"

That could def take some work though.

enoversum commented 6 months ago

[IOnlyFetchBranches] Thanks, that works suprisingly well! On another note, not sure this is the place for this, but: feature request: Shortcut keyboardcommand for the new combined freeze & flatten function? Ctrl+Alt+F for example. Official ableton notes: You can now freeze and flatten tracks in a single step using the new "Freeze and Flatten Track" command. This command can be found in the Edit menu, or the right-click context menu of a Track Title Bar.

not the right place at all bud, please keep it on topic.

You can open another issue, but this one is about compatibility with live 12. I can look into it though, when i have time. Also I wanna look into if its possible to incorporate the new filters into search so that maybe we can finally escape the age old "echo" opens "alter echo" because it because "alter echo" begins with a and contains "echo"

That could def take some work though.

You could circumvent such behaviour by creating a preset for your Live device or plugin and name it exactly the way you named your preset, in quotes, as in: "My lovely device.adg". Had the same trouble, and could amend all those false results by it.

IOnlyFetchBranches commented 6 months ago

[IOnlyFetchBranches] Thanks, that works suprisingly well! On another note, not sure this is the place for this, but: feature request: Shortcut keyboardcommand for the new combined freeze & flatten function? Ctrl+Alt+F for example. Official ableton notes: You can now freeze and flatten tracks in a single step using the new "Freeze and Flatten Track" command. This command can be found in the Edit menu, or the right-click context menu of a Track Title Bar.

not the right place at all bud, please keep it on topic. You can open another issue, but this one is about compatibility with live 12. I can look into it though, when i have time. Also I wanna look into if its possible to incorporate the new filters into search so that maybe we can finally escape the age old "echo" opens "alter echo" because it because "alter echo" begins with a and contains "echo" That could def take some work though.

You could circumvent such behaviour by creating a preset for your Live device or plugin and name it exactly the way you named your preset, in quotes, as in: "My lovely device.adg". Had the same trouble, and could amend all those false results by it.

yea i know, and i do that, however it just feels... dirty. i can't help but think there is a bettter way with the new filter system

enoversum commented 6 months ago

[IOnlyFetchBranches] Thanks, that works suprisingly well! On another note, not sure this is the place for this, but: feature request: Shortcut keyboardcommand for the new combined freeze & flatten function? Ctrl+Alt+F for example. Official ableton notes: You can now freeze and flatten tracks in a single step using the new "Freeze and Flatten Track" command. This command can be found in the Edit menu, or the right-click context menu of a Track Title Bar.

not the right place at all bud, please keep it on topic. You can open another issue, but this one is about compatibility with live 12. I can look into it though, when i have time. Also I wanna look into if its possible to incorporate the new filters into search so that maybe we can finally escape the age old "echo" opens "alter echo" because it because "alter echo" begins with a and contains "echo" That could def take some work though.

You could circumvent such behaviour by creating a preset for your Live device or plugin and name it exactly the way you named your preset, in quotes, as in: "My lovely device.adg". Had the same trouble, and could amend all those false results by it.

yea i know, and i do that, however it just feels... dirty. i can't help but think there is a bettter way with the new filter system

There might be, I honestly haven't had the time to try out Live 12 really, as the Beta versions had a nasty VST plugin scaling bug (plus no LES compatibility), and now I'm working full-time on building a little studio :) .

What project did you mean ^^?

IOnlyFetchBranches commented 6 months ago

[IOnlyFetchBranches] Thanks, that works suprisingly well! On another note, not sure this is the place for this, but: feature request: Shortcut keyboardcommand for the new combined freeze & flatten function? Ctrl+Alt+F for example. Official ableton notes: You can now freeze and flatten tracks in a single step using the new "Freeze and Flatten Track" command. This command can be found in the Edit menu, or the right-click context menu of a Track Title Bar.

not the right place at all bud, please keep it on topic. You can open another issue, but this one is about compatibility with live 12. I can look into it though, when i have time. Also I wanna look into if its possible to incorporate the new filters into search so that maybe we can finally escape the age old "echo" opens "alter echo" because it because "alter echo" begins with a and contains "echo" That could def take some work though.

You could circumvent such behaviour by creating a preset for your Live device or plugin and name it exactly the way you named your preset, in quotes, as in: "My lovely device.adg". Had the same trouble, and could amend all those false results by it.

yea i know, and i do that, however it just feels... dirty. i can't help but think there is a bettter way with the new filter system

There might be, I honestly haven't had the time to try out Live 12 really, as the Beta versions had a nasty VST plugin scaling bug (plus no LES compatibility), and now I'm working full-time on building a little studio :) .

What project did you mean ^^?

I'm sorry i got you mixed up with @Inversil T_T

You guys have very similar names to my ADHD brain i suppose? haha Ouch about the bug, i've been loving 12 so far.. i only wish i'd gotten access to the beta sooner. maybe i could've done more when i was in between projects.

best of luck with the studio though, i just got some adams t7vs in for mine, but i still have a little bit more sound maxxing to do :-)

enoversum commented 6 months ago

[IOnlyFetchBranches] Thanks, that works suprisingly well! On another note, not sure this is the place for this, but: feature request: Shortcut keyboardcommand for the new combined freeze & flatten function? Ctrl+Alt+F for example. Official ableton notes: You can now freeze and flatten tracks in a single step using the new "Freeze and Flatten Track" command. This command can be found in the Edit menu, or the right-click context menu of a Track Title Bar.

not the right place at all bud, please keep it on topic. You can open another issue, but this one is about compatibility with live 12. I can look into it though, when i have time. Also I wanna look into if its possible to incorporate the new filters into search so that maybe we can finally escape the age old "echo" opens "alter echo" because it because "alter echo" begins with a and contains "echo" That could def take some work though.

You could circumvent such behaviour by creating a preset for your Live device or plugin and name it exactly the way you named your preset, in quotes, as in: "My lovely device.adg". Had the same trouble, and could amend all those false results by it.

yea i know, and i do that, however it just feels... dirty. i can't help but think there is a bettter way with the new filter system

There might be, I honestly haven't had the time to try out Live 12 really, as the Beta versions had a nasty VST plugin scaling bug (plus no LES compatibility), and now I'm working full-time on building a little studio :) . What project did you mean ^^?

I'm sorry i got you mixed up with @Inversil T_T

You guys have very similar names to my ADHD brain i suppose? haha Ouch about the bug, i've been loving 12 so far.. i only wish i'd gotten access to the beta sooner. maybe i could've done more when i was in between projects.

best of luck with the studio though, i just got some adams t7vs in for mine, but i still have a little bit more sound maxxing to do :-)

Alright, no worries then. Already thought you didn't mean me 🙂.

The bug was nasty, and had me not use L12 entirely. I'm glad they fixed it for the release version (which has bugs and issues of its own, as far as I've read). In Live's Beta forums, Ableton is more interested in getting to know and fixing actual bugs. There is a very active discussion about legacy shortcuts suddenly dropped in Live 12, with some rather strange new ones, and they didn't really react and bring back shortcuts before release. Very confusing, but I'm not sure how much you could have shaped Live 12 in an active way.

Thanks, I'm a web designer and musician, and not a builder, but it's so fantastic (and exhausting) to actually BUILD a studio, that is, up from its foundation, including walls, roof, windows, floor etc. Not just decorating and optimising a room. But we're getting rather off-topic here.

mpusch88 commented 6 months ago

Just wanted to throw in that I would love to see LES receive Live 12 support - currently i have about a 1 in 10 chance of things actually opening after the search menu quickly highlights the correct item then disappears.

Inversil commented 6 months ago

Unfortunately I won't be officially updating LES to support live 12 but feel free to make a fork. I just got too busy and I'm not even using live anymore for my main productions. I put up a blog page on the website earlier today to explain why. thank you so much for your continued support :-)

https://enhancementsuite.me/discontinued

I've been keeping the project on life support for a few years now and apart from kittywhisker's help I have never received any pull requests or people helping reduce the workload, so it is what it is. It seems that most people here are just trying to make music, not tools. And for better or worse, I'm the same.

If anyone ever needs any assets from me or anything to make a fork project I will gladly provide them.

Inversil commented 6 months ago

as a sidenote; since our paths will likely split from now on I would really like to wish you guys good luck with music making; it seems everyone is at it and working hard- and I love to see that.

If you mind me indulging: here's a small additional ramble

Small rant about DAW design
Reading the discussions surrounding Live 12 really has me feeling that, even though most of LES has been invalidated now, Ableton themselves haven't changed much. I'm sure there are developers there who are speaking up for loud voices in the community, but there were some rumors a while back that it's extremely difficult for Ableton employees to actually get these suggestions off the ground as development processes. To a certain degree I understand this hesitation. Image Line tends to be more direct in responding to user feedback. FL studio, while an amazingly powerful program- obviously has a ton of conflicting design choices. I very heavily feel that FL studio attempts to accommodate too many different workflows at once, causing none of them to really be streamlined and ideal- incentivizing a non-committal multi-workflow which results in unorganized (and infamously difficult to multi-thread and PDC) project files. I can see why the lead developers at Ableton are very wary about responding quickly to user feedback in an attempt to make a timeless piece of software. it's often memed about how little Live has changed since its initial version- but I think this is extremely impressive, and something they take pride of internally as well. However, I just think that even if you're the most epic developer of all time, it's still impossible to predict the user experience at the end of the day. This is why game development teams hire hordes of external QA testers. You don't know how things will be perceived until you ask someone who hasn't seen it before. I think it's important to respond to these types of things quickly. I think these days, more and more, the stubbornness of Ableton's internal structure is getting in their way. I mean, have they really addressed any of the internet discourse about the program during the beta? I think a big example of this system failing internally is the modulation matrix in wavetable, and now also in meld and roar. Its functional in isolation, but considering a larger scope, it's in complete conflict with their own design language! They already have this extremely intuitive and timeless serum-like interface for mapping and managing macros, but rather than using that- we have to use this early 2000s vst style modulation matrix to map parameters. While I don't think Ableton has no QA testing at all., it's very obvious to me they have a very particular type of QA tester. Especially people who don't make particularly large project files- it seems most components are tested and reviewed in isolation. For me, and I've told them this, I think the biggest problem in Ableton Live is how slow it is at parsing the project format, and how this can stall up the main UI thread for multiple seconds after every update once the table gets too bloated to parse in the main thread in real time. A reason we're getting these modulation matrixes is because ableton knows there are PDC issues with cross device modulation, and max for live device stability. The remaining work is really more fundamental, but this type of development is extremely expensive. But I think, from a business perspective, it's much more profitable and important for Ableton to create new pushes and new devices to advertise, so it might be a while until the problem becomes big enough for the general public to be worth addressing with high priority. I don't really have time to wait for that
enoversum commented 6 months ago

@Inversil As a musician, a web developer, designer and someone experienced with bug tracking, I can totally understand your sentiment. All hesitation to tidy up and listen (more) to the community aside, I also understand that Ableton not only want to make current customers as Live users happy, but also need to stay competitive, so one feature or another seems to cater for exactly that purpose: stay relevant and fresh. I can also see that other DAWs are going very different routes, while providing a basic Live-esque feature set, or even expand on it and build their own version. That being said, I'm just curious—which DAW do you personally feel at home now, and use instead of Live? The only real alternative, from what you're writing, would be Bitwig.

That aside, what I always enjoyed most about LES was the right-click menu. And while the browser has gotten a huge update, it didn't feel intuitive when I first opened it (and still doesn't; no folders at all?), and still couldn't replace my hown-grown LES menu that just gives me what I need very, very quickly. So, even if you're thinking most features are now obsolete with Live 12, the most important one, for me, is still missing.

Thanks for all your honesty, for all your work and the time you took to go in-depth about your thoughts on Ableton and Live. I'm very sad you let LES go (again), but wish you all the best for your music. Ah, and the rest of your life 🙂.

Inversil commented 6 months ago

Yeah I'm sorry about the loss of the menu. The LES menu was really intended as a shorthand function for your favorite devices, rather than a replacenent for browsing plugins altogether; at first you could only add 100 items- but I got a lot of complaints about this with people trying to make 5000+ item menus so I quickly increased it.

The shorthand usecase is replaced pretty elegantly by something like shortcutbuddy- but if I still used live and wanted to sort 5000 plugins... hmm, I think I would use the new tagging system on .adv files to make "folders" of sorts.

It's not the intended usecase but.. my opinion on tagging systems is that, as long as they don't populate automatically, they are kind of useless. In live 12, rather than manually tagging all your claps as "clap", don't you think most people will just search for a file named "clap" and then soundalike search everything else?

The tagging system in live 12 was copied pretty literally from bitwig, and is equally clunky there- and I don't engage with it much lol. I don't really understand why they added it

And yeah, your read is correct; I've started doing my work inside bitwig. It's a great step in the right direction as far as im concerned, but it's not nearly as accessible as live is. I quickly realized that with bitwig's business model, it's in their best interest to keep their power users happy, which creates a healthy dynamic between the developers and the userbase.

Ironically enough, bitwig is quicker at opening ALS files than live is. This shouldn't be a thing at all, but it's great for me lol

IOnlyFetchBranches commented 6 months ago

Yeah I'm sorry about the loss of the menu. The LES menu was really intended as a shorthand function for your favorite devices, rather than a replacenent for browsing plugins altogether; at first you could only add 100 items- but I got a lot of complaints about this with people trying to make 5000+ item menus so I quickly increased it.

The shorthand usecase is replaced pretty elegantly by something like shortcutbuddy- but if I still used live and wanted to sort 5000 plugins... hmm, I think I would use the new tagging system on .adv files to make "folders" of sorts.

It's not the intended usecase but.. my opinion on tagging systems is that, as long as they don't populate automatically, they are kind of useless. In live 12, rather than manually tagging all your claps as "clap", don't you think most people will just search for a file named "clap" and then soundalike search everything else?

The tagging system in live 12 was copied pretty literally from bitwig, and is equally clunky there- and I don't engage with it much lol. I don't really understand why they added it

And yeah, your read is correct; I've started doing my work inside bitwig. It's a great step in the right direction as far as im concerned, but it's not nearly as accessible as live is. I quickly realized that with bitwig's business model, it's in their best interest to keep their power users happy, which creates a healthy dynamic between the developers and the userbase.

Ironically enough, bitwig is quicker at opening ALS files than live is. This shouldn't be a thing at all, but it's great for me lol

dang, really really sad to hear this. Its a sad week indeed, first Akira Toriyama now this T_T

My bud got me hooked on it (i guess super late) during live 11. Totally understandable though and i wish you the best of luck with everything 💯 Thanks for everything you've done ^^ (also your comments are so fantastic, i enjoyed reading through them)

My only ask is the best way to contact you, if say, i do decide to fork it and maintain it. I just use this waayyyy too much but also, i have no idea about the mac side of things nor do i have a mac, plus, i'm also like deep into my music journey. So overall, it would be nice to put out a request for devs/make a little group or something perhaps.

But anyways, concerns aside, it would still be cool to have a little project to tinker with on the side. If you could add me on discord 'yagurlreese' that would be sick, i won't spam, only use it to ask questions, ideally as infrequently as possible. But anyways, just would be nice is all and i'm open to link something like twitter or something too

For anyone else in the thread wanting a temporary patched version until we get a proper fork, feel free to check out my earlier post. All i can promise is that it works on my machine ;-)

Happy producing everyone.

MrMatch246 commented 6 months ago

If anyone ever needs any assets from me or anything to make a fork project I will gladly provide them.

First of all a BIG Thank you for LES! I completely understand why you stopped working on it, and id like to help out at least try to make things (the menu) working for live 12 again.

Could you maybe give some High Level Overview over the ahk code Like what functionality is where? Are there any super dirty hacks one should be aware of? do you have any toolchain for debugging to improve your workflow? That would help me get into it.

Inversil commented 6 months ago

@MrMatch246 I think you should be able to get it to work for live 12 just by adjusting the sleep timings under the "openplugin" subroutine, after some trial and error you should be able to fix the automation. (or maybe adding some additional key presses)

I did actually go through the code and add some comments to represent what every function does. LES was written in AHK 1.X, so it will bug out like crazy on 2.0. I wouldn't bother.

It should be relatively sorted and cleaned up; some finer details might not make sense initially- there is a lot of code here that ensures it works on as many systems as possible- or things to circumvent AHK jankiness. (or god forbid, live jankiness)

There are no native debugging tools in AHK or LES, so I just use message boxes to spit variables at me during development. it's real script kiddie shit. Message boxes interrupt execution until you hit "ok", so they work as a silly way to iterate through code step by step and make on the fly logs. Combine that with the hotreloads and it's fine. I recommend setting "enabledebug" to 1 in the settings file, so that the "restart" option becomes available in the tray. This will allow you to restart the program quickly and test changes. It's worth clarifying that in AHK "reload" is a function that restarts the program, but in LES "reload" only calls a subroutine that refreshes the right click menu contents and settings file, so that parts of it can be called to refresh the menu while you open it.

AHK comes with a script called "WindowSpy" which you can use to view window properties of active windows. if you wanna get crazy with it, that will help.

When LES starts it just executes all the prep code top to bottom until it reaches a line that says "goto hotkeysmain", which will take the execution over to a section where I state all the shortcuts that trigger subroutines. This is basically the heart of the program and if I ever need to find something; I go to hotkeysmain and find the subroutine name for whatever shortcut I wanna tweak. Some of the mouse shortcuts use the old syntax; because for some reason doing it with "hotkey" broke it on some mice. these are positioned right above the hotkeysmain section. The double right click stuff is right below.

You should be able to go from there.

The most complicated parts of the program are the reload routines and the parser for the menuconfig, but those should be version agnostic- you shouldn't really have to touch them.

If you want to make changes specific to live 12 and retain live 11 compatibility, you can separate the changes with if statements; like - if (WinActive("ahk_exe Ableton Live 12.exe" = 1)){ [code here] } etc.

good luck!

EDIT: Final note; you'll find some "loop, 1 {}" loops in the program, these don't actually do anything; they just allow me to hide parts of code in my IDE like how you can close groups in live.

IOnlyFetchBranches commented 6 months ago

@MrMatch246 I think you should be able to get it to work for live 12 just by adjusting the sleep timings under the "openplugin" subroutine, after some trial and error you should be able to fix the automation. (or maybe adding some additional key presses)

I did actually go through the code and add some comments to represent what every function does. LES was written in AHK 1.X, so it will bug out like crazy on 2.0. I wouldn't bother.

It should be relatively sorted and cleaned up; some finer details might not make sense initially- there is a lot of code here that ensures it works on as many systems as possible- or things to circumvent AHK jankiness. (or god forbid, live jankiness)

There are no native debugging tools in AHK or LES, so I just use message boxes to spit variables at me during development. it's real script kiddie shit. Message boxes interrupt execution until you hit "ok", so they work as a silly way to iterate through code step by step and make on the fly logs. Combine that with the hotreloads and it's fine. I recommend setting "enabledebug" to 1 in the settings file, so that the "restart" option becomes available in the tray. This will allow you to restart the program quickly and test changes. It's worth clarifying that in AHK "reload" is a function that restarts the program, but in LES "reload" only calls a subroutine that refreshes the right click menu contents and settings file, so that parts of it can be called to refresh the menu while you open it.

AHK comes with a script called "WindowSpy" which you can use to view window properties of active windows. if you wanna get crazy with it, that will help.

When LES starts it just executes all the prep code top to bottom until it reaches a line that says "goto hotkeysmain", which will take the execution over to a section where I state all the shortcuts that trigger subroutines. This is basically the heart of the program and if I ever need to find something; I go to hotkeysmain and find the subroutine name for whatever shortcut I wanna tweak. Some of the mouse shortcuts use the old syntax; because for some reason doing it with "hotkey" broke it on some mice. these are positioned right above the hotkeysmain section. The double right click stuff is right below.

You should be able to go from there.

The most complicated parts of the program are the reload routines and the parser for the menuconfig, but those should be version agnostic- you shouldn't really have to touch them.

If you want to make changes specific to live 12 and retain live 11 compatibility, you can separate the changes with if statements; like - if (WinActive("ahk_exe Ableton Live 12.exe" = 1)){ [code here] } etc.

good luck!

EDIT: Final note; you'll find some "loop, 1 {}" loops in the program, these don't actually do anything; they just allow me to hide parts of code in my IDE like how you can close groups in live.

Hey thanks so much for the info! This will help...

Another tip i'd like to give is i was actually able to get it debugging with VS code AHK addons, it worked quite well for my purposes and is how i even learned enough to fix it. It was good enough for breakpoints and stepping through the code in VSCode so shouts out to that. I had problems initially getting it recognize that it was AHK1.. i forget what i did to get around that but it wasn't too hard and also i just figured it was newbie problems so i didnt bother to document T_T so sorry guys. I def prolly spent more time getting that all setup haha! Relatively speaking... but it made it soo much easier to work with. I'll def be checking out WindowSpy though, that seems super cool.

I can confirm that the fix was to modify the sleep timings, thats how i fixed it if you check my initial post i show the exact lines actually.

@MrMatch246 if you end up starting a fork repo def lemme know, i could tag in on it in my free time. but i think it'll bebest for the long term health of this app if we can get a small group going of maintainers. Open source can be so hard, but i can't understand why a tool as useful as LES, admired by so many could just be left to die. Doesn't sit right with me.

It'll surely be a great task to rewrite in AHK2, but no doubt it needs to be done. With my own build i am noticing wonkiness when ableton is under load (the GUI lags like crazzzyy now, even on my 3090/7950x which is wild to me)

Haha, funny you should mention the reload routines and menu parser, those lines had me scratching my head a bit, but i sorta understand it :3 I Do wish there was a better way to handle the menu actions rather than a huge file (menuindex.ahk) but i agree i couldn't immediately think of a solution to that, but i think it could clean up quite a bit if there s a solution in AHK2 or future updates... or maybe through the use of some backing code written maybe in c# to handle that logic, just unsure how that would even fit into AHK code..

Thanks though for all you have done, and your program has helped me across many many hundreds/thousands of hours of creating over these past years ^_^

mpusch88 commented 6 months ago

I feel the same way that everyone else here has already described.. thanks a lot for creating LES, it has definitely saved me a lot of time.

I'd be happy to help maintain a new fork as well - I have the same username on discord should someone want to start something there!

MrMatch246 commented 6 months ago

I can confirm that the fix was to modify the sleep timings, thats how i fixed it if you check my initial post i show the exact lines actually.

Regarding this i tried your uploaded exe here and that fixed it for now, is that already on some pull request etc?

@MrMatch246 if you end up starting a fork repo def lemme know, i could tag in on it in my free time. but i think it'll bebest for the long term health of this app if we can get a small group going of maintainers. Open source can be so hard, but i can't understand why a tool as useful as LES, admired by so many could just be left to die. Doesn't sit right with me.

As IT guy and someone who has LES on autostart i would also not want this tool to die, i already helped with other scripts of other projects but with this tool the community contribution is really low afaik. And without really knowing it i think it might be due to the general usage of ahk. Its just nothing people "know" its not python where you can just look into it without even going to github or similar.. Which raises the question, if we rewrite it (i just pretend 3k lines aren't that much, sue me) does it make sense to do it without ahk? Are there alternative cross-platform libraries in commonly used language like java/c++/c# idk what would be a suitable alternative, im just asking the question.

It'll surely be a great task to rewrite in AHK2, but no doubt it needs to be done. With my own build i am noticing wonkiness when ableton is under load (the GUI lags like crazzzyy now, even on my 3090/7950x which is wild to me)

Assuming ahk2 isn't completely different, it shouldn't be that hard of a challenge, i mean there is ai to do the tedious work.(don't have the time right now to look into it but don't want to wait until i forget) EDIT: there seems to be a converter project

The lagging of ableton shouldn't be due to LES? If so, we should definitely rewrite.

jastro-dev commented 6 months ago

Also, i dont know much about AHK, but i spent a few hours speed learning and i think i made a rudimentary fix that may perhaps help anyone else having this issue.

In short, im not happy with it, i just changed it so it runs the selection twice, i also added a delay in between the down arrrow and the enter key send event, after noticing a bit of desync, or what i think was desync, again, new to this.

possible.fix.mp4 No guarantee it works for you, but i know for me LES is super essential to my workflow so i had to figure out some dumb workaround. Don't bite me once it starts opening your plugins twice in the future ;P

These are the only changes i made, and who knows if it will break at next patch, just figured i'd share in case it comes in handy for anyone else image

The much smarter dev of the project will come up with a better fix i'm sure :)

Edit: funnily enough, after a little testing, it did add it twice, so i think the key is in the delay there and splitting the send command, just a hunch, but yea, if you have that problem, set the loop back to one, to reiterate, keep line 1156 as it is, then compile your own copy, theres a chance it may start working for you too.

sorry; again, i'm a c# dev LOL

Hey! Just saw this post. Hope it's alright that I added this fix to my fork on github (gave credits). I also added things like shortcuts for track delay and return tracks since we lost that functionality with Live 12. https://github.com/jastro-dev/LiveEnhancementSuite-Live12/releases Hope this helps anyone!