Release EDDI - Windows app for immersion and more

Status
Thread Closed: Not open for further replies.
Greetings EDDI Users Community!

T'kael, Vertical Blank, Darkcyde & I would like to announce that we are undertaking the challenging task of maintaining EDDI.

Wishing you the best of luck and giving you rep is about the only thing I can do. I have not the faintest idea of coding. Thank you.
 

rootsrat

Volunteer Moderator
Greetings EDDI Users Community!

T'kael, Vertical Blank, Darkcyde & I would like to announce that we are undertaking the challenging task of maintaining EDDI.


Our orders of priority are:
1. Add new Journal & API functionality in 2.4
2. Squash bugs still present from 2.3 and before.
3. Improve Ship & Cargo Monitor functionality, which involves adding Journal events not previously implemented.
4. Incorporating Darkcyde's Mission script functionality into a new 'Missions Monitor'.

It's been a steep learning curve and bit of a slog familiarizing ourselves with a mature, existing code base, but we're building up a good head of steam and starting to make good progress. At present, chances are fairly low that we will have a 2.4 beta ready for public consumption before the live release, but we will endeavor to keep that delay to a reasonable minimum.

For those interested in 'tracking' our progress, you can go to the EDCD EDDI GitHub issues page:

https://github.com/EDCD/EDDI/issues


Cheers!

Best of luck guys, looking forward to it!
 
For me EDDI is a must have add on for ED, I'm so glad that you guys have pick up the baton I wish you all the best. [up]

I wish I could help, but my knowledge of coding you could write on a back of a postage stamp :D. Maybe with the next version of EDDI you stick a donate button, I would happily throw some money your way as show of appreciation.
 
regarding Speech responder; 'Message recieved'

i like to filter [local] messages, so i only get [direct] messages.

is it possible? if yes can someone also write me down the string since im more a user then a coder, thanks!
 
regarding Speech responder; 'Message recieved'

i like to filter [local] messages, so i only get [direct] messages.

is it possible? if yes can someone also write me down the string since im more a user then a coder, thanks!

I just tried to code and test a solution for you but I think I found a bug in EDDI instead. :p

This should do what you need.....
Code:
{if event.channel = "direct":
    Direct message from {event.source}: {event.message}.
}

However, when I tested it getting a 'direct' message from a station, the 'channel' was set as 'NPC' not 'direct', even though it was a direct message and 'NPC' should only be listed as a 'source'.

I'll have to run some more thorough tests to get more data on this and raise it as a bug.
 
Been using EDDI for a bit now. The biggest improvement I made was to get Amy from Ivona speech.

Questions I have for the user base tho.

1) have any of you experienced the heart stopping announcement of "Self Destruct activated" for no apparent reason? Only to find out it's not activated!?!?
2) I have a slightly modified script when dropping into a no fire zone. Its basically announcing where I've dropped near to (station). Then ED's traffic controllers do their speal. Right after they address me by ship name I request docking, which finishes just in time for EDDI to announce where the pad is located inside. This worked great for two days. Now it just says I've dropped near and never processes the station variable {P(station.name)} However when I test it from EDDI console it still works fine.
Related?, I've noticed that the station market update says I can sell stuff from my cargo bay that I sold days ago. The cargo bay is empty at the moment.

Is there a file I can delete or empty out that could be related to these last two anomalies?
 
Last edited:
Been using EDDI for a bit now. The biggest improvement I made was to get Amy from Ivona speech.

Questions I have for the user base tho.

1) have any of you experienced the heart stopping announcement of "Self Destruct activated" for no apparent reason? Only to find out it's not activated!?!?
2) I have a slightly modified script when dropping into a no fire zone. Its basically announcing where I've dropped near to (station). Then ED's traffic controllers do their speal. Right after they address me by ship name I request docking, which finishes just in time for EDDI to announce where the pad is located inside. This worked great for two days. Now it just says I've dropped near and never processes the station variable {P(station.name)} However when I test it from EDDI console it still works fine.
Related?, I've noticed that the station market update says I can sell stuff from my cargo bay that I sold days ago. The cargo bay is empty at the moment.

