Logitech / logi_craft_sdk

Provide (API) SDK specifications to map your app functions to Logitech Craft dial controller called "Crown".
575 stars 110 forks source link

Feature Request: Compatibility with Ableton Live and CC MIDI Signals #29

Open someofthem98 opened 4 years ago

someofthem98 commented 4 years ago

Dear Developers, Could someone develop an extension for Ableton Live & a MIDI signal outpu for the crown of the Logitech Craft? It would be a killer feature for all the musicians & producers. Many thanks in Advance

SaveTheHuman5 commented 4 years ago

Take a look, https://hi.computer/forum-community/talk-about-anything/logitech-craft-elephant/

cyberluke commented 3 years ago

Take a look, https://hi.computer/forum-community/talk-about-anything/logitech-craft-elephant/

But this is for Surface Dial. I found your forum thread and in 2020 you wrote that Logitech Craft support will not be possible, right?

marctdt commented 3 years ago

Take a look, https://hi.computer/forum-community/talk-about-anything/logitech-craft-elephant/

But this is for Surface Dial. I found your forum thread and in 2020 you wrote that Logitech Craft support will not be possible, right?

Hi @cyberluke I started to work on something for Ableton, so far I managed to make the crown scroll the browser. So I am curious to know why it is not possible? Is there some specific limitations?

Flyweightt commented 3 years ago

@cyberluke I also own a Craft keyboard. In the Logitec options software you can assign custom keys to the crown for scrolling.. But you need to enable developer mode. Any change your software can support the crown form the craft keyboard?

marctdt commented 3 years ago

@cyberluke I also own a Craft keyboard. In the Logitec options software you can assign custom keys to the crown for scrolling.. But you need to enable developer mode. Any change your software can support the crown form the craft keyboard?

@Flyweightt If you are interested I made some integration with Ableton. There 3 mode, Scroll browser, Mouse Wheel Mode simulation, and arrow button mode. It was made for Ableton 11 Beta. I didn't update it yet for the suite version. If there some interest, I can maybe update it. https://github.com/marctdt/LogicraftAbleton

cyberluke commented 3 years ago

@marctdt I'm on Github, so I'm developer. I google also a lot, I'm developer and googler. Already have developer mode, but only thing you can set is scrolling in 3rd party app, which I set to Arrow Up and Arrow Down. You cannot set any action for push and rotate. That is global action and you can map only like media keys or switch OS windows. The options are hardcoded.

I will check your extension. Can you please finish at least README.md? No problem with compiling stuff, but where to put it? Is it Ableton Python control surface script?

It would be great if you could navigate inside EQ plugin - navigate left and right for the knob and then change value. Because of this I think I will be buying Steinberg CC 121, which has awesome and complex Ableton support made by someone. This gives you channel strip functionality.

Right now I use Logicraft for changing volume or changing value inside a plugin. But the Ableton mixer is so poor. Reaper and Cubase are much better. It is difficult to read value on such tiny mixer. The best would be if you can put ballistic VU meter and also RMS read out values on something that is called Monitor channel in Reaper. That way you can put VST plugins that are processed automatically on the currently selected channel. Perhaps I can dig some Max4Live workaround script for that.

marctdt commented 3 years ago

@marctdt I'm on Github, so I'm developer. I google also a lot, I'm developer and googler. Already have developer mode, but only thing you can set is scrolling in 3rd party app, which I set to Arrow Up and Arrow Down. You cannot set any action for push and rotate. That is global action and you can map only like media keys or switch OS windows. The options are hardcoded.

I will check your extension. Can you please finish at least README.md? No problem with compiling stuff, but where to put it? Is it Ableton Python control surface script?

It would be great if you could navigate inside EQ plugin - navigate left and right for the knob and then change value. Because of this I think I will be buying Steinberg CC 121, which has awesome and complex Ableton support made by someone. This gives you channel strip functionality.

Right now I use Logicraft for changing volume or changing value inside a plugin. But the Ableton mixer is so poor. Reaper and Cubase are much better. It is difficult to read value on such tiny mixer. The best would be if you can put ballistic VU meter and also RMS read out values on something that is called Monitor channel in Reaper. That way you can put VST plugins that are processed automatically on the currently selected channel. Perhaps I can dig some Max4Live workaround script for that.

That's correct without specific integration you cannot do much with the knob and the action of push and push+rotate is not accessible from the API, which is the shame. I thought of some workaround to use the push which could by sending some special character and reinterpret it on the agent.

It's true that it is not really straight forward to install. I will try to give some instructions on the README.md . Basically it uses an agent made in .net to communicate with the craft restitute it to Ableton via some virtual midi port using the Python script. So you need to install a virtual midi port like loopMidi or BomeMidi Translator. Anyway the agent can also be used to simulate a mouse wheel to change parameters inside a plugin. I ve created some shortcut to switch from a mode to another.

If you need help I can try to guide you to install it. But notes that you will probably need to change some parameter as I made it with ableton 11 Beta. I will try to do that once I have freetime.

You can find the API for Ableton Python script here: https://structure-void.com/ableton-live-midi-remote-scripts/ . I was looking for some ways to change mode by pointing or clicking some parameters in Ableton. But I am still not sure if it's possible

cyberluke commented 3 years ago

@marctdt Perfect, thank you! I have loopMidi. I think your solution is currently the best approach for Logitech Craft!

The information for install is enough for me, thank you. I may help when I'm less busy (next month). Perhaps we could use regular key stroke and translate it to midi or your app. So the crown would control midi value, but I could change midi cc number using some premapped keys. Lets say Q W E R T Y. Each key stroke would select a knob in EQ or channel strip and then you would use crown to change its value. The goal is to make it more like mixing console, have less screen time and use ears more.

marctdt commented 3 years ago

@cyberluke I will try to update that this week end. Regarding sending midi CC, were you thinking of push+rotate? Unfortunately it doesn't seems to able to send Key stroke (see below) image Otherwise sending CC simple rotate should be possible.

Beside this, I think it may be possible to do what you suggested regarding using keyboard shortcut. The only issue is try to not make it conflict with other regular Ableton shortcut. We could also do double-tap or something else to change the eq parameter maybe.

cyberluke commented 3 years ago

@marctdt I was thinking regular key shortcut without Ableton conflict, yes. I don't know if Logitech Craft have some built-in support for this already. Bome Midi Translator can do such mapping. Problem here could be window focus, I think Logitech overlay should take care of this.

marctdt commented 3 years ago

@cyberluke I think we could send special character that are not really used and capture it in the agent. Then send it back to Ableton either via midi or directly capture the data in the Python script.

I was going to give some instruction to install the agent. But I was wondering? Are you using windows or Mac? because I don't think it works on mac at this point.

cyberluke commented 3 years ago

I use Windows 10

On Sun 7. 3. 2021 at 11:34, marctdt notifications@github.com wrote:

@cyberluke https://github.com/cyberluke I think we could send special character that are not really used and capture it in the agent. Then send it back to Ableton either via midi or directly capture the data in the Python script.

I was going to give some instruction to install the agent. But I was wondering? Are you using windows or Mac? because I don't think it works on mac at this point.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Logitech/logi_craft_sdk/issues/29#issuecomment-792254063, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIPKTY5YDVXNILQHLWIFMDTCNJCBANCNFSM4JBOQRPQ .

marctdt commented 3 years ago

@cyberluke Ok, I will compile and package it to make it easier to install. I will also use the VirtualMidi SDK from loopMidi to automatically create a midi port.

marctdt commented 3 years ago

https://github.com/marctdt/LogicraftAbleton/releases/tag/v0.1 Here a first release. I tried to give some instructions for the installation. Let me know if you have issues.

in terms of shortcut you can press: alt + shift + ': to switch to browse mode alt + shift + ,: to switch to mouse wheel mode alt + shift + .: to switch to Arrow mode

The label and the icons of the overlay is from the sample code. I didn't change it :)

cyberluke commented 3 years ago

@marctdt Hi, this will not work. "Logitech Options v7.14.70" is impossible to use. Outdated and incompatible. I tried it, but it make major headaches with mouse Logitech, which use also this software layer. The zooming on Google Maps is completely crazy and there is a lot of other issues. You cannot make software for Ableton 11 and Windows 10 and then use like two years old Logitech runtime. That's a show stopper. With socket, you should communicate to Logitech about some exception for your profile or try to use something else. Perhaps forking the Python socket library, adding required options regarding socket or certificate and distribute with your app.

marctdt commented 3 years ago

@cyberluke Maybe I was not clear. Installing the version 7.14.70 is done as a workaround to install the profile in developper mode. Once this is done you can install the latest version of option. The communication with the socket library seems to remains the same in v7 or v8. Please refer to some other ticket in this repo that refer to this issue. Unfortunately, it seems that Logitech is abandoning the Craft.

cyberluke commented 3 years ago

Ok, thank you. I can try it again. But the issues in your repo disappeared. I cannot see them even closed, it is empty here (even I change the filter settings): https://github.com/marctdt/LogicraftAbleton/issues ...I remember I was reading some info here. Even with 7.14.70, the directory structure is different. I tried to copy it in several locations and subdirectories, but it never appear as available profile to install. The testing profile from Craft SDK did appear and did install, though.

marctdt commented 3 years ago

Ok, thank you. I can try it again. But the issues in your repo disappeared. I cannot see them even closed, it is empty here (even I change the filter settings): https://github.com/marctdt/LogicraftAbleton/issues ...I remember I was reading some info here. Even with 7.14.70, the directory structure is different. I tried to copy it in several locations and subdirectories, but it never appear as available profile to install. The testing profile from Craft SDK did appear and did install, though.

@cyberluke yes, i meant there some thread here that was saying that we cannot install custom profile from v8. I also tried many different location but i couldn’t make it work. So using the v7 is the only known workaround to install the profile at the moment. And I am afraid that moving forward they will stop support the craft.

cyberluke commented 3 years ago

Ok ok, cảm ơn nhiều :-) ...I could not even install custom profile in v7, it did not show up. I will try again.

marctdt commented 3 years ago

@cyberluke ahah, no worries. Make sure that it is in the right folder and that you are running ableton. Logitech options check the name of the process. What version of ableton do you use? 11 suite, standard, light ?

cyberluke commented 3 years ago

Ableton Live 11 Suite, but it shows in Logitech Options only as "Live". Through regedit I did check also GUID of Ableton app in Windows Programs, but then I realized your GUID is for your profile only, for the SDK, not for GUID of running app. So that should be okay, because they mismatch.

marctdt commented 3 years ago

@cyberluke yes the guid of the folder name is only related to SDK, not the guid of ableton. The options agent check the process name I think. The profile will appear in the list if the développer mode is activated and Ableton Live 11 Suite.exe process is running.

marctdt commented 3 years ago

If something is wrong with your setup, maybe check the manifest.json file. But I just looked at it and it should work if you installed properly the profile in the right folder, you activated the développer mode and run ableton live