Jump to content
Corsair Community

Macros simultaneously working possible?


Tinneezy
 Share

Recommended Posts

I never tried tinkering around CUE yet since I might bork out stuff.

 

So to start things off, I have 2 macros perfectly working when pressed alone, but when I try to use them at the same time the first gets cancelled off.

 

I just want to ask if its possible or not so I should stop trying.

 

K70 LUX RGB

Firmware v2.05

CUE v2.4.66

Link to comment
Share on other sites

Macro 1 : F1 + left click on repeat

Macro 2 : F2 + F3 on repeat

 

Even if I change f2 and f3, it'll still cancel out the first macro so I'm kinda stuck in a bind. They both work independently but not then I hold and press them both

Link to comment
Share on other sites

  • 1 month later...
Are you using advanced mode or basic mode? Advanced mode should give you more options to choose from, like executing the macro uninterrupted or stopping and restarting it, and so on.

 

Are you able to tell me which version of CUE offered these options because 2.9.53 does not- right now when you select a macro to be repeated "while pressed" the options to select uninterrupted, stop/restart, etc. are not there.

Link to comment
Share on other sites

  • 4 weeks later...
You can't do two macros simultaneously like what you described. Its technically an OS limitation.

 

Windows supports multitasking; my machine has six cores, and I can also use OpenCL to distribute tasks to the GPU at the same time. Even without this parallel hardware, Windows timeslicing allows multiple parallel code sequences to run at the same time.

 

So certainly some kind of interleaving can be done so that two macros can run simultaneously. With respect to OP's idea of interleaving two macros, each of which repeats keys, consider what the K95 RGB keyboard does if you press two keys simultaneously: "klklklklklklklklklk". (Yes, this is really what I got to happen when I pressed "k" and "l" at the same time; I am using Windows 10.) Now if you were to try this, you might have gotten a result like: klllllllllllllll or lkkkkkkkkkkkkkk, but this is because you probably need to hone your reflexes. ;-) [Keyboard polling at 1000Hz/1ms according to the unchangeable setting shown in performance tab means you must be very precise.] The interleaving of the output of keys pressed simultaneously is a current feature of the Corsair keyboard that can be observed on Windows 10, so the OP wants to be able to have his macros work the same way.

Edited by Comet ☄
Link to comment
Share on other sites

  • 3 months later...
You can't do two macros simultaneously like what you described. Its technically an OS limitation.

 

Reviving this thread. The old nostromo n52 can run multiple macros at the same time on Windows 10 64bit.

 

Could you guys add this feature as well, please?

Link to comment
Share on other sites

  • Corsair Employees
Windows supports multitasking; my machine has six cores, and I can also use OpenCL to distribute tasks to the GPU at the same time. Even without this parallel hardware, Windows timeslicing allows multiple parallel code sequences to run at the same time.

 

So certainly some kind of interleaving can be done so that two macros can run simultaneously. With respect to OP's idea of interleaving two macros, each of which repeats keys, consider what the K95 RGB keyboard does if you press two keys simultaneously: "klklklklklklklklklk". (Yes, this is really what I got to happen when I pressed "k" and "l" at the same time; I am using Windows 10.) Now if you were to try this, you might have gotten a result like: klllllllllllllll or lkkkkkkkkkkkkkk, but this is because you probably need to hone your reflexes. ;-) [Keyboard polling at 1000Hz/1ms according to the unchangeable setting shown in performance tab means you must be very precise.] The interleaving of the output of keys pressed simultaneously is a current feature of the Corsair keyboard that can be observed on Windows 10, so the OP wants to be able to have his macros work the same way.

 

It has nothing to do with cores but rather inputs. Macros work by incorporating a virtual keyboard through virtual USB. A virtual device has the same limitations as a physical one so if you can't do it on a physical device, a virtual one is no different. What you're manipulating with a macro is the time and delay between keypress inputs and releases at intervals that possibly isn't humanely possible (like repeats at 1ms).

Link to comment
Share on other sites

  • 2 months later...

Hello.

I just bought a K95 RGB and tried to setup the SAME settings I previously used on my old keyboard (12 years old of different manifacturer), but I cannot execute/run two macros in the same time using latest Corsair CUE 2

 

On previously keyboard's software I was running 2 macros in the same time without any problem.

More specific: I need to hold and press one key WHILE a repeating keypress should be done on a different key.

 

I'm a WIndows programmer/developer and it's not difficult (I develop in Embarcadero Delphi and Java) to create a software that loops and do what I need, but I spent 150 EUR and I suppoed this was possibile like on my 12 years old keyboard...

Link to comment
Share on other sites

I need to hold and press one key WHILE a repeating keypress should be done on a different key.

 

I feel like Cue 2 might be able to do that in advanced mode.

 

You mean lets say, you hit G16 and you want that to hit Delete, wait ___, hit Delete, wait ___, until release?

 

if you go to remap key and hit imitate holding key and Action trigger set to toggle or while pressed ... I think that might be doing what you want unless you want to add specific delays?

 

In which case you may be able to create a macro, hit the tools icon and go to the advanced settings and hit action trigger: toggle, action repeat: repeat or repeat constantly and choose the repeat delay time frame at the right beneath under repeat delay.

 