Is there a file I can delete or empty out that could be related to these last two anomalies?

1) The only time you should be hearing that is when there is a self destruct event in the player journal. That said, I've heard the same thing occasionally but haven't yet been able to pin down the conditions where it occurs. Mind sending me a copy of you player journal for that play session (or perhaps just an excerpt from the correct time period)? It might give some clues as to what is going on.
2) It sounds like the station.name variable is not getting set, or if it is then your cottle script may be a little off. Mind sending a copy of your custom cottle script my way to check out?
2.1) A cargo event is written to the player journal when you first start up or load from the main menu. Cargo is then stored in memory until EDDI (either as a standalone or via the VoiceAttack plugin) is closed - there's no json file to delete. Presumably you log off occasionally and when you do so this should be refreshing your cargo information. Once again, an excerpt from your player journal may help figure out what's really going on? Is the cottle script modified from the default?
(Feel free to PM me with the requested info. :) )
 
PM sent with three journal entries from tonight plus my script that is not processing the station variable.

I also looked for the No fire zone event and found them in the journal.
"event":"ReceiveText", "From":"Spaceport", "Message":"$STATION_NoFireZone_entered;", "Message_Localised":"No fire zone entered.", "Channel":"npc" }
The entry just before this correctly idents the system name and "body" aka station name.

I'm going to go back a few days and see if there are any differences. No differences detected from a few dys back when I knew it worked.

Thanks for the 2nd pair of "eyes on"
 
Last edited:
regarding Speech responder; 'Message recieved'

i like to filter [local] messages, so i only get [direct] messages.

is it possible? if yes can someone also write me down the string since im more a user then a coder, thanks!

Hi Morwo,

After talking to T'kael, and running some more tests myself in solo and group play, it seems that the player Journal doesn't show which messages come from 'local' or 'direct', so as far as I can tell, there isn't currently a way to only read out 'direct' messages. I've tried various things to try to work around it, but had no luck. Although, I've not tested things in open play, so that may be different.

All I can suggest at the moment, is to replace the Message Received event script with the following:-

Code:
{_ Context }
{SetState('eddi_context_last_subject', 'message')}
{SetState('eddi_context_last_action', 'receive')}
{SetState('eddi_context_message_name', event.from)}
{SetState('eddi_context_message_content', event.message)}

{if event.player = true && event.message = "o7":
    {event.from} salutes
    {if event.channel = "player": you}.
|else:
    Message from {event.from}
    {if event.source = "Station": Station}:
    {event.message}
}

