Using gamer's mouse additional buttons as a triggers for soundflow
Hello Christian and others!
One of my friends at post facility where I work uses his "gamer's" mouse with additional buttons. Its called Redragon Firestorm (https://avatars.mds.yandex.net/get-mpic/195452/img_id3239775816840816083/9hq). It has 10 additional buttons which by default duplicates the behaviour of numpad on keyboard. However, he uses software ControllerMate to map the mouse's buttons for different actions in Pro Tools.
I am interested to use smilar mouse with Soundflow. Is there a way to map these buttons for Soundflow commands? I tried once but it didnt work. If yes, will it be possible to do it without ControllerMate?
Same question for Logitech MX master2, which we are using at nearly every studio in facility. Is there a way to directly assign Soundflow commands for its additional buttons, bypassing the default Logitech drivers (so I won't change the settings of Logitech options every time I switch the studio room...)?
Thanks a lot for the support!
- Christian Scheuer @chrscheuer2019-07-09 00:06:04.040Z
We will be updating the trigger section in SoundFlow after the launch of v3 hopefully with added support for external custom HID units such as this. We're a little too close to release now to include this, since we need to ensure stability etc.
So it's likely we won't have this enabled before later this fall.I think the easiest way to do this right now would be to use ControllerMate or some freeware software (I think @JesperA might know some) to convert the input to MIDI messages or Keyboard strokes and let SoundFlow react to those.
- In reply toStepan_Sevastyanov⬆:Jesper Ankarfeldt @JesperA2019-07-09 05:49:46.554Z2019-07-09 21:00:30.884Z
Hey @Stepan_Sevastyanov.
So I'm converting some rotary volume knobs. First I used MidiHID: http://www.polhosting.info/web-archives/midihid/configurations/index.html
They don't sell it anymore and the demo have a 20 minutes limitations. But I was able to make a build from their GitHub. I don't know if it will work on your end, but I just zipped it: https://drive.google.com/file/d/13UQLt8d7oOoLdjRThslldNZwQ2SaxUpj/view?usp=sharing
It's fairly easy to script sending MIDI in to soundflow from when you interact with you mouse.Now I'm using ControllerMate, cause I'm using 3 of the same devices, and MidiHID recognizes it as the same. ControllerMate might be easier as it's just drag and drop.
I'll just put a little sample code here for MidiHID, that might get you faster where you want.
This code I made for recognizing when ever I pressed a modifier key (before it was implemented in SF:function _connect() log("<CONNECT>") end function _event(name, value, min, max) if (string.match(name,"Shift")) then midi.controlchange(1, (value - min) / (max - min) * 127) end if (string.match(name,"Control")) then midi.controlchange(2, (value - min) / (max - min) * 127) end if (string.match(name,"Alt")) then midi.controlchange(3, (value - min) / (max - min) * 127) end if (string.match(name,"GUI")) then midi.controlchange(4, (value - min) / (max - min) * 127) end end function _disconnect() log("<DISCONNECT>") end
As you can see it recognizes the text from the keyboard ie. Shift. And just sends 127 when pressed down and 0 on release.
And I believe when you select your mouse you will get in the log available names of buttons and there min/max value.Let me know if it works out.
Christian Scheuer @chrscheuer2019-07-09 06:02:40.190Z
cc: @Stepan_Sevastyanov :)
Jesper Ankarfeldt @JesperA2019-07-09 06:12:26.043Z
Haha. Don't know how that happened :) Edited now.
- In reply toStepan_Sevastyanov⬆:Jesper Ankarfeldt @JesperA2019-07-09 06:14:57.203Z
Btw. I just re-read your post.
I'm using the MX Master 2S.
This code will check that the first letter is a "B" for button. And then it uses the 8's letter which is the button nr.
So this will send MIDI with the numbers accordingly. And you can map those buttons as individual triggers or as a MIDI device and filter in a script in SoundFlow.function _connect() log("<CONNECT>") end function _event(name, value, min, max) if (string.byte(name,1) == 66) then midi.controlchange((string.byte(name,8)-48), (value - min) / (max - min) * 127) end end function _disconnect() log("<DISCONNECT>") end
- PPeresvet Mukhanov @Peresvet_Mukhanov
Hey, Jesper! Can you share with us your ControllerMate setup? I don't understand how to map MX Master 2S to CM cause it doesn't recognize any buttons except mouse's axis.
Jesper Ankarfeldt @JesperA2019-07-09 17:51:24.274Z
Hey @Peresvet_Mukhanov.
CM should see all the buttons. Just open a palatte window:
Select the button you want and drag it in. Then add a MIDI Out Building Block:
And attache them in a layer:
You can now use these triggers for anything in SoundFlow.
- In reply toJesperA⬆:
Vladimir @poterukha
I also use a Logitech MX Master. It is possible to assign "Open Webpage" command to any button via Logitech Options, but it can not open link in the background like Steam Deck software. I have found a solution with the help of Keyboard Maestro, creating a file with SF web trigger it. Instead of using "Open Webpage" I use "Open File" to trigger SF script. Maybe it is possible to do it without the help of KM just with Terminal, creating a file with a command "open -a safari SF.webTrigger -g" but I haven't tried it.
Jesper Ankarfeldt @JesperA2019-07-09 17:58:00.735Z
You could also use my workaround of just translating the HID device (your mouse) to MIDI (then it doesn't go in the way of other keyboard shortcuts) and then you can select directly in SoundFlow what to trigger, and don't need the use of web triggers. You can do this for free with MidiHID.
The cool thing about this method is, that when SF gets a more in depth HID implementation you just cut the program that translates the signal, and set the triggers directly in SF.
- In reply topoterukha⬆:
Jesper Ankarfeldt @JesperA2019-07-09 18:03:47.222Z
Btw @vladimir.
I don't use the Logitech Options software because it blocks shift as a modifier key, when trying to use shift together with the mouse. This is something I do a lot in SF so really annoying. I believe it's because of the side wheel, that in a way simulate shift+scroll, and so Logitech Options reserve it for them self.I reported this behaviour (and annoyance) to Logitech but their support is dead. Obvious I guess with the amount of products they have out there, so they just gets flooded.
Vladimir @poterukha
Thanks you, ControllerMate looks like a good alternative solution, I will try it. Agree Logitech support is more or less dead, I tried a few times to send them emails about background web triggers but haven't got any respond.
Jesper Ankarfeldt @JesperA2019-07-09 20:59:15.771Z
Yes, and if you don't have ControllerMate, MidiHID can be a fine free alternative. I posted a link and code further up.
- JIn reply toStepan_Sevastyanov⬆:J.R. Chappell @J_R_Chappell
I have been using a gaming mouse with controllermate for years with Protools. I would love to get away from Controllermate if possible and use just sound flow with my mouse and Streamdeck.
I also use TouchOSC with a couple of iPads. As soon as I try and record a mouse button as HID Device Trigger it says GenericDesktopX. I quit Controllermate but it still does it. My Mouse is a Cyborg M.M.0.7.Any thoughts? I figure worst case I can have controller mate spit out midi notes and use that but I would prefer not to do that if possible.
Christian Scheuer @chrscheuer2020-11-17 11:35:19.102Z
Hi JR,
This likely happens because we detect the mouse movement first and react to that before the button press gets registered. Try holding the mouse really still when clicking to see if it helps.