Release EDDI - Windows app for immersion and more

Status
Thread Closed: Not open for further replies.
So all those variables are voice attack variables? Like the INT:EDDI docking granted landingpad ? I had assumed those were EDDI internal variables. If they are Voice Attack variables, that changes everything.

Yes, it does.

To clarify, when EDDI parses a Journal event, it executes (simultaneously but asynchronously) both the Speech responder script and the VoiceAttack command associated with that Journal event. EDDI makes available to VoiceAttack any pertinent data that was included in the Journal event. As Commander Tkael stated, https://github.com/cmdrmcdonald/EliteDangerousDataProvider/blob/master/VoiceAttack.md is your friend when it comes to leveraging VoiceAttack with EDDI.

Another very important resource is the Journal Manual from FDev, which details all Journal events and the data available for each specific event, http://hosting.zaonce.net/community/journal/v8/Journal_Manual.doc. This is the bible... read it, learn it, live it. This will tell you exactly what EDDI is (and is not) capable of doing.

Lastly, be mindful of EDDI and VoiceAttack's particular strengths and weaknesses. EDDI is excellent at parsing large amounts of data and 'saying things', but is incapable of 'doing things' and passing data between EDDI & VA is doable but very limited. VoiceAttack is horrible at parsing data, okay at 'saying things', and is all about 'doing things'. Use each to it's strength and avoid, if you can, its weakness.

For example, my current project is utilizing the 'Traveling Salesman Problem' to take all your current missions, devise a 'shortest distance traveled' route (returning you back to your starting point), and automatically plot the next system as you complete missions.

The algorithm for TSP requires the use of a matrix of distances between each mission location. If I could build matrices within an EDDI speech responder script, the problem would be trivial because nested looping is sublime within Cottle, plus all the mission location distances are easily attainable (via SystemDetails())... Disclaimer: not sure if Cottle can 'do' matrices, which would put the kibosh on solving entirely within a speech responder script.

But, as I said, passing data from VA to EDDI is very limited. As a result, I pass the 'To' and 'From' systems names to a speech responder script which returns the distance and I build a pseudo-matrix within VoiceAttack using the 'dynamic variables' trick (VA on hard-mode and worthy of it's own post). Doing this within VA is very painful (because this IS NOT playing to VA's strength) but the results (I think) will greatly improve the QoL for Mission Stackers.

Building, maintaining, and pruning a 'mission list' from ((Mission accepted)), ((Mission completed)) and ((Mission abandoned)) events is pretty much working. I hope to have it fully working and share it with you all in the near future... current sticking point is finding a non-brute-force algorithim (shortcut to running all (n-1)! permutations) that is within VA's limited capability. The ultimate answer may be turning it into a VA plugin, but given I'm not a skilled C# programmer, there's a bit of a learning curve to overcome.


EDIT: multiple edits to improve readability
 
Last edited:
I have a problem with the installation (rather setup) of EDDI (see pictures below).

I installed it - so far so good. I also installed several alternative voices in Windows 7 (downloaded from microsoft). They show up in Windows' voice setup and can all be used.
However, EDDI only shows Windows default Anna and none of the other installed voices.
Also, if I set one of these other voices as default in Windows, EDDI crashes if I use the voice preview - no matter if it is set to Anna oder Win default TTS in EDDI.

Can anybody help?

--> Pic 1: http://i.imgur.com/qTNxi5c.jpg

--> Pic 2: http://i.imgur.com/FhcezSF.jpg
 
Last edited:
Yes, it's possible. My code loops through the modules installed on the ship and looks for a match (I'd welcome any improvements that the community can offer):

SRV check (with an additional variable for whether it's enabled since on some ships I'll turn it off to save power)
Code:
{set installed to 0}
{set enabled to 0}


{for compartment in ship.compartments:
    {if compartment.module.name = "Planetary Vehicle Hangar":
        {set installed to 1}
        {if compartment.module.enabled:
           {set enabled to 1}
        }
    }
}


{SetState("srv_installed", installed)}
{SetState("srv_enabled", enabled)}

Fighter bay check
Code:
{set fighterbay to 0}


{for compartment in ship.compartments:
   {if compartment.module.name = "Fighter Hangar":
      {set fighterbay to 1}
   }
}


{SetState("fighterbay", fighterbay)}

Here's an example... I use this in my touchdown script:
Code:
{_ SRV Check _}
{F("SRV check")}
{Pause(2000)}
{if state.srv_installed && state.srv_enabled:
   SRV Ready {Occasionally(2, "for deployment.")}.
|elif state.srv_installed:
   If you are planning an excursion, please enable the Planetary Vehicle Hangar.
|else:
   No planetary vehicle hangar has been installed.
}

ooo very nice, I'll give it a go when i get the chance ö7
 