But this will read out practically everything, unfortunately. :(


-=] Darkcyde [=-
 
Hi Morwo,

After talking to T'kael, and running some more tests myself in solo and group play, it seems that the player Journal doesn't show which messages come from 'local' or 'direct', so as far as I can tell, there isn't currently a way to only read out 'direct' messages. I've tried various things to try to work around it, but had no luck. Although, I've not tested things in open play, so that may be different.

All I can suggest at the moment, is to replace the Message Received event script with the following:-

Code:
{_ Context }
{SetState('eddi_context_last_subject', 'message')}
{SetState('eddi_context_last_action', 'receive')}
{SetState('eddi_context_message_name', event.from)}
{SetState('eddi_context_message_content', event.message)}

{if event.player = true && event.message = "o7":
    {event.from} salutes
    {if event.channel = "player": you}.
|else:
    Message from {event.from}
    {if event.source = "Station": Station}:
    {event.message}
}

But this will read out practically everything, unfortunately. :(


-=] Darkcyde [=-

Thanks for your reply and effort in research! i will take your code.
 
Good luck to the new dev team. Great to know that EDDI will continue development and I'll be watching the new GitHub avidly.

EDDI coupled with IVONA Amy is a must-have and takes Elite to a whole new level for me.
 
Have a small problem here, and I'm hoping there's a way to remedy it. I do a lot of work for an in-game player faction, which for reasons beyond me, was entered in all-caps to the system.

The problem with this is that when EDDI reads it from any number of events, it spells the entire thing out in NATO Phonetic alphabet. It takes forever, let alone makes the system sound dumb for spelling it out (whether phonetic, or just letters. I want the phonetic on for obscure system names)

Most events already have the P{} around the variable containing the faction name, which was my big idea to try and make it say it right. So I'm kind of stuck.

Is there a way to override just this one particular faction name such that it reads it normally, instead of spelling it out? I pretty much want to set it up so when it reads "BOB" from the journal, it says "Bob", not "Bravo-Oscar-Bravo" or even "Bee-Oh-Bee". I know it is EDDI itself causing the problem, with a function that is in most other cases beneficial, because windows TTS (with standard or Ivona voice) will read things normally when they are in all-caps. I don't want to turn off NATO phonetic, I just want an exception for the one string of text, wherever it is used, to translate from all-caps to normal case, and therefore be read as normal words.

Is there a way I can do this? I wasn't seeing a dictionary override file even in the AppData\Roaming\EDDI directory, let alone the main program directory under Program Files.
 
Have a small problem here, and I'm hoping there's a way to remedy it. I do a lot of work for an in-game player faction, which for reasons beyond me, was entered in all-caps to the system.

The problem with this is that when EDDI reads it from any number of events, it spells the entire thing out in NATO Phonetic alphabet. It takes forever, let alone makes the system sound dumb for spelling it out (whether phonetic, or just letters. I want the phonetic on for obscure system names)

Most events already have the P{} around the variable containing the faction name, which was my big idea to try and make it say it right. So I'm kind of stuck.

Is there a way to override just this one particular faction name such that it reads it normally, instead of spelling it out? I pretty much want to set it up so when it reads "BOB" from the journal, it says "Bob", not "Bravo-Oscar-Bravo" or even "Bee-Oh-Bee". I know it is EDDI itself causing the problem, with a function that is in most other cases beneficial, because windows TTS (with standard or Ivona voice) will read things normally when they are in all-caps. I don't want to turn off NATO phonetic, I just want an exception for the one string of text, wherever it is used, to translate from all-caps to normal case, and therefore be read as normal words.

Is there a way I can do this? I wasn't seeing a dictionary override file even in the AppData\Roaming\EDDI directory, let alone the main program directory under Program Files.

Step 1: In the EDDI App, navigate to the 'Text-to-Speech' tab
Step 2: Unclick the button labeled 'Enable ICAO' so that ICAO is no longer the default speech pattern.
Step 3: Navigate to the 'Speech responder' tab
Step 4: Create a new script ('My script') that you can call from your other scripts. This will whitelist the systems you specify so that they don't use ICAO (the NATO phonetic alphabet) & use ICAO for the rest:
Code:
{if event.system = "[enter your BGS system here]":
   {event.system}
|elif event.system = "[another system you want to whitelist, you can keep adding these]":
   {event.system}
|else:
   {ICAO(event.system)}
}
Step 5: Edit your scripts to call '{F('My script')}' rather than '{event.system}' for each event where you'd like ICAO pronunciation. EDDI will use ICAO for whatever systems you have not whitelisted.

Good luck commander. :)
 
Step 1: In the EDDI App, navigate to the 'Text-to-Speech' tab
Step 2: Unclick the button labeled 'Enable ICAO' so that ICAO is no longer the default speech pattern.
Step 3: Navigate to the 'Speech responder' tab
Step 4: Create a new script ('My script') that you can call from your other scripts. This will whitelist the systems you specify so that they don't use ICAO (the NATO phonetic alphabet) & use ICAO for the rest:
Code:
{if event.system = "[enter your BGS system here]":
   {event.system}
|elif event.system = "[another system you want to whitelist, you can keep adding these]":
   {event.system}
|else:
   {ICAO(event.system)}
}
Step 5: Edit your scripts to call '{F('My script')}' rather than '{event.system}' for each event where you'd like ICAO pronunciation. EDDI will use ICAO for whatever systems you have not whitelisted.

Good luck commander. :)

