Ciribob Posted June 29, 2016 Posted June 29, 2016 Introducing the snappily named: DCS Simple Radio Standalone The goal of this project is to bring integrated Radio Comms into DCS similar to my existing TS plugin and others (Aries, UniversRadio, TARS) but without relying on TeamSpeak. The Standalone is meant to be a compliment for TS, allowing players to use Full Radio voice comms if they want with the eventual goal of the program automatically connecting when connecting to a multiplayer server. TS is then used as a fall back to establish frequencies or for those that don't have the radio. Its quite early days but currently I have working: All FC3 Aircraft with Realistic Radios and Frequencies + Guard Frequencies All Clickable cockpit aircraft including Gazelle Hotkeys for PTT + Switching Active Radio (Gazelle + A10C + FC3 only) In Cockpit PTT Intercom Support in L-39 GCI / CA / ATC Radio Voice encryption for A-10C / Mirage / F-15C / A-10A / Gazelle Radio Overlay indicating current frequencies, selected radio and active light when Transmitting or Receiving Built from Scratch voice protocol using OPUS encoding - allows much greater flexibility as I'm not dependant on TS3 or Mumble. Client Microphone Boost Audio Separation Optional Line of Sight Optional Radio Distance limitations Squelch Effect Handling of Lag and Missing Packets Support for 10 radios for Ground Commander / AWACS Server side controlled expansion radios giving 3 radios to almost all aircraft including WW2 for training You only need to run the installer to install the Scripts into DCS. The SR-Server.exe can be run without the installer. DO NOT run the installer or install the Script on your Standalone server unless your going to be flying as the server (no need too ) To Host the server all you need to do is run SR-Server.exe and make and TCP and UDP port 5002 is open. It does not need to be on a PC running DCS and you do NOT need to port forward if you're just using the client .NET version 4.6.2 Required - PLEASE INSTALL THIS BEFORE INSTALLING SRS - https://www.microsoft.com/en-gb/download/details.aspx?id=53345 DOWNLOAD HERE - Unzip all files and Run the Installer: https://github.com/ciribob/DCS-SimpleRadioStandalone/releases/latest or use the One Click Auto Updater to install and / or update Manual Install Procedure Extract the entire zip somewhere Copy DCS-SimpleRadioStandalone.lua to C:UsersUSERNAMESaved GamesDCSScripts Copy DCS-SRSGameGUI.lua to C:UsersUSERNAMESaved GamesDCSScripts Copy DCS-SRS-OverlayGameGUI.lua to C:UsersUSERNAMESaved GamesDCSScripts Copy DCS-SRS-Overlay.dlg to C:UsersUSERNAMESaved GamesDCSScripts Copy DCS-SRS-Hook.lua to C:UsersUSERNAMESaved GamesDCSScriptsHooks Create the script folder if it doesnt exist Add to the END of the Export.lua file in C:UsersUSERNAMESaved GamesDCSScripts: local dcsSr=require('lfs');dofile(dcsSr.writedir()..[[scriptsDCS-SimpleRadioStandalone.lua]]) If Export.lua doesn't exist, just create the file and add the single line to it. Copy the rest of the zip files where ever you like and then run, don't forget to keep opus.dll with the rest of the .exes Server Hosting Procedure Run SR-Server.exe (no need to run installer or add scripts!) and make sure TCP and UDP port 5002 are open. It does NOT need to be on a PC running DCS. If you change the server port by editing the CFG file - be sure to always open the TCP and UDP for that Auto Connect Feature - Server Owners ONLY - Clients don't need this file! To enable SRS clients to be prompted automatically to connect just add the DCS-SRS-AutoConnectGameGUI.lua to the appropriate DCS Saved Games folder e.g. DCS.openbeta/Scripts/Hooks, DCS.openalpha/Scripts/Hooks or jut DCS/Scripts/Hooks If you dont have a Scripts or a Hooks folder inside Scripts, just create them Edit the line below to your server address where SRS server is running. Port is optional. DCS must be restarted on the server for this file and any changes to take effect. -- CHANGE FROM SRSAuto.SERVER_SRS_HOST = "127.0.0.1" -- Port optional e.g. "127.0.0.1:5002" --TO SRSAuto.SERVER_SRS_HOST = "5.189.162.17:5010" -- BuddySpike One -- OR SRSAuto.SERVER_SRS_HOST = " 37.59.10.136" -- TAW One (port optional) And thats it. If a client isn't connected and has SRS running they'll be prompted to connect automatically. You'll also see the message posted in the chat listing the address when slots change or a client connects. Installation and Overview Video Troubleshooting Please follow the instructions here: https://forums.eagle.ru/showpost.php?p=2963204&postcount=1122 Future Features Signal Degradation sound effects - Noise Increase with distance HAVE QUICK II FM transmission blocking (FM knocks out weaker FM Signals) Location for AWACS / GCI Encrypted Radios DCS-SRS now supports encrypted Radios with differing keys. If a Radio receives an encrypted voice signal but doesn't have either the correct decryption key or decryption equipment, white noise will be played. A radio with encryption enabled can hear non encrypted transmissions as normal. Encryption is shown on the Radio overlay with an E followed by a number by the radio. The number indicates the key that is in use. A-10C Procedure to enable Encrypted Audio: Turn Power on to KY-58 Set Mode to OP Pick the fill use wish to use. This is the key that encodes the audio. The receiving radio must have the same key set Turn to C/RAD 1 to encrypt AN/ARC-164 UHF Turn to C/RAD 2 to encrypt AN/ARC-186(V)FM Turning to plain will disable encryption again Mirage Procedure to enable Encrypted Audio: Setup Radios as Normal Press the Green UHF CDE Switch To change the Mirage code use the overlay Demo Video of Native DCS Overlay Overlay and Overlay Configuration The overlay has 3 states, hidden, small & full that you can see by pressing Left Control + Left Shift + Escape by default. The Full state has a title bar that you can click and drag the window around with. The window position will be saved for when DCS is next opened. The radio status is removed after 5 seconds if SRS is closed or loses server connection To configure the overlay hotkey, run DCS once to create a config file in Saved GamesDCSConfig which will look something like so and quit DCS: config = { ["mode"] = "minimum", ["hotkey"] = "Ctrl+Shift+escape", ["windowPosition"] = { ["y"] = 342, ["x"] = 981, }, -- end of ["windowPosition"] } -- end of config Edit the "Hotkey" section and add the characters from the keyboard you'd like to use instead. i.e config = { ["mode"] = "minimum", ["hotkey"] = "Ctrl+Shift+1", -- now uses the combination of ctrl shift and 1 together to toggle ["windowPosition"] = { ["y"] = 342, ["x"] = 981, }, -- end of ["windowPosition"] } -- end of config Dont forget to restart DCS after editing this file or you wont see the changes. If you want to remove the overlay entirely and never use it, just delete: DCS-SRS-Overlay.dlg DCS-SRS-OverlayGameGUI.lua In Saved GamesDCSScripts Preset Channel Configuration Preset channels can be created for all FC3 aircraft and all expansion radios for Non FC3. Channel presets are created per Radio - full list of names & frequencies here https://docs.google.com/spreadsheets/d/1tzd996zJ1t0heZ-t1PpL7vNUIZbXl7pI6De0GThN1Qw/edit#gid=1869108790 ) Preset files are named after the radio (no special characters needed & case is ignored) and are text files with a single frequency on each line. For example, to create a fixed channel list for the first UHF radio in the F15C: Create a file called ANARC-164 UHF1.txt or anarc164 UHF1.txt where you installed SimpleRadio Standalone (where the client exe is), add frequencies and save. The file will be automatically loaded when that radio appears on an aircraft. The frequency list can also be manually reloaded with the reload button. The files are per radio not per aircraft. Finally - I need your help! If you'd like to help with this project, please help me fill in this sheet of radio info! It'll also help correct any mistakes I've made with the Radios. LINK: https://docs.google.com/spreadsheets/d/1tzd996zJ1t0heZ-t1PpL7vNUIZbXl7pI6De0GThN1Qw/edit#gid=1869108790 The work can't be done without the data so if you can help fill in a box please do! 4 Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :) DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord
Pikey Posted June 29, 2016 Posted June 29, 2016 First! ;) 1 ___________________________________________________________________________ SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *
JanTelefon Posted June 29, 2016 Posted June 29, 2016 (edited) Amazing piece of code Ciribob! This kind of radio management should be implemented in the game by default. Edited June 29, 2016 by JanTelefon 1
SUNTSAG Posted June 29, 2016 Posted June 29, 2016 Tried and tested Ciribob thanks for all your effort. It worked a treat on mission night with the 42nd. -=42VFG=- NAKED Callsign: NAKED My YouTube Channel [sIGPIC][/sIGPIC]
SpeedStick Posted June 29, 2016 Posted June 29, 2016 (edited) I love you. This is a new era. But also reminds me of the good old PR and Mumble days. Edited June 29, 2016 by SpeedStick "Hard to imagine bigger engine. its got a beautiful face and an arse built like sputnik." - Pikey AKA The Poet, on 37 Viggen.
Raz_Specter Posted June 29, 2016 Posted June 29, 2016 thanks Ciribob - its awesome -=42VFG=-SPECTER Custom built W10 Pro 64Bit, Intel Core i9 9900k, Asus ROG Maximus Code XI Z390, 64GB DDR4 3200 RGB, Samsung 1TB NVme M.2 Drive, Gigabyte AORUS 2080TI, 40" Iiyama Display. Wacom Cintiq Pro 24, HOTAS Virpil T50 Stick / FA-18C TM Stick and Virpil T50 Throttle, MFG Crosswind Graphite Pedals. HP Reverb SPECTER [sIGPIC][/sIGPIC] Lead Terrain Developer / Texture Artist
StandingCow Posted June 30, 2016 Posted June 30, 2016 Really wish DCS had ingame comms. Awesome work Ciribob, even outside of blueflag the folks I fly with have been using this with no issue. Very easy to install. 5900X - 32 GB 3600 RAM - 1080TI My Twitch Channel ~Moo
uboats Posted June 30, 2016 Posted June 30, 2016 nice job [sIGPIC][/sIGPIC] My DCS Mods, Skins, Utilities and Scripts | Windows 10 | i7-4790K | GTX 980Ti Hybrid | 32GB RAM | 3TB SSD | | TM Warthog Stick | CH Pro Throttle + Pro Pedal | TIR5 Pro | TM MFD Cougar | Gun Camera: PrtScn |
Sporg Posted June 30, 2016 Posted June 30, 2016 Ciribob, is there any chance you could convince ED to implement this mod in the official release? Would be a very good feature. :) System specs: Gigabyte Aorus Master, i7 9700K@std, GTX 1080TI OC, 32 GB 3000 MHz RAM, NVMe M.2 SSD, Oculus Quest VR (2x1600x1440) Warthog HOTAS w/150mm extension, Slaw pedals, Gametrix Jetseat, TrackIR for monitor use
Mirknir Posted June 30, 2016 Posted June 30, 2016 (edited) Nice work! I am also wondering if you have more information on performance impact and especially bandwith used per interacting players. Is the server only used to connect players and then the voice process is distributed thru clients or does the server need to receive and forward all the voice? Right now, the TS server is hosted somewhere else so I don't have to care about performances/bandwidth being drawn from my DCS server to the VOIP system. DCS is already pretty greedy on bandwith so I am wondering what would be the impact to host this system on the same not-crazy-great hardware/connection of my DCS server? Edited June 30, 2016 by Mirknir Mirknir My old server: The Thread
Coxy_99 Posted June 30, 2016 Posted June 30, 2016 Nice work! I am also wondering if you have more information on performance impact and especially bandwith used per interacting players. Is the server only used to connect players and then the voice process is distributed thru clients or does the server need to receive and forward all the voice? Right now, the TS server is hosted somewhere else so I don't have to care about performances/bandwidth being drawn from my DCS server to the VOIP system. DCS is already pretty greedy on bandwith so I am wondering what would be the impact to host this system on the same not-crazy-great hardware/connection of my DCS server? There is no performance hit.
Ciribob Posted June 30, 2016 Author Posted June 30, 2016 Nice work! I am also wondering if you have more information on performance impact and especially bandwith used per interacting players. Is the server only used to connect players and then the voice process is distributed thru clients or does the server need to receive and forward all the voice? Right now, the TS server is hosted somewhere else so I don't have to care about performances/bandwidth being drawn from my DCS server to the VOIP system. DCS is already pretty greedy on bandwith so I am wondering what would be the impact to host this system on the same not-so-good hardware/connection of my DCS server? I've not done many tests, as its early days yet but voice is currently transmitted from a client to the server, and then distributed to all other clients over UDP. Each receiving client then determines if they can actually hear the audio. Originally there was a sync system built in and the server would then determine if it should send the packet to a particular client or not but in a trade-off of bandwidth vs processing power and sync speed I picked bandwidth. If it becomes an issue this can always be revisited and the sync method reintroduced :) I've just done a quick benchmark of the bytes going out over UDP (the UDP payload so this excludes UDP Header) and its roughly 3-4 KB/s for a client transmitting audio. As I said above, client audio is naively distributed to all other connected clients so your total server outgoing bandwidth will just be 3.5 * (number of connected clients - 1) for one transmission and incoming is just number of clients transmitting * 3.5 both giving numbers in Kilo Bytes (not bits!). Its worth mentioning the SimpleRadio Server doesnt need to be on the same PC as the one hosting the mission, it doesnt touch DCS, so can be run on any Windows PC. Hope that helps! I'm quite jet lagged so apologies for any mistakes above... 1 Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :) DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord
SageOT Posted June 30, 2016 Posted June 30, 2016 So not near my PC to download yet... From what I've read this is basically like how BMS does it right? The overlay, is that always on or if you're in a full fidelity module it's off? Also, if this works like I think I understand it does... Ciribob, you're my new DCS hero! Not having to go through TS, thank you Jebus! TS plugin installs is what keeps us away from the other radio mods out there as some folks really don't like to mess with TS. Can't wait to try it out. VFA-25 Fist of the Fleet[sIGPIC][/sIGPIC] Virtual Carrier Strike Group One | Discord
Ciribob Posted June 30, 2016 Author Posted June 30, 2016 So not near my PC to download yet... From what I've read this is basically like how BMS does it right? The overlay, is that always on or if you're in a full fidelity module it's off? Also, if this works like I think I understand it does... Ciribob, you're my new DCS hero! Not having to go through TS, thank you Jebus! TS plugin installs is what keeps us away from the other radio mods out there as some folks really don't like to mess with TS. Can't wait to try it out. Pretty much that, its IVC :) The Radio Overlay is optional, you can open and close it when DCS is or isn't running. Its mostly for FC3 aircraft so you can control radios and frequencies but I like to use it for Full fidelity as well as it will indicate the state of all the radios and when you're transmitting or receiving. You can also make it transparent with the bottom slider. You should thank the Buddy Spike team for hassling me to do it! :P New Release - Version v1.0.4.0 Change Log: Fixed Clear buttons for Bindings so they work Fixed individual Radio not being disabled when it should be for FC3 Aircraft Return Focus to DCS for FC3 button presses on Radio Overlay Increased CA radio range for FM If you have v1.0.3.0 it should prompt you about the update when you open the client or server. To Update just download the latest version, extract all the files from the zip and run the installer. You can also update manually by just replacing the LUA in the scripts folder and all the exe's where ever you put them. The major change in this is the experimental return of focus to DCS. As the Radio overlay sits above DCS, when you interact with it with the mouse, focus to DCS is lost and you have to click back to select DCS. The overlay will now automatically do this for you for all FC3 aircraft when you press any enabled button or use the volume sliders. After dragging the window, resizing or changing the opacity focus will not automatically be returned. For non-FC3 aircraft, focus is not returned either as no buttons are enabled for the user to interact with. Please let me know if the auto-update prompt works or if you have any issues! :) I will try to work on getting the intercom for the L-39 working and some tutorial videos done next. Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :) DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord
SpeedStick Posted June 30, 2016 Posted June 30, 2016 We but live in your shadow. My mind exploded when Mule aka Pikey told me about it the first time. "Hard to imagine bigger engine. its got a beautiful face and an arse built like sputnik." - Pikey AKA The Poet, on 37 Viggen.
recofsky_sergio Posted June 30, 2016 Posted June 30, 2016 Very good work! Question: Do you have voice detection to automatically activate the microphone?
Tarres Posted June 30, 2016 Posted June 30, 2016 Hi Ciribob. I ve sended to you a new version for the LUA with a minor bug and a possible change. Great work as always!
Ciribob Posted June 30, 2016 Author Posted June 30, 2016 (edited) Hi Ciribob. I ve sended to you a new version for the LUA with a minor bug and a possible change. Great work as always! Thanks! Got the LUA. I'll change the CA Radios in the next update to have the better range :) For the M2000C - I'll change to Hotkeys instead of the Amplis switch instead. Forgot it had the Hotas controls switch Edit: Very good work! Question: Do you have voice detection to automatically activate the microphone? No you must use PTT, sorry. Edited June 30, 2016 by Ciribob Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :) DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord
recofsky_sergio Posted June 30, 2016 Posted June 30, 2016 OK Perfect, but you can be programmed a key combination?
Ciribob Posted July 1, 2016 Author Posted July 1, 2016 OK Perfect, but you can be programmed a key combination? Currently its just a single key or joystick button. I will be looking at making it possible to have a modifier and a button but that will take time :) Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :) DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord
Ciribob Posted July 3, 2016 Author Posted July 3, 2016 (edited) New Release - Version v1.0.5.0 Change Log: Changed Look and Feel of Connect window Added new Settings Panel Able to configure which radio goes to which audio channel on the fly, changes take effect immediately Added experimental Radio Effects Changed CA / Ground Commander to have 2 VHF/UHF Radios with a greater range Increased CA / Ground Commander FM Range Max to 76 Changed Mirage to use Hotkeys rather than in-cockpit radio selector (it has HOTAS controls) - Same as Gazelle, A10C and all FC3 The UI of the connect window is still pretty ugly but you don't to look at it long... If you have v1.0.3.0 or newer it should prompt you about the update when you open the client or server. To Update just download the latest version, extract all the files from the zip and run the installer. You can also update manually by just replacing the LUA in the scripts folder and all the exe's where ever you put them. I will try to work on getting the intercom for the L-39 working and some tutorial videos done next, I didn't get round to that this evening. The radio effects haven't been well tested, so once they're turned on in the settings panel (off by default), please let me know how you find them! Please let me know if the auto-update prompt works or if you have any issues! :) DOWNLOAD HERE - Unzip all files and Run the Installer: https://github.com/ciribob/DCS-SimpleRadioStandalone/releases/latest Manual Install Procedure Copy DCS-SimpleRadioStandalone.lua from the zip to C:\Users\USERNAME\Saved Games\DCS\Scripts Create the folder if it doesnt exist Add to the END of the Export.lua file in C:\Users\USERNAME\Saved Games\DCS\Scripts: local dcsSr=require('lfs');dofile(dcsSr.writedir()..[[scripts\DCS-SimpleRadioStandalone.lua]]) If Export.lua doesn't exist, just create the file and add the single line to it. Copy the rest of the zip files where ever you like and then run, don't forget to keep opus.dll with the rest of the .exes Edited July 3, 2016 by Ciribob 1 Scripts: Complete Transport And Logistics Deployment - CTLD / CTLD Examples - Lots of example of how to use CTLD CSAR Script - Downed Pilot Rescue / Dedicated Server Script - Automatically launch DCS Multiplayer server at startup Range Scoring Script - Get scores and counts hits on targets for gunnery or bombs / SimpleSlotBlock - Multiplayer dynamic Slot Blocking Script Projects: DCS-SimpleRadio Standalone - DCS Radio Integration for All Aircraft - NO TeamSpeak Required! :) DCS-SimpleRadio Troubleshooting Post / DCS-SimpleRadio Free Support Channel on Discord
Sim Flyer Posted July 4, 2016 Posted July 4, 2016 Is any of the big / dedicated servers (104th, open conflict, VA, TAW) running this mod. Would love to try and test it on a large open server and see how it works there. Maybe we could make a list of the servers using this and IP for the radio servers?
Recommended Posts