Please carefully review the documentation that I already referenced. You'll find that https://github.com/cmdrmcdonald/EliteDangerousDataProvider/blob/master/VoiceAttack.md answers your question. EDDI generates Voice Attack events that you can respond to in Voice Attack and variables that you can reference within Voice Attack.

For your specific query, please review the section on the "Docking granted" event and create a Voice Attack command called "((EDDI docking granted))" as described by the documentation. EDDI will then trigger the command, and any code that you include in that command, whenever authorization for docking is granted.

Ok. I still don't see how to pass Docking granted values to Voice Attack. Yes, there are those variables

{INT:EDDI docking granted landingpad} The landing pad at which the commander has been granted docking
{TXT:EDDI docking granted station} The station at which the commander has been granted docking

But those are event variables and from what it says, "event variables are only valid when the event occurs, and cannot be relied upon to be present or a specific value at any other time." So how do you pass a variable to VA showing that docking has been granted? There's noting about docking in the global variables.

I know what you said about "((EDDI Docking Granted))" But that will only fire when another VA command calls it. Or so I've always believed.

Edit: Nvm. I just found something I missed in the EDDI VA Documentation. Arrrggghhh!!!! Hate when I have a brain fart like that!!!! Grrrrr!!!
 
Last edited:
I know what you said about "((EDDI Docking Granted))" But that will only fire when another VA command calls it. Or so I've always believed.

When you make the VA-command ((EDDi docking granted)) it will execute when the Docking granted event occurs. So let's say you want to deploy the landinggear 10 seconds after the docking is granted all you have to do is create the ((EDDI docking granted)) command that starts with a 10 second pause and then presses the key to deploy your landing gear.
Or you could assign a variable like dockinggranted=true and use that in another VA-command.

The event name in your VA-command needs to be lowercase BTW so ((EDDI docking granted)) instead of ((EDDI Docking granted))
 
I know what you said about "((EDDI Docking Granted))" But that will only fire when another VA command calls it. Or so I've always believed.

No, ((EDDI docking granted)) or any other ((EDDI xxxxxx)) VA command is triggered to execute within VA (if the command exists), by EDDI VoiceAttack Responder. This is effectively the plugin part of EDDI.

If the command exists, it executes automatically when the corresponding Journal event occurs.
 
Last edited:
Yeah. That's the part I missed in the documentation. I don't know how I missed that. I don't know how I missed it as I didn't just skim it. I read it all, or so I thought. Sorry again for the brain fart.
 
I have a problem with the installation (rather setup) of EDDI (see pictures below).

I installed it - so far so good. I also installed several alternative voices in Windows 7 (downloaded from microsoft). They show up in Windows' voice setup and can all be used.
However, EDDI only shows Windows default Anna and none of the other installed voices.
Also, if I set one of these other voices as default in Windows, EDDI crashes if I use the voice preview - no matter if it is set to Anna oder Win default TTS in EDDI.

Can anybody help?

--> Pic 1: http://i.imgur.com/qTNxi5c.jpg

--> Pic 2: http://i.imgur.com/FhcezSF.jpg

I am very new to EDDI myself but in the enormous amount of information I have read online in recent days I vaguely recall seeing there being a Windows voice issue with 64bit systems like my own.

I followed the advice online and had to install a IVONA Amy natural sounding voice (not free) and that worked perfectly within EDDI whereas the other Microsoft voices mostly wouldn't apart from the same two you already tried.

Ivona Amy is apparently either the same voice as VA ASTRA or as similar as you can't tell the difference. 30 day free trial then €39 to register after that. Link here https://www.ivona.com/

Hope this helps.
 
Last edited:
Hi
I recently installed EDDI 2 to use in voice attack but have 2 questions:
1- I notice there are alot less scripts in EDDI 2 than EDDI 1 that I saw from a youtube video. I only see maybe less than 30 in all in my installation. Commands like ship handover not there at all. Is this normal?
2- When I ask "tell me about this system" it always replies: "not sure what system I refering to". What am I doing wrong?
 
Upgrading to 2.2.0

Hi,
I have the previous 2.x version installed (not the beta). I have changed a few scripts and also use VA.

Will upgrading to the new version erase my scripts?

I remember reading on the forum that there might be a way to show previous versions of the scripts. Has this been implemented?

Thanks
 
Hi,
I have the previous 2.x version installed (not the beta). I have changed a few scripts and also use VA.

Will upgrading to the new version erase my scripts?

I remember reading on the forum that there might be a way to show previous versions of the scripts. Has this been implemented?

Thanks

I had no problems updating to beta and then to 2.2 but you can make a backup of the important stuff, most important is the personality (\Users\{userName}\AppData\Roaming\EDDI\personalities\) and the database of visited systems (tells you how often you have been there, called EDDI.sqlite and should be one directory above) I just ziped the hole EDDI folder
 