I don't think you're understanding exactly what I'm aiming for here. I want an override for one particular faction. It is read out in system, mission, bounty, and other scripts. I think what you've posted is maybe halfway to solving it, but written with the wrong target in mind, that I don't know how to adjust.

Ideally, if it could intercept the phrase, so any time it appears in the Journal file as THIS IS A FACTION NAME, it writes it out to where EDDI reads it from as This is a Faction Name. Because right now, it reads it out loud as TANGO-HOTEL-INDIA-SIERRA-INDIA-SIERRA-ALPHA-FOXTROT-ALPHA-CHARLIE-TANGO-INDIA-OSCAR-NOVEMBER-NOVEMBER-ALPHA-MIKE-ECHO, that would fix the problem.

You can see where this might be horrible in bounty hunting, when you keep getting new bounties before it finishes announcing the last one. Since it also announces the controlling faction when I jump into a system, I may have the first planet scanned before it finishes that part, as the faction in question is nearly as long as my example above.

If I just unclick the ICAO button, then not only do I lose the functionality I want with most systems and a few other things, but it would just read the faction in question like TEE-ESCH-EYE-ESS-EYE-ESS-AY-EFF-AY-SEE-TEE-EYE-OH-EN-EN-AY-EM-EE instead of the phonetic alphabet.

I hope that clears up my problem, and what I'm trying to accomplish... any ideas?
 
I don't think you're understanding exactly what I'm aiming for here. I want an override for one particular faction. It is read out in system, mission, bounty, and other scripts. I think what you've posted is maybe halfway to solving it, but written with the wrong target in mind, that I don't know how to adjust.

Ideally, if it could intercept the phrase, so any time it appears in the Journal file as THIS IS A FACTION NAME, it writes it out to where EDDI reads it from as This is a Faction Name. Because right now, it reads it out loud as TANGO-HOTEL-INDIA-SIERRA-INDIA-SIERRA-ALPHA-FOXTROT-ALPHA-CHARLIE-TANGO-INDIA-OSCAR-NOVEMBER-NOVEMBER-ALPHA-MIKE-ECHO, that would fix the problem.

You can see where this might be horrible in bounty hunting, when you keep getting new bounties before it finishes announcing the last one. Since it also announces the controlling faction when I jump into a system, I may have the first planet scanned before it finishes that part, as the faction in question is nearly as long as my example above.

If I just unclick the ICAO button, then not only do I lose the functionality I want with most systems and a few other things, but it would just read the faction in question like TEE-ESCH-EYE-ESS-EYE-ESS-AY-EFF-AY-SEE-TEE-EYE-OH-EN-EN-AY-EM-EE instead of the phonetic alphabet.

I hope that clears up my problem, and what I'm trying to accomplish... any ideas?

Thanks for the clarification. As far as I know, there isn't currently any way to selectively disable ICAO without following an approach like the one I gave you. Custom dictionary replacement is on the list of possible future enhancements but it hasn't yet been implemented. That said, with very few exceptions (e.g. faction names with embedded system names that need to be cleaned up) faction names aren't supposed to use ICAO. If you PM me the faction name, I can track the source of the problem and add a fix to the next release.

