ShaunX Posted November 28, 2020 Posted November 28, 2020 I have to say that I am thoroughly enjoying using VIACOM with VA. Bought the promotion bundle pro licences and installed everything and working perfectly. I particularly like the excellent Kneeboard and the background chatter adds nicely to the realism. I have successfully daisy-chained my generic DCS commands profile from the VIACOM one and also added a F-16C specific profile, which I use to send keyboard sequences to operate those 2 and 3 way Warthog switches which DCS doesn't support. I note that VIACOM implements a number of exposed variables, one of which is Active Module Name. Is there a way to use that variable to automatically select a profile to be daisy-chained ? So that I could have an aircraft specific daisy-chained profile loaded dependent on active aircraft module ? RYZEN 5900X | 32GB | ASUS Strix RTX3090 | 500GB NVMe OS 1000GB NVMe DCS | Warthog HOTAS | HP Reverb G2 | VA & ViacomPRO My DCS Apps: Radio KAOS for DCS KB Quick - Quick and Easy Kneeboards
hornblower793 Posted November 28, 2020 Posted November 28, 2020 I don't know whether that is currently possible or not - your best bet might be to jump on the VA discord and ask there Windows 11 Home ¦ Z790 AORUS Elite AX motherboard ¦ i7-13700K ¦ 64GB Corsair Vengeance DDR5 memory @ 5600MHz ¦ Samsung 990 Pro 1TB SSD for OS, Samsung 980 Pro 2TB SSD for DCS ¦ MSI GeForce RTX 4090 Gaming X Trio 24GB ¦ Virpil WarBRD base with VFX grip, Thrustmaster A10c and F/A-18 grips ¦ VKB Gunfighter Mk4 and MCG Pro ¦ Thrustmaster Warthog Throttle ¦ VKB STECS Throttle ¦ Virpil TCS rotor base with Shark and AH-64D grips ¦ MFG Crosswinds ¦ Total Controls Multi-Function Button Box ¦ Pimax Crystal
Weegie Posted November 28, 2020 Posted November 28, 2020 Yup I don't know either, if it is I'd be interested in doing it. My workaround was to copy the exisitng Vaicom Profile in Voice Attack then make the copied Vaicom profile module specific. So I have identical Vaicom profiles, but one Vaicom profile for each aircraft. I then appended/Daisy Chained my own module specific profile to the back of each of the Vaicom specific profiles. For example I have a Vaicom profile named "Vaicom Pro Hornet" and another named "Vaicom Pro Viper" The only difference between the Vaicom profiles is that the "Vaicom Pro Hornet" has my own "DCS Hornet" profile appended to it and the "Vaicom Pro Viper" has my own "DCS Viper" profile appended to it. With that setup I can use the exposed vairiable command to select the correct profile to match the module I'm in on DCS. I've also got a command where I can flip into or out of Vaicom to run either my own profile appended to the Vaicom profile or just my own profile (stand alone) without Vaicom (it's hardly rocket science) The downside is it takes (a little) more space and it means you need to update several profiles rather than just one if there is a keywords update. Works great for me and it wasn't my idea originally I pinched it from someone else on the forum who told me how he had his setup Just an idea as an alternative
ShaunX Posted November 28, 2020 Author Posted November 28, 2020 That's an idea now. Ok, so I'm guessing you're using the Other|VoiceAttack Action|Switch to AnotherProfile command in a conditional statement interrogating the currentmodule.name variable. But I don't get what triggers that command to execute ? RYZEN 5900X | 32GB | ASUS Strix RTX3090 | 500GB NVMe OS 1000GB NVMe DCS | Warthog HOTAS | HP Reverb G2 | VA & ViacomPRO My DCS Apps: Radio KAOS for DCS KB Quick - Quick and Easy Kneeboards
sthompson Posted November 28, 2020 Posted November 28, 2020 That's an idea now. Ok, so I'm guessing you're using the Other|VoiceAttack Action|Switch to AnotherProfile command in a conditional statement interrogating the currentmodule.name variable. But I don't get what triggers that command to execute ? Couldn't you create a voice command to switch profiles? It's not quite as convenient as having the switch done automatically when you load a new module, but it should work. I'm Softball on Multiplayer. NZXT Player Three Prime, i9-13900K@3.00GHz, 64GB DDR5, Win 11 Home, Nvidia GeForce RTX 4090 24GB, TrackIR 5, VKB Gunfighter III with MCG Ultimate grip, VKB STECS Standard Throttle, CH Pro pedals
ShaunX Posted November 28, 2020 Author Posted November 28, 2020 Sure could, I was just curious to see if there was a way to automate it with the exposed variable. For that matter, it guess it would only take a few seconds to manually swap the daisy chained profile for the correct one for the aircraft. RYZEN 5900X | 32GB | ASUS Strix RTX3090 | 500GB NVMe OS 1000GB NVMe DCS | Warthog HOTAS | HP Reverb G2 | VA & ViacomPRO My DCS Apps: Radio KAOS for DCS KB Quick - Quick and Easy Kneeboards
Weegie Posted November 28, 2020 Posted November 28, 2020 Currently got mine under a voice command but I'll try to see if it could be automated and report back
ShaunX Posted November 28, 2020 Author Posted November 28, 2020 Currently got mine under a voice command but I'll try to see if it could be automated and report back Here's a thought: What if, instead of your aircraft specific profiles being daisy chained from aircraft specific copies of the VIACOM profile, it was t'other way around ? So top level profile is either DCS Hornet or DCS Viper and each of those has the common VIACOM profile daisy chained from it. That way, you'd only need a single version of the VIACOM profile, and would only need to update that single version's AI commands if anything was changed in VIACOM. May be a non-starter if it's a requirement that the VIACOM profile is top level. RYZEN 5900X | 32GB | ASUS Strix RTX3090 | 500GB NVMe OS 1000GB NVMe DCS | Warthog HOTAS | HP Reverb G2 | VA & ViacomPRO My DCS Apps: Radio KAOS for DCS KB Quick - Quick and Easy Kneeboards
Weegie Posted November 28, 2020 Posted November 28, 2020 I can't see an easy way of doing this off the bat Adding the "module select command" to the Configuration Window would be a possbile work around, so as when the configuration window is triggered the correct module specific Vaicom profile is selected. I just tried that and it works fine but it would involve killing then reselecting the Vaicom window when jumping across profiles. I don't know how you'd get the plug in to trigger VA to execute a command, don't even know if that's possible. With my profiles I've got back ups in to tune to frequencies for the airfields for Caucasus, Nevada, Gulf and Syria as well as Tacan and ILS frequencies, these are all map specific using If statements. When I jump into a module I execute a reset to align the profile vairiables to the module and the map is selected automatically through a Vaicom exposed vairiable. With my own profiles I could expand them to select the module as well but that's not much use to you. One for Hollywood I reckon
Weegie Posted November 28, 2020 Posted November 28, 2020 That's a good idea @shaun57 Just tried that and it seems to work that's just some rudimentary testing selecting radio frequencies airfields and comms, but Yeah that's another approach for sure.
ShaunX Posted November 29, 2020 Author Posted November 29, 2020 I can't see an easy way of doing this off the bat Adding the "module select command" to the Configuration Window would be a possbile work around, so as when the configuration window is triggered the correct module specific Vaicom profile is selected. I just tried that and it works fine but it would involve killing then reselecting the Vaicom window when jumping across profiles. I don't know how you'd get the plug in to trigger VA to execute a command, don't even know if that's possible. With my profiles I've got back ups in to tune to frequencies for the airfields for Caucasus, Nevada, Gulf and Syria as well as Tacan and ILS frequencies, these are all map specific using If statements. When I jump into a module I execute a reset to align the profile vairiables to the module and the map is selected automatically through a Vaicom exposed vairiable. With my own profiles I could expand them to select the module as well but that's not much use to you. One for Hollywood I reckon Do you know if Hollywood is amenable to small change requests ? .. From the VA manual chapter on plugin support there's an "Exists" test and an "Execute" function usable from a plugin.. " Exists(string CommandPhrase) – This Boolean function returns true if a command is available to the active profile with the spoken phrase specified in CommandPhrase. Execute (string CommandPhrase, optional Boolean WaitForReturn, optional Boolean AsSubcommand, optional Action<Guid?> CompletedAction, optional PassedText, optional PassedIntegers, optional PassedDecimals, optional PassedBooleans, optional PassedDates) - This method will execute a VoiceAttack command in the active profile by the spoken phrase indicated in CommandPhrase with the given example.. if (vaProxy.Command.Exists(“fire weapons”)) { vaProxy.Command.Execute(“fire weapons”); } " So I think we may just need a single statement in VIACOM, something like.. On load/change of module if (vaProxy.Command.Exists(“Select Aircraft Profile”)) { vaProxy.Command.Execute(“Select Aircraft Profile”); } Where "Select Aircraft Profile" is the name of your VA command which interrogates Active Module Name and switches the top level aircraft specific profile if necessary. You'd need a copy of it in each aircraft specific profile to ensure it's always found by the above "Exists" test. No impact to other users as it would only execute if the user has created the "Select Aircraft Profile" command in VA. Pretty sure that would give us a solid way to automatically switch aircraft specific profiles in VA on load/change of module though I may be oversimplifying the VIACOM side change required, only Hollywood would know ;) RYZEN 5900X | 32GB | ASUS Strix RTX3090 | 500GB NVMe OS 1000GB NVMe DCS | Warthog HOTAS | HP Reverb G2 | VA & ViacomPRO My DCS Apps: Radio KAOS for DCS KB Quick - Quick and Easy Kneeboards
Weegie Posted November 29, 2020 Posted November 29, 2020 Ok I missed that @shaun57 so it looks like it's a possibility To answer your question Yes I believe Hollywood is ammenable to making changes to Vaicom based on users requests, especially if he feels it's a positive addition and I reckon this would be. He added the exposed vairiable for the regions specifically at my request which auto changes the maps in my personal profile when I complete a reset as I explained further up It's not a biggie for me as normally I'm in the correct profile before starting DCS and if I change to a different module I just use the Voice command, but it is a nice idea as the more you can automate this sort of thing the better I'd go the Vaicom website and then contact him via e-mail, in the past I've found Vaicom customer support very responsive and normally I'd get a reply within a day or two.
ShaunX Posted November 29, 2020 Author Posted November 29, 2020 Thanks mate. I'll drop him an email and make a case for it. RYZEN 5900X | 32GB | ASUS Strix RTX3090 | 500GB NVMe OS 1000GB NVMe DCS | Warthog HOTAS | HP Reverb G2 | VA & ViacomPRO My DCS Apps: Radio KAOS for DCS KB Quick - Quick and Easy Kneeboards
sthompson Posted November 29, 2020 Posted November 29, 2020 So I think we may just need a single statement in VIACOM, something like.. On load/change of module if (vaProxy.Command.Exists(“Select Aircraft Profile”)) { vaProxy.Command.Execute(“Select Aircraft Profile”); } Where "Select Aircraft Profile" is the name of your VA command which interrogates Active Module Name and switches the top level aircraft specific profile if necessary. You'd need a copy of it in each aircraft specific profile to ensure it's always found by the above "Exists" test. I'm not sure what you mean by "in VAICOM" but it appears that this code could be run from inside the plugin itself. Is that what you mean? I would suggest that there might be other actions than switching profiles that someone would want to do when a new module is selected. So I would change the command phrase to something like "New Module Command" or similar rather than "Select Aircraft Profile." It would be nice if rather than loading an entirely new profile you could just execute some VA commands that unload one daisy chained profile and load another. I do not see such fine control of profiles listed in the VA documentation, however. Also, if you "included" the VAICOMPRO profile in each of your module specific profiles then you would only need to define the "New Module Command" once, in the VAICOM profile itself rather than create separate copies for each aircraft. I'm Softball on Multiplayer. NZXT Player Three Prime, i9-13900K@3.00GHz, 64GB DDR5, Win 11 Home, Nvidia GeForce RTX 4090 24GB, TrackIR 5, VKB Gunfighter III with MCG Ultimate grip, VKB STECS Standard Throttle, CH Pro pedals
hornblower793 Posted December 1, 2020 Posted December 1, 2020 On 11/29/2020 at 8:06 PM, sthompson said: It would be nice if rather than loading an entirely new profile you could just execute some VA commands that unload one daisy chained profile and load another. I do not see such fine control of profiles listed in the VA documentation, however. I looked on the VoiceAttack forums and this was a feature request a couple of years ago but doesn't seem to have been taken up Windows 11 Home ¦ Z790 AORUS Elite AX motherboard ¦ i7-13700K ¦ 64GB Corsair Vengeance DDR5 memory @ 5600MHz ¦ Samsung 990 Pro 1TB SSD for OS, Samsung 980 Pro 2TB SSD for DCS ¦ MSI GeForce RTX 4090 Gaming X Trio 24GB ¦ Virpil WarBRD base with VFX grip, Thrustmaster A10c and F/A-18 grips ¦ VKB Gunfighter Mk4 and MCG Pro ¦ Thrustmaster Warthog Throttle ¦ VKB STECS Throttle ¦ Virpil TCS rotor base with Shark and AH-64D grips ¦ MFG Crosswinds ¦ Total Controls Multi-Function Button Box ¦ Pimax Crystal
Weegie Posted December 1, 2020 Posted December 1, 2020 On 11/29/2020 at 8:06 PM, sthompson said: Also, if you "included" the VAICOMPRO profile in each of your module specific profiles then you would only need to define the "New Module Command" once, in the VAICOM profile itself rather than create separate copies for each aircraft. Do you mean having Vaicom appended to a user/module profile rather than the other way around? I tried some rudimetary testing of that setup and it did appear to work but I wonder if I'd lose some functionality within Vaicom, by that I mean I don't know if all the Vaicom features would work. I know that you need to be careful with the syntax of the voice commands as the primary profile will always execute first. For example if I'm using "confirm" in both profiles, whichever profile is primary will have the "confirm" command exectued and the secondary won't, ask me how I know this ;0) In the MODS section there is thread on DCS Presence which outputs the aircraft type among other things to SRS, I've asked the question about how it works as it clearly has some way of extracting the module type from the game https://forums.eagle.ru/topic/243833-dcs-presence/?tab=comments#comment-4497177
sthompson Posted December 1, 2020 Posted December 1, 2020 4 hours ago, Weegie said: Do you mean having Vaicom appended to a user/module profile rather than the other way around? I tried some rudimetary testing of that setup and it did appear to work but I wonder if I'd lose some functionality within Vaicom, by that I mean I don't know if all the Vaicom features would work. I know that you need to be careful with the syntax of the voice commands as the primary profile will always execute first. For example if I'm using "confirm" in both profiles, whichever profile is primary will have the "confirm" command exectued and the secondary won't, ask me how I know this ;0) In the MODS section there is thread on DCS Presence which outputs the aircraft type among other things to SRS, I've asked the question about how it works as it clearly has some way of extracting the module type from the game https://forums.eagle.ru/topic/243833-dcs-presence/?tab=comments#comment-4497177 Yes, that is what I meant. Understood about the potential issues. Regarding how these programs extract module information from the game, they communicate with the game using client server network protocols that are implemented on the game side by lua code that is hooked into DCS and so has access to the current state. The export.lua file is where the "hooking" gets set up. VAICOMPRO also gives commands to DCS, and this requires additional modifications of the DCS code to implement that. As far as I know, SRS does not give instructions to DCS and only uses info extracted from DCS and so does not require similar additional modifications. I'm Softball on Multiplayer. NZXT Player Three Prime, i9-13900K@3.00GHz, 64GB DDR5, Win 11 Home, Nvidia GeForce RTX 4090 24GB, TrackIR 5, VKB Gunfighter III with MCG Ultimate grip, VKB STECS Standard Throttle, CH Pro pedals
Weegie Posted December 1, 2020 Posted December 1, 2020 (edited) Thanks for the info @sthompson, I agree Vaicom must inject commands to the game whereas SRS simply reads data from it. I wondered if it was possible to extract the module data via DCS Export or by interregation of which Export.lua is active, however I'm not familiar enough with either lua coding or the Export scripting to write code to that level It's not such a biggie for me anyway I simply use a voice comand to activate the exposed vairiable, it's not a command I reallly use that much. Granted though it would be nice to automate the process Just seen this perhaps another application for auto selection of modules https://forums.eagle.ru/topic/254389-per-aircraft-ptt-buttons/ Edited December 1, 2020 by Weegie additional information
ShaunX Posted December 2, 2020 Author Posted December 2, 2020 I did email Hollywood (Viacompro Support Team) and proposed the above mentioned change. His response was that we should be able to achieve this within VA by " in the VAICOM profile edit a TX Press/Release command and add a conditional block that uses the currentmodule.name exposed variable. Inside the conditional block add a Switch Profile command via Other -> VoiceAttack Action -> Switch To Another Profile. Now as soon as you press that TX button in the mission, the profile should instantly change to the one you selected. " I guess it's a reasonable compromise. Whatever code you put in the block is only going to get executed if currentmodule.name differs from the currently loaded aircraft specific profile name. Though if you want code to also run on first load (and the loaded module happens to equal the initial aircraft profile you load) maybe always run it first time and set a flag to prevent it repeating until lchange of module. Either that or add your powers of persuasion to mine in asking Hollywood to consider the change (perhaps if I'd worded it as you suggest "New Module Command" rather than "Select Aircraft Profile." it would have made more sense to him. RYZEN 5900X | 32GB | ASUS Strix RTX3090 | 500GB NVMe OS 1000GB NVMe DCS | Warthog HOTAS | HP Reverb G2 | VA & ViacomPRO My DCS Apps: Radio KAOS for DCS KB Quick - Quick and Easy Kneeboards
Weegie Posted December 2, 2020 Posted December 2, 2020 Am I reading that correctly @shaun57 That would mean that every time you pressed a PTT, I'd probably use Tx6, Vaicom would go look at what module was loaded and change to the appropriate module? Seems a little OTT, but I'm rarely in the wrong module If I get the time I'll drop Hollywod a request later for this as a New Module Command, the guy asking about changing PTT buttons for different modules could probably use it too a method of differentiating which profile to load
sthompson Posted December 2, 2020 Posted December 2, 2020 6 hours ago, Weegie said: Am I reading that correctly @shaun57 That would mean that every time you pressed a PTT, I'd probably use Tx6, Vaicom would go look at what module was loaded and change to the appropriate module? I think the idea is that every time you push the PTT then VA would (1) initialize a variable with the current module name if it is not already initialized. (2) Compare the current module name to the saved variable. (3) If they are different then update the saved variable and take other actions (which could be loading a new profile). The overhead for that would be pretty low since only (1) and (2) would be executed on every press of the PTT. But since the VAICOM plugin is probably doing those things already, the proposed modification of the plugin is probably slightly more efficient. But wouldn't it be easiest to just create a new voice command to do these things when requested, rather than on every PTT push? The advantage of making this automatic seem pretty low compared to just pushing TX6 and saying "Module Initialize" or the like, as needed, to invoke code that loads an appropriate profile for the current module. Personally, I sometimes go for days flying the same bird and so would prefer that the checking be done on demand rather than have the overhead of monitoring. The "Module Initialize" command could be in a separate profile that you include within each of your module specific profiles so that it only has to be updated once when you need to modify your module switching code (e.g. after installing a new module). I'm Softball on Multiplayer. NZXT Player Three Prime, i9-13900K@3.00GHz, 64GB DDR5, Win 11 Home, Nvidia GeForce RTX 4090 24GB, TrackIR 5, VKB Gunfighter III with MCG Ultimate grip, VKB STECS Standard Throttle, CH Pro pedals
Weegie Posted December 2, 2020 Posted December 2, 2020 Makes sense to me @sthompson I just included the same command into each of my profiles rather than generate another profile for that specific purpose, but I'm sure either would work fine. My profiles are inefficient enough without adding and executing unecessary additional code hence the reason I probably wouldn't implement Hollywood's suggestion.
RogueSqdn Posted December 4, 2020 Posted December 4, 2020 This may help someone here... I figured out a way to have different PTTs per aircraft and only have to have one VA profile: DEFENSOR FORTIS Spoiler Systems: Falcon NW Talon: Ryzen 9 5950X @4.9GHz, 64GB DDR4, RTX 3090 FE; Falcon NW Mach V: Core i7 3930K @3.2GHz, 32GB DDR3, GTX 1080 FE Cockpit: MonsterTech MTX F, 42" 4K TV, HP Reverb G2, Oculus Rift S, PointCTRL Controls: RS F16SGRH CE, RS F18CGRH, VPC T-50CM2, VFX, WarBRD (Grips); VPC T-50CM2, RS FSSB R3L (Bases); Winwing F/A-18C, VPC T-50CM3, VPC T-50CM, TM Warthog, Cougar (Throttles); VPC ACE2 (Rudders)
Recommended Posts