node-xencelabs-quick-keys icon indicating copy to clipboard operation
node-xencelabs-quick-keys copied to clipboard

Still in active development?

Open DrCWO opened this issue 1 year ago • 8 comments
trafficstars

Hi Julusian, I wonder if this project is still actively maintained.

I am the guy behind http://diy.rooExtend.com and like to add the quick keys to my set of Roon Extensions that I already offer for other controllers. I like to use your library here and hope this will be OK for you as you offered unter MID license.

Please let me know. Best DrCWO

DrCWO avatar Feb 08 '24 07:02 DrCWO

Yes, I use this daily through https://github.com/bitfocus/companion-satellite, so it is actively maintained.

There isn't a whole lot to do other than updating dependencies as it works, but if there was a new model or revision of this hardware then I would be seeing what could be done to support it.

Yeah, with the MIT license you can do pretty much anything with this, including using it in a closed source paid product, so go ahead :)

Julusian avatar Feb 08 '24 09:02 Julusian

Hi Julian, this is really great news for me. Would you please be so kind to mail me personally as I have some more questions regarding the use of your implementation and the device. Please find my e-mail address here: https://rooextend.com/impressum.html Best DrCWO

DrCWO avatar Feb 08 '24 12:02 DrCWO

Hi Julian, just found time to enter all my questions here and hope for your reply:

  • How far can the controller be taken away from the receiving dongle before loosing connectivity?
  • Which node release is mandatory for your software?
  • Is there a chance you offer a node package for Raspberry Pi ARMv8 in near future?
  • Did your software use RAW HID? Mine uses it for the SpaceMouse Wireless so would be great to have the same here.
  • In the node example you use "import". As I'm on native Javascript I still use "require". Can your software also to be used with a "require" statement?
  • Using the device in Windows I can switch between layers for the buttons. Is this a feature of the controller or of the Windows Driver?
  • Did the buttons inside the wheel and that for switching layers also have a "normal" button-ID
  • How can I control the color and brightness of the LED surrounding the wheel?
  • How can I customize the sensitivity of the wheel?
  • How can I send Text to the display and how to set the vertical or horizontal setting of the text?
  • How can I adjust the brightness of the display?

Thanks' for your help Best DrCWO

DrCWO avatar Feb 09 '24 11:02 DrCWO

  • How far can the controller be taken away from the receiving dongle before loosing connectivity?

I haven't tried pushing it, but it is working for me mostly fine at 5m which includes going through a brick wall. I have had one or two occurrences of it dropping out at that range, but I haven't figured out why it did, that could have been something turned on causing more interference or a range issue

  • Which node release is mandatory for your software?

18.18 or any later version

  • Is there a chance you offer a node package for Raspberry Pi ARMv8 in near future?

It already works on ARM64

  • Did your software use RAW HID? Mine uses it for the SpaceMouse Wireless so would be great to have the same here.

What do you mean?

This library uses https://github.com/node-hid/node-hid to be able to do HID from nodejs. This library will work with either of the libusb or hidraw backends on linux

  • In the node example you use "import". As I'm on native Javascript I still use "require". Can your software also to be used with a "require" statement?

yes that will work

  • Using the device in Windows I can switch between layers for the buttons. Is this a feature of the controller or of the Windows Driver?

That is a feature of the software, you would need to reimplement this yourself

  • Did the buttons inside the wheel and that for switching layers also have a "normal" button-ID

0-7 are the buttons around the screen 8 is the 'layer switch' button 9 is center of the wheel

  • How can I control the color and brightness of the LED surrounding the wheel?
  • How can I customize the sensitivity of the wheel?
  • How can I send Text to the display and how to set the vertical or horizontal setting of the text?
  • How can I adjust the brightness of the display?

Once the manager gives you an class instance for the connected device, you can call various methods to change these properties: https://github.com/Julusian/node-xencelabs-quick-keys/blob/bee7ed8e014f35003325785dfe329a91ef581a8f/packages/core/src/types.ts#L60-L112

Setting text is a bit limiting, each key has a short string that can be shown next to it, and you can show an 'overlay' for a customisable duration with showOverlayText. This is a bit limiting, but its defined by what the hardware lets us do

Julusian avatar Feb 09 '24 11:02 Julusian

Hi Julian, thanks' for the quick reply. This is absolutely fantastic as it seems that your software is a complete implementation. :-) As I read there is also a sleep timeout that can be set probably for saving energy. Question to this:

  • If it kicks in did the device wake up if I rotate the knob or have I to press a button.
  • If I continuously send an update for the text, will the device stay alive?

DrCWO avatar Feb 09 '24 11:02 DrCWO

I don't remember how the sleep behaves, I don't use that portion myself

Julusian avatar Feb 09 '24 14:02 Julusian

And here my solution for using "require" of good old Javascript instead of "import" 👍

const {	XencelabsQuickKeysManager} = require('@xencelabs-quick-keys/node');
var XencelabsQuickKeysManagerInstance = new (XencelabsQuickKeysManager);

this will replace the line import { XencelabsQuickKeysManagerInstance } from '@xencelabs-quick-keys/node'

you find in the example here work. With this you can put the example code in a ".js" file and it will work.

DrCWO avatar May 01 '24 07:05 DrCWO

Hello julian, I finally integrated your library into my rooExtend platform. I will soon offer (Release v3.4.0 from rooExtend) a new Roon extension called rooMax that uses the QuickKeys controller to control the Roon Music Server.

Please watch this Link to see my announcement within the next two weeks.

Thanks' a lot for this valuable library I appreciate it al lot 🥇

Just to let you know I credited you on the Service Page or rooExtend v3.4.0 image

Best DrCWO

DrCWO avatar Jul 24 '24 14:07 DrCWO