If you'd rather not wait, the approach that I gave earlier does still default to ICAO whenever a listed system isn't found (so with the exception of the names you specifically give it, it'll use ICAO). A similar approach could be taken with faction or other names where you'd want ICAO to apply. As for your last concern, writing something in uppercase in EDDI is not sufficient to cause EDDI to spell it out, either with ICAO or otherwise. This can be verified by typing 'THIS IS A FACTION NAME' into a new script and hitting the 'Test script' button. With or without ICAO enabled, you'll find that EDDI reads the line correctly. If you find that uppercase does make a difference with your specific faction name, you could convert the faction name to lowercase with a Cottle script like '{lcase(event.faction)}'.
 
Hi

Is there a simple way to add a prefix to the ship name ... for example, have the AI say "The" before the ship's name

For example, my ship is called "Durandall" so I would like it to say "The Durandall has entered the ....."

thanks

~L
 
Hi

Is there a simple way to add a prefix to the ship name ... for example, have the AI say "The" before the ship's name

For example, my ship is called "Durandall" so I would like it to say "The Durandall has entered the ....."

thanks

~L

Hi,

I would put something like this into the FSD engaged event (or whatever you'd like to modify, there is not that much), instead the simple {Shipname()}:

The {OneOf("amazing","great","glorious")} {ShipName()}

Best regards!
 
Thanks for the clarification. As far as I know, there isn't currently any way to selectively disable ICAO without following an approach like the one I gave you. Custom dictionary replacement is on the list of possible future enhancements but it hasn't yet been implemented. That said, with very few exceptions (e.g. faction names with embedded system names that need to be cleaned up) faction names aren't supposed to use ICAO. If you PM me the faction name, I can track the source of the problem and add a fix to the next release.

If you'd rather not wait, the approach that I gave earlier does still default to ICAO whenever a listed system isn't found (so with the exception of the names you specifically give it, it'll use ICAO). A similar approach could be taken with faction or other names where you'd want ICAO to apply. As for your last concern, writing something in uppercase in EDDI is not sufficient to cause EDDI to spell it out, either with ICAO or otherwise. This can be verified by typing 'THIS IS A FACTION NAME' into a new script and hitting the 'Test script' button. With or without ICAO enabled, you'll find that EDDI reads the line correctly. If you find that uppercase does make a difference with your specific faction name, you could convert the faction name to lowercase with a Cottle script like '{lcase(event.faction)}'.

Typing it into the edit script and hitting test, just typing out the words, even in uppercase, does read correctly (and therefore totally differently than when "in action").

I think whatever logic is controlling whether to try and pronounce something, or read out the spelling/NATO phonetic, so that it can say for Eol Prou ZX-34 "Eol Prou ZEE-ECKS Three Four" or "Eol Prou Zulu-Xray Three Four" (just to give a made-up system name as an example) is causing this. I think it is simply saying that capital letters that are not part of a decipherable or phonetically attemptible word composed otherwise of lowercase letters should be spelled out rather than pronounced. And for 99% of the time, that works great. Whoever submitted the faction name to Frontier would have side-stepped this problem entirely if they just wouldn't have put it in all caps (I can verify it shows up that way in the sqllite file that EDDI keeps, whereas other factions don't. I just don't think putting in a ticket to Frontier will be easier than fixing it in EDDI.

I may try to add the lcase around calls to faction in a few scripts later when I'm at my gaming machine, but in case that doesn't work, I have to say that I know just enough about tinkering with these scripts to be dangerous. I have absolutely no idea how to create a new script: Where it's stored to be recognized by EDDI, etc. I only see the existing event triggers in the text-to-speech tab or whatever it is, and where you can view, edit, and test them. I've been able to take other people's contributions to extending out these scripts and re-arrange them to give me information in a different order, merge them to get more information, and copy conditionality from somewhere else to use in that to help fix the flow of grammar, but that's about it. If I try to adapt your whitelist script idea for this, would it truly be as simple as changing that to event.faction? I feel like the faction name gets called from different sources, depending on if it is querying who controls a system, who is giving a mission, awarding bounties, etc. I don't have it in front of me right now, but I seem to remember the faction being called in different contexts, as a variable of different objects.
 
Status
Thread Closed: Not open for further replies.
Back
Top Bottom