In-Development ED Radio Ambience

I've been looking at the ED API for a bit now and I am ready to start writing an extension for the game. My plan is to implement the following:

1. When player enters a system with an orbit station, they will have a selection of radio channels available.
a. If the system is populated: Various music and talk radio shows as well as general radio traffic.
b. If the system is in a war state: Military and general radio traffic.
c. If the system is in an outbreak state: CDC only
d. ATC radio traffic when player drops from FSD to a station.
e. All available signals can bleed into each other

2. When a player enters a system without any orbital, but a population they will hear a mix of general radio, talk/music radio, and/or static from experimental devices in use.

3. When a player enters an uninhabited system
a. Each star type will have it's own unique signal assigned to it.
b. In systems with multiple stars, these signals will be overlayed and played together.
c. In systems with ancient ruins, there will be an additional, but random "background" noise which can be faintly heard.

4. All traffic from the system the player is exiting will fade out after a brief Doppler effect. All traffic from the next system will fade in followed by a brief Doppler effect.


I am planning on writing this in Java and if I can get the basic functions above implemented, work on a method of sending the data to additionally connected devices like phones, tablets, other computers, specific speakers.

I do have a couple of questions about the ED:API in reference to some events that I haven't been able to find a clear explanation for.

1. Is there an entry for when you exit FSDJump? Or is the timing of the entry responsible for this? Other tools like voice attack seem to be able to discern the moment a player pops up in a new instance.
2. I though an interesting addition may be to have the various signals available in each system have a noticeable effect on other communications.
3. My plan is to write this in Java which is what I am currently most familiar with, although it would only be slightly harder to pickup a different language for this if another IDE is better for this.
 
I've only recently started writing the code for this. I am hoping to have a workable version soon, but I also have to juggle my time between a full time job, new baby, slightly older baby, and the spouse, so I wouldn't want to give the false impression that I will be able to adhere to a schedule.

I will send you a friend request and make sure you get a version as soon as it is available thought ;)
 
Basic framework is done. I'm working on getting the sounds to work right, but I can get it to load the appropriate .wav files depending on the system information.

Other things I need to work on for this:

1. Timing, currently there are no event handlers, instead it's a loop with a few JSON loads to read the data from the journal. That might take some time as I've switched to python out of interest.
2. Mixing. Figure I'll figure this out when I get to it. Currently looks like I can only read on star per the startingfsdjump event. I should be able to adjust the tone of the static via the primary star, but I would like to continue to explore identifying all of the stars present in a system and using that as a variable.
3. GUI. Currently no gui so. I may leave it that way and just have it run in the background so that it doesn't clutter up the screen, but I would like to include an option to have one for multi screen setups that have an open desktop. Maybe something with buttons and switches or something so that the player can tune into different channels through that.
4. Multiple channels. Currently only one option when you jump into a system, I'll have to add extra channel options and controls.... to control stuff.
5. Doppler effects. Plan on making a module to do this. I can see the events that I need to start/stop it, just need to implement.
6. Dropping out of supercruise. Looks like there are some things I can do here. ATC for stations, Convoy chatter for USS, etc.
7. Creating a dict for special sites. I really don't see another way to do this dynamically, so I guess I'll do the data entry. I'll bet CRG has a spreadsheet somewhere I can use.

Thanks again for anyone taking an interest in this tools development!
 
I really like this idea. As someone who has written his own companion app for Elite, I can imagine it's a lot of fun making! Although I've written everything in C#, let me know if I can help you figure out the journal or anything. I have a slightly outdated C# reader/parser available on Github, which should be portable to Java/Python.

You can try to use the EDDB datadump to retrieve more information on star systems, based on the system you're entering. Besides the FSDJump event (which triggers on system entry), there's also the StartJump event that is triggered when the 4 second countdown starts. That might help with the mixing I imagine? There might be more events described in the Journal Manual that you might find interesting.

Good luck! Looking forward to your first release :)
 
I now have event handlers in place and I am working to expand the number of events being detected for this.
The current way it works is by setting the app to a "channel" in which 1 or more sound files will be continuously looped and/or distorted while that channel is set. Currently the only way for the channel to change is for the app to detect the player moving to a different system. I am still working out the transition effects (Doppler effect and what not), but I have seen success in changing channels when I run a paired down version of the ED journal in my test environment.
I do play on implementing the ability for players to change channels, and one thing in particular I am excited to see if FD implementing the spoken galnet articles. I think it would be a neat feature to be able to integrate that into my app.

To go:
1. Mixing effects
2. GUI
3. User cycling of channels
4. Special site Dict/EDDB implementation
5. Making all of the channels

Currently working on:
1. Pinning down timing and event handlers to correspond with planned effects
2. Messing with volumes and frequencies to make the effects happen
3. Making the effects happen
4. Implementing a basic GUI with buttons and stuff, maybe adding images of actual radios in case a player has a spare monitor available.

Thinking about:
1. Touch screen implementation and portability to external devices like tablets and phones.
 
Thank you for the suggestions mLine!
I am writing this in python only to both have fun making something for ED and learn Python better. Currently I have figured out how to make and use event handlers in python.
Of course any suggestions you or anyone else have to assist me will be greatly appreciated!
 
Gosh ! I started to work on "something similar" a few weeks ago.
My thread is awaiting approval, I'll link it as soon as it's online (if it is at some point).
 
Development on this has been and will be suspended until I can find time to work on this. A new addition to my family is requiring all of my time. Please move this out of in-development. I will start a new thread when I am able to resume work.

Thank you.
 
Back
Top Bottom