Better yet make it look for a variable. In my VA profile, there is a variable called docking. Once you have requested docking it sets that variable. Should be easy to set a state variable to the same effect. If that variable is 0 or has not been set, it would ask you that. If it was set to 1, it wouldn't as the only way to set that variable is through the Docking granted script. I mean you could have it elsewhere, but why would you?

Maybe a bit outdated but here a little tweak. You could probably put the reset in the Docked script (and Docking cancelled as well as Docking timed out) or make it "self-timeout" with
Code:
{SetState(Eddi_DockGrant, SecondsSince(0))}
in Docking granted and check in Station no fire zone entered
Code:
{if SecondsSince(Eddi_DockGrant) > 180:
...warning
 
Maybe a bit outdated but here a little tweak. You could probably put the reset in the Docked script (and Docking cancelled as well as Docking timed out) or make it "self-timeout" with
Code:
{SetState(Eddi_DockGrant, SecondsSince(0))}
in Docking granted and check in Station no fire zone entered
Code:
{if SecondsSince(Eddi_DockGrant) > 180:
...warning

Actually, I made a VA command ((EDDI Docking denied)) to clean up a bit as I'm using the Full House HOTAS 1.65 profile. There's a variable called docking and if it is 1 then it won't even request it. The ((EDDI Docking denied)) resets that to 0. And I did a ((EDDI Docking granted)) and have it set boolean variable to true. When a station's no fire zone is entered, it checks that boolean and if not set or false, it issues a warning.
 
Last edited:
When a station's no fire zone is entered, it checks that boolean and if not set or false, it issues a warning.
When I enter the no fire zone my AI asks me if I want to request docking if I haven't done it already. Answering yes calls my docking request command.
Yesterday when returning from a fight with some pirates and only 2% hull left it almost went wrong. I was paying more attention to not hitting the frame of the station that I didn't noticed the docking request didn't work and got trespass warnings and I just barely escaped being killed by the station. The docking request didn't work because the station wasn't on top of the contactslist which happens now and then so the keypresses didn't do anything. Looking at how to prevent this from happening I found the Docking requested event. Now I use a ((EDDI docking requested)) command to see if my request actualy was made and if it hasn't my AI gives me a loud warning.
 
Last edited:
Hi!
Okay, I finally fixed it :D. For those of you who have a similar struggle like I did --> here, this is what worked for me (you do this on your own responsibility):

The basic problem is Microsoft. They cannot get their sh*t together to get their very own products to work with each other [wacko].
More free TTS-voices for Windows can be downloaded --> here. However, you also MUST download and install the --> MS Speech Server.
And this is the tricky part. There are 2 versions of it: 32 bit and 64 bit. I have Win 7 64 bit - so I downloaded the 64 bit version. This is necessary, to get the voices work in your Windows. BUT, EDDI is a 32 bit program - and it cannot access the 64 bit speech server. That's why it crashed on my PC [ugh]. So, you must install the 32 bit Speech Server to make it work for EDDI (unless they release a 64 bit EDDI). So, to make the new voice work in Windows and EDDI you must install BOTH Speech Server versions.

But wait, there is more!

Since MS f*cked it up real good, your new voices don't show up in the control panel anyway [where is it]. This is because they cannot get the registry keys right. You have to:
follow --> this tutorial I found in the web (grey parts).
So finally, the voices show up in the control panel and work with Windows.
But - at least for me - the voices still don't show up in EDDI.

But wait, there is more!

Since MS f*cked it up really really good, you cannot select the voices for EDDI here - because you automatically open the 64 bit control panel and cannot select the voice for 32 bit programs.
So go to %windir%\sysWOW64\speech\SpeechUX\ and start SAPI.cpl. This let's you start the 32 bit voice control panel - which looks exactly the same :O. You can now choose the voice you want.
Then, go to EDDI and select "use standard Windows TTS" and FINALLY, you have the new voice in EDDI.[up]

More info about the problems can be found --> here.


I hope, this helps you guys, too. [heart]
 
Hey guys, new CMDR here, picked up ED just a few days ago, then stumbled upon EDDI yesterday and immediately installed it. Great work on this app, I really love it!

My problem is that EDDI doesn't say anything when I scan a planet or star, which is really sad since I want to become an explorer once I get the funds for a decent ship. EDDIs netlog monitor is working (she's giving info about the system I'm about to jump into), so that can't be the cause. I created a new personality in the speech responder tab but I haven't changed the entries for star/planet scanned or star/planet report and indeed when I click on test in that tab, it's working just as it should, it simply doesn't pick up my completed scans ingame.

I'm at a loss, do I need a better scanner than the basic discovery scanner for it to work? Or do I need the surface scanner? And yes, I know the difference between discovering a star/planet with an active scan and actually "scanning" the body when I get closer to it; the latter one should trigger the event, which isn't working. Can anyone point me in the right direction as to what I might be doing wrong?
 
Status
Thread Closed: Not open for further replies.
Back
Top Bottom