Elgato Stream Deck?

    Jul 23 2018 | 5:18 am
    Hello max friends!
    As like many of you are Im sure, I am constantly on the lookout for new and interesting human-interface peripherals which might could be noodled upon within max. picked up one of these badboys, a little usb button controller with SCREENS for buttons! Really cool, and theres already a C++ / node,js lib available for it.. sadly though, max's 'hi' object cant see it, and Ive found no other way to interface with it other than assign keboard presses to the buttons in its propriatary editor and workin it that way, which obviously leaves a lot of functionality on the table.
    Curious though has anybody played around with them or integrated them into max in any meaningful way? seems it could be a really great tool for all kinds of maxy things.. https://www.elgato.com/en/gaming/stream-deck
    What kind of work would be involved in creating a max external which interfaces this lil guy?
    Inquiring minds want to know!

    • Jul 25 2018 | 8:06 am
      No love for the stream-deck?
    • Aug 29 2018 | 10:00 pm
      Some love from me! :-) I was just looking for old keys, that can change their look. As it is, this device would not be very useful to me. However, if it was possible to change the screens on each key via Max MSP, that would be very useful! I am just not very experienced with these kind of thing, thus, I cannot be of any help ...
    • Oct 18 2018 | 3:04 am
      That is the idear! But I dont know C++ or have any experience developing externals much less integrating a 3rd party SDK.
      Buy if anyone did, I think itd be a great asset to the max community - new features with each passing release, you can really do some interesting things with this lil guy.
    • Nov 24 2018 | 12:33 am
      Sorry, but I have to bump that topic, as the potential is just crazy IMO and the device is pretty inexpensive compared to OLED keys ... It is clearly possible to make the stream deck change its buttons: https://github.com/Lange/node-elgato-stream-deck or ... https://www.youtube.com/watch?v=tNwUG0sPmKw I would like to get into programming, as I wanted to do that anyway. How daunting as a first project would that be? I guess I have to start easier ... hello world! ;-)
    • Nov 24 2018 | 7:55 am
      Hey, one idea that could allow you to play around with it and test it, although with a bit of coding, would be to use the aforementioned Node API Implementation via node.script. Given that I don’t have such a device I only Looked at the Github repository in a more „theoretical“ way but yeah, ideally it might just work and could allow you to integrate it. As said, still some coding necessary but I guess way less than for a dedicated external or it could help understanding the way one interfaces with the device.
      Happy to help with any questions if you guys decide to play around with that.
    • Feb 10 2019 | 3:38 pm
      https://www.youtube.com/watch?time_continue=83&v=bL4YZsWI4Bo Seems like there is an SDK available now. That should make it easier to integrate it into Max, right?
    • May 29 2019 | 10:52 am
      A slight bump ... Now, there is a bigger version (XL) with even more buttons and a software version for tablets available. I still hope, there could be an interface to be able to change pictures and connect with Max! Looks like a very cool controller to me! Full dynamic labeling, but haptic feedback - unlike tablet controllers like Lemur or Mira. https://www.elgato.com/de
    • Jun 27 2019 | 6:47 pm
      Im starting to futz around with this now.. but I am by no means skilled in the mysteries of node.js / js.. but my resolve is strong! If I get anywhere meaningful Ill update!
    • Jun 28 2019 | 9:20 am
    • Jul 11 2019 | 2:45 am
      Hello max home doggies,
      I am pleased to report that I have found a solution for communicating w/ max. Theres a plugin for SD, called 'companion' which instanciates a server which can send/receive TCP/IP, and OSC messages among other things. Ive got the stream deck talking to max so far, and Im in the process of mapping the buttons etc. (there are 99x virtual 'pages' of buttons and you have to use a web interface to do them all.. kind of time consuming! lol.
      My plan is to then integrate the stream deck with ableton b/w of Max4Live, I have an existing device which I use for live production work, which does a bunch of stuff, hotkeys, stop groups, playlists, random 'genre' plays etc.. that Id like to use my streamdeck with!
      Once Im done with that, Theres quite a few titilating possibilities.. like clip presence (auto color fill buttons with presence-of-clip/ lack-thereof, auto populate colors of said clips, bank changes could move the big red square to appropriate 'banks' within abes... Im going to be a busy boy it would seem.
      I will post a patcher with the mapped buttons as soon as done though, so you'all can noodle away to your hearts content.
      Victory is mine! Cheers!
    • Aug 13 2019 | 8:58 am
      Hi Scott did you get anywhere with that SD patcher? as i recently got an SD, mainly to use with c4d, after effetcs & premiere, which with those apps the SD works like a dream with hotkeys,, but with max, i came accorss the exact same problems you initially had. i just got that Companion plugin which defenitly looks promising, but now really feels like jumping at the deep end for the simple commands i wanted to do with max/SD so any tips/patche on getting started with companion/SD/max,, would be beyond appriciated,,, thanks Nick
    • Oct 20 2020 | 1:20 pm
      Also there is a subscription based Soundflow app, which makes everything you need (feedback through midi, osc, window focus, application activation etc.) But it is $9.99 a month... Too much for me :/
    • Dec 17 2020 | 12:01 pm
      I have finally figured out two way control between max and streamdeck using Companion and OSC messages. https://bitfocus.io/companion You can set up Companion to send OSC messages and receive messages in max using udpreceive object. To send from max to the streamdeck, use udpsend object in max using the info in the attached screenshot:
    • Dec 17 2020 | 5:23 pm
      Hey, Yes! I too eventually discovered companion and have been using it reliably for a while now on live tv stuff. I trigger clips and macros by sending UDP messages to max, then to ableton using the ableton API.
      Its fast (near zero latency) and I love the multi-page interface. Very good. A lot of guys on the video side use this for real broadcast tv stuff. Bit of a 'secret weapon' in my view. Little bit of a custom-job setting it up but, isnt that half the fun? :)
      There is now a plugin for streamdeck for midi control but I found it to be very laggy and pretty limited.
      Glad you found it too!
    • Dec 17 2020 | 5:28 pm
      That sounds great! Is this also capable of setting the icons displayed in some way from Max?
    • Dec 17 2020 | 5:40 pm
      Not that I know of, I did that within the companion app, and I found this method to be adequate and to my liking. You could always use the midi plugin for streamdeck and do your icons that way, but you wouldnt get the multipage system that companion uses and that is cricial to me so I went with companion
    • Dec 17 2020 | 9:23 pm
      What I mean is: Can you send anything (e.g. OSC) to that companion app to make it change the icons on display? I want to use streamdeck to do key switches for sample libraries. I can convert the outgoing OSC to midi in Max, but can I also decide from Max, which Icons are shown on what key? It is ok if I have to set all the Icons in the companion app, but I want to be able to decide per key what it shows (from a collection of icons saved in companion). Is that possible?
    • Dec 18 2020 | 2:05 am
      You can definitely change background color and displayed text (and it‘s color) of a button via OSC, but there is no way (as far as I know) to choose one of preloaded icons.

      Here are the commands (from documentation):
      OSC Remote Control

      Remote triggering can be done by sending OSC commands to port 12321.
      • /press/bank/ <page> <bank> Press and release a button (run both down and up actions)
      • /press/bank/ <page> <bank> <1> Press the button (run down actions and hold)
      • /press/bank/ <page> <bank> <0> Release the button (run up actions)
      • /style/bgcolor/ <page> <bank> <red 0-255> <green 0-255> <blue 0-255> Change background color of button
      • /style/color/ <page> <bank> <red 0-255> <green 0-255> <blue 0-255> Change color of text on button
      • /style/text/ <page> <bank> <text> Change text on a button
    • Dec 20 2020 | 1:07 pm
      Thanks for the hint! I will check it out. Looks pretty much like what I was looking for. Ok, if you cannot remotely change icons, it is not 100%, but if the text can be switched freely it is close enough.
    • Dec 20 2020 | 2:26 pm
      Personally I find Companion app not so flexible as it could and should be in terms of GUI and layouts: icons are 72x50-something instead of 144x144, no folders (only a fixed amount of pages), no easy key command support... But official app has no feedback functionality. Idk why does it takes so long to implement these obvious functions in one app...
    • Dec 21 2020 | 8:30 pm
      Im pretty sure its developed by regular dudes who work in live production and develop it to suit those needs specifically. It is free as well, so hard to fault them for anything :) They seem to have a fairly active discord with tech questions and people who develop it seem happy and eager to answer any q's / requests