If that does not meet your needs, create a key-press event in that first macro to execute a second action; you can make it an off keyboard key that is pressed in the first macro to sniff for in AHK (make it a persistent hotkey; you can even target a window class so it doesn't hog an off board key everywhere or poll quite as much). Let me know if that works?

Link to comment
Share on other sites

if you go to remap key and hit imitate holding key and Action trigger set to toggle or while pressed

I tried this way and I tried it again now.

I created 2 separated "Replicate Key" Action (I'm using italian language so I'm not sure which is the right trasnslation in English) and I enabled "Imitate holding key press" and "Trigger on: Enable/Disable" so I can choose when start and stop.

It works only for ONE Action at a time.

In fact this is my output on a Notepad (key replications are set for key "1" and "4") when I press Action1 and 2 seconds later the Action2:

 

1111111111111111111144444444444444444444...

But I was expecting something similar to:

1111111111111111111141414141414141414141...

 

As you can see: while there is only one "key replication" the loop is done fine, but if a second "key replication" needs to be started only the second one stay active.

It seems that all repeated Actions share the same "internal timer/clock" and when a second Action enters its own loop_of_repetition the previous one is stopped or just discarted/ignored while the second Action loops within its own loop_of_repetition.

 

Same behaviour for Macros when I try to add two of them due to the need to have delays.

 

create a key-press event in that first macro to execute a second action; you can make it an off keyboard key that is pressed in the first macro to sniff for in AHK (make it a persistent hotkey; you can even target a window class so it doesn't hog an off board key everywhere or poll quite as much)

I'm not sure to have well understoo what you mean.

However I don't find how to execute a second Action withing the first on. In a Macro I can add Keyboard events, Delays and Mouse events but nothing else.

I can see the "Second action" checkbox only if I DON'T set any repetition of that Macro. When I choose "Repeat" from the dropdown_box the "Second action" checkbox disappears.

However you can understand that using a single and static/fixed checkbox for JUST A SECOND Action is a bit limited...what if I would like to execute more 3 Actions after the first?

 

The K95 RBG seems a very solid and fantastic keyboard, but its CUE 2 need to be improved somehow :(

I have my previous and very old keyboard (12+ years old) that has a aged software that allows concurrently macros (the test I done at the beginning of this answer is running fine on that old software and keyboard)...so it cannot be a Windows limitation as I read in this discussion.

Edited by tdname
Link to comment
Share on other sites

so it cannot be a Windows limitation as I read in this discussion.

Yes you are correct, I believe James meant the way in which the virtual keyboard driver is implemented that it cannot multi thread like this.

 

I wrote some AHK code that will do what you need, I just need a little time to test it a little more thoroughly and will post it; I am sure it will meet your needs.

 

I was out of town this weekend at a LAN party or I'd have had it done :cool::cool:

Link to comment
Share on other sites

I wrote some AHK code that will do what you need

Hello again ;)

Very thanks but please don't waste your time for me because I can develop a small Windows program that does exactly what I need.

 

My comments in this thread were made only to let Corsair's Developer that CUE is currently limited in few specific things.

 

However a multithread is not required to do what I wrote.

A simple "big" loop/while in which locate ALL macros could be very simple while checking if each Macro's delay is expired and need to be executed.

Multi-thread could be the best way but not the only one.

 

However it's a pity to see a 12+ year old software is doing what a 2017's software cannot do..... :(

Link to comment
Share on other sites

  • 1 month later...
It has nothing to do with cores but rather inputs. Macros work by incorporating a virtual keyboard through virtual USB. A virtual device has the same limitations as a physical one so if you can't do it on a physical device, a virtual one is no different. What you're manipulating with a macro is the time and delay between keypress inputs and releases at intervals that possibly isn't humanely possible (like repeats at 1ms).

 

Yes but all other macro software I have used when running two macros at once will input the second macros commands in between the commands of the first macro see example below.

 

Start the first macro of repeating "1" on toggle for example "1111111111...." and if you start the second macro of repeating "2" on toggle after the first you will end up with "1111121212121..." and so on. So if you have a macro like I do that presses 2 indefinitely on toggle then another that does "crtl+e" on key press it will look like "2222222crtl+e2222222....". This is the functionality that we would like implemented. Believe me, I know this is possible because I have many times had complex repeating macros ruined by accidentally pressing another macro key that throws a bunch of random key presses into my work and I have to start over.

 

Edit: For those that would like a temporary workaround for this issue and you only need to mash one button like I do then google/download "super simple button masher". It is inconvenient but it gets the job done.

Edited by ChaosBlades
Link to comment
Share on other sites

  • 8 months later...

Just got my new K95 Platinum to replace my Logitech G15v2 which allowed me to have multiple macros running at the same time.

 

Example:

G1 would press 1 every .5 seconds

G2 would press 2 every 1 second

 

I could enable one, either, or both and they would work as expected.

 

Way to go Logitech with a ten+ year old model keyboard outperforming the flagship Corsair in this area which has been noted as IMPOSSIBLE. Very disappointed as that is a key feature for me. This very well may be a limitation of the Corsair design.

 

My question is: can the current limitation be addressed by Corsair? How do we make certain our request is heard?

 

I am going to update my Amazon review with this detail so others can avoid a costly missed expectation.

Edited by Huzbub
follow up
Link to comment
Share on other sites

Example:

G1 would press 1 every .5 seconds

G2 would press 2 every 1 second

...

can the current limitation be addressed by Corsair? How do we make certain our request is heard?

This kind of Macros can be successfully set using Corsair CUE software.

I think what you're trying to do it's the BASIC think for any Macro software.

Link to comment
Share on other sites

Huzbub, good try, but that does not work unfortunately. The iCUE timer settings seem like you could almost get there also as they have start stop settings, but I don't think it works just yet inside CUE.

 

http://forum.corsair.com/v3/showthread.php?p=963122#post963122

http://forum.corsair.com/v3/showthread.php?t=177820

http://forum.corsair.com/v3/showthread.php?t=174079

http://forum.corsair.com/v3/showthread.php?t=174978

 

If you are interested in a NOW solution, you can tweak this AutoHotkey code to taste and run:

 

#SingleInstance
#MaxThreadsPerHotkey 1

SendMode Input
global aAct:=0
global sAct:=0

$*a::
aAct:=1
While GetKeyState("a", "P") {
	Send 1
	Sleep 800
	if(sAct) {
		if GetKeyState("s", "P") {
			Send 2
			Sleep 800		
		}
	}
}
aAct:=0
Return

$*s::
sAct:=1
While GetKeyState("s", "P") {
	Send 2
	Sleep 600
	if(sAct) {
		if GetKeyState("a", "P") {
			Send 1
			Sleep 800
		}
	}
}
sAct:=0
Return

 

I have tested that other software does this successfully, but there are equally as many limitations and quirks about other software in my experience. That said, I am sure Corsair is aware of this as there've been numerous requests for it and I am sure if it was easy to implement without issue they would have. This is a guess and I do not speak for them, but I would bet they are working on it.

 

The above code listens for a and z to out 1 and 2 but you could remap the Gkeys in cue to match a character that Autohotkey recognizes if you wanted to use the G keys

Edited by hastegag
note
Link to comment
Share on other sites

  • 3 months later...

Also tossing in my voice here, as the keyboards iCUE software missing this functionality is what has been my roadblock from transitioning to all Corsair products.

 

I rely on macros heavily for both work and gaming, some of which needs to run overlapped like has been shown in the examples above (separate cooldowns really is crucial).

 

Having the separate timers is a must for me to be able to fully transition to corsair keyboards like I have wanted to for a few years.

 

Looking forward to eventually ditching this G510 after the...no clue how many years.

 

A question on the concept of concurrent macros running. The limitation is currently in iCUE from my understanding, and is not a part of the keyboards, so were this issue resolved/feature added, it would be applicable to all keyboards supported by iCUE?

I love Corsair, and am tempted to still get the k95 out of faith this will be dealt with some day.

Edited by ApocMora
Conceptual question added to base of post.
Link to comment
Share on other sites

  • 2 months later...
It has nothing to do with cores but rather inputs. Macros work by incorporating a virtual keyboard through virtual USB. A virtual device has the same limitations as a physical one so if you can't do it on a physical device, a virtual one is no different. What you're manipulating with a macro is the time and delay between keypress inputs and releases at intervals that possibly isn't humanely possible (like repeats at 1ms).

 

Sir, I realize that you are/were the project manager for iCUE, however I noticed something about what you said here. What you said is partially incorrect. I do not know why you are incorrect, but you are.

 

Recently, I was using my Scimitar and the older version 1.x of Corsair Utility Engine. Using this software, I was not able to run multiple macros at the same time. That is, if I set a button on my Scimitar to a MACRO, then I could run only one at a time. I was instead able to set the buttons to HOTKEYS (also a macro but distinct from a "macro" within the software) and I could run multiple at the same time as toggles with random repeat timers.

 

You see, what you said is not correct. It is possible to run multiple instances of hotkey inputs at the same time from macros each assigned to different buttons on the Scimitar (at least).

 

Then, I decided to try and upgrade from 1.x. What a mistake. I lost this functionality completely. I have yet to manage to get more than one macro to run at once with a multitude of settings in the version 3.x of the new "iCUE". It seems this functionality was lost long ago in the 2.x versions of the software. To compound my first world misery, I updated the firmware of my Scimitar in the 3.x version of iCUE, so now my 1.x version will not even launch without self-terminating. (I have uninstalled and reinstalled older versions as well as removed the appdata Corsair folders).

 

I really hope someone smart over there can figure out the differences in the software and return this functionality to us. Perhaps the language of the software has changed and new limitations were introduced. I have no idea. All I know is that what you asserted here in this thread, is not accurate.

 

Alternatively, a method to play multiple hotkey macros simultaneously (as hotkeys within iCUE since 'macros' are limited to one at a time), would help me a lot. The option to loop keystrokes no longer exists.

Edited by ZeroNeutral
Link to comment
Share on other sites

 Share

×
×
  • Create New...