EDCD / EDDI

Companion application for Elite Dangerous
Other
437 stars 81 forks source link

Add an Audio Stream (Internet Radio) monitor? #1222

Closed incryptx closed 5 years ago

incryptx commented 5 years ago

Since we need to disable Galnet for the short term while EDDI code is fixed?

Radio SideWinder and other web-based radio feeds are available and EDDI could take advantage of these as it does Galnet, in the fact that they are just audio feeds from web-based sites. So, where EDDI has a checkbox to monitor Galnet, could we have a few more checkboxes to monitor Radio Sidewinder and a few other user popular audio feeds and rename the tab from "Galnet Monitor" to "Audio Stream Monitor"?

Just a thought, since you need to fix the Galnet stream anyway?

incryptx commented 5 years ago

Elite has a built in player for Galnet for which VA takes advantage of with voice commands. EDDI, being a plugin for VA, seems to duplicate this function with Galnet Monitor and the two together seems to step on each other in this duplication. Neither Elite or VA seem willing to use RS or other web-based music player although in early versions of VA's profile, you could set up RS as a web-based feed. This was taken out of VA's profile when they moved to "Singularity". I think EDDI would be the perfect place to add web-based radio stations as a plug-in for VA, and would not duplicate a service already provided by VA.

If you google ways to play Radio Sidewinder, there are no real options except to open a media player outside of Elite and VA, with little control over it, and play music as a stand-alone process to Elite.

I think this would be a very useful addition to EDDI and would eliminate the need for a Galnet Feed which is already duplicated in VA, Galnet feed availability not withstanding.

Just a thought.

Tkael commented 5 years ago

We'd need to review the structure of those feeds before we could consider this. Do you have links? I'm curious what feedback @Hoodathunk and @richardbuckle have on this.

Personally, I agree that there's some redundancy with the current implementation but there is value to be had as long as the Galnet feed is working (especially for VA users, who can interact with the monitor via voice commands). Doing as you're suggesting would probably mean scrapping much of the current code base for the Galnet monitor. And if the feeds for internet radios are different enough, we might even need to hard code different methods of parsing for each feed.

Tkael commented 5 years ago

Since what you are proposing would essentially need to end up being a new monitor, I'm changing the title accordingly.

incryptx commented 5 years ago

Well, you don't have to take Galnet out or loose that code, but every time Frontier changes the API it may go down again. I can't speak for everyone in the Elite community, but the feeling I get when reading posts on Galnet, weather it be vocally spoken or read, most users seem not to be that interested in hearing it. I know I am not, and weather it works or not does not concern me. It's an "option" in EDDI and VA, and most would rather hear music when out in the black, because Galnet news does not effect them until they are back in the bubble. I would rather hear music when out in the black, and since Elite has the option of reading Galnet in both the Launcher and with panel#4 in-game, that is good enough for me.

So, I can invision EDDI having a "Media Stream" or "Audio Stream" tab, with a "Galnet" checkbox, a "Radio Sidwinder" checkbox and possibly a "User Music" checkbox, which plays a user "playlist" from their own music library.

Here are the links to Elite Radio Stations for which could be included in EDDI's Media Stream or Audio Stream Tab (Galnet Tab)

Radio Sidewinder: https://www.radiosidewinder.com/ (Available in the U.S./U.K.)

Lave Radio: http://laveradio.com/ (Available in the U.K. Only)

Hutton Orbital Radio: http://huttonorbital.com/radio.aspx (Available in the U.S/U.K.)

Radio Skvortsov: http://radio.entropy101.com/ (Available in the U.S./U.K.)

Galnet Radio: http://galnetpl.blogspot.ie/p/galnet-radio.html (Not the GalNet Elite T2S)

EDIT: I use a VPN connection to get to the radio stations outside the U.S., so if offered in EDDI as alternate audio streams, notations for each would be continent specific, in order to receive each stream.

incryptx commented 5 years ago

In further research, all of the radio stations listed above download a file, i.e.radio.aspx or listen.asx to a music player, i.e. VLC, WMP, WinAmp, and open the player to tune in to the radio station. If there were a tab in EDDI for "user music", then this checkbox would load a "playlist" (configured through the music player to generate the playlist) to play music from the users (owned) library. So, in the code for this, once checked via a checkbox, EDDI grabs the "radio.aspx" or "listen.asx" from the website URL (which does not change and could be hardcoded) and if activated by EDDI's integration through VA, a voice command to "play Radio Sidewinder" or "play Hutton Orbital" could be given by the user to play a radio station. If from the users (owned) Library, a voice command to "play music" would activate the music library. And of course, "Read Galnet news" would still be there. I could do the code in C++ but I can't code in Python, which looks like what you use for EDDI.

Hoodathunk commented 5 years ago

FYI, EDDI is written in C#, using .NET framework.

richardbuckle commented 5 years ago

I'm not much in favour of this. We have enough on our plate and people can just used established players that are much better suited to the task.

incryptx commented 5 years ago

Richard, this is exactly why I made the suggestion. Although the existing players are suited for their purpose, you have to run them manually, and as a function outside of Elite with no control by any Elite driven app. VA used to allow you to play music or a radio station from the separate profiles before they were unified into Singularity, where that voice feature was eliminated. You used to be able to edit the VA profile, set a player, and play a "playlist" of user music or a "radio station". In EDDI, you play Galnet News which is an audio stream not unlike playing a radio station from a URL. To add tabs and checkboxes for play radio stations seems to be just like selecting Galnet with a checkbox and playing from a URL, which is a duplication and redundant function, as Elite already does this for us. From the posts I have read on many different Elite sites, in my opinion, it seems many users would rather listen to a radio station or a playlist when in the black and away from the bubble, rather than Galnet, which does not concern them when exploring away from the bubble. Why should I want to know what Galnet reports when I am a thousand light years from the bubble. I would rather hear music, But that's my opinion. Why have EDDI duplicate a function done better by Elite's in-game function, when there are no options for playing music out in the black, except for a manual process started outside of the game, and one of many that need to be started before the game begins.

EDDI does support Galnet News, but except for it being checked as default, I don't use it in EDDI anyway, and uncheck it because I do more exploration than I do powerplay or CG's. In conclusion, I think most people would rather have an option for music or radio, than they would having EDDI support Galnet as a reduntent and duplicated option.

Although I program in C#, I know nothing about programming against the .Net Framework, or I would offer to write the code for you, so it would not affect your workload. It does not look hard at all to write or test.

Be this as it may, I cannot speak to your workload

clinkingdog commented 5 years ago

I have a small VA profile that plays music on VLC Player by voice control - I'm happy to share that with you if that's useful. I'm not sure exactly which radio stations it supports but likely at least some of the ones you listed. (I mostly have it playing Blue Mars Radio myself.)

incryptx commented 5 years ago

I have a small VA profile that plays music on VLC Player by voice control - I'm happy to share that with you if that's useful. I'm not sure exactly which radio stations it supports but likely at least some of the ones you listed. (I mostly have it playing Blue Mars Radio myself.)

I would appreciate that. Can you upload it to a dropbox or internet share some where and send me a link. I'm sure others may want it as well. Thanks.

On a side note, there is no way, except to start an external player outside the game, to play a radio station in game. I am writing a plugin for EDDI/EDMC which will allow players to give a voice command to do this, but I am not sure if I want to run a gitub developer page to support it. I might just offer it as a stand-alone plugin and post it to an internet share.

clinkingdog commented 5 years ago

@incryptx Here you go: https://www.dropbox.com/s/xupbvyba14f6b18/Elite%20Music%20-%20Shareable-Profile.vap?dl=0

You'll need VLC and also a tool called CLMControl, which interacts with VLC. If you set up the profile to call the ((Initialize Music)) command at startup, it'll bring up VLC without you having to remember, and all the rest of the voice commands should work while you're in game.

(I have tried to implement some of the same commands via VLC's global hotkeys, which would be neater than CLMControl, but for some reason haven't managed to get that working.)

In theory any radio station that has a .m3u file to play it should work with this system, though I seem to recall having some problems with Radio Sidewinder. You can also play .m3u playlists of local tracks, or entire local folders - see the example commands. Pretty much anything VLC will normally play, basically.

incryptx commented 5 years ago

@incryptx Here you go: https://www.dropbox.com/s/xupbvyba14f6b18/Elite%20Music%20-%20Shareable-Profile.vap?dl=0

You'll need VLC and also a tool called CLMControl, which interacts with VLC. If you set up the profile to call the ((Initialize Music)) command at startup, it'll bring up VLC without you having to remember, and all the rest of the voice commands should work while you're in game.

(I have tried to implement some of the same commands via VLC's global hotkeys, which would be neater than CLMControl, but for some reason haven't managed to get that working.)

In theory any radio station that has a .m3u file to play it should work with this system, though I seem to recall having some problems with Radio Sidewinder. You can also play .m3u playlists of local tracks, or entire local folders - see the example commands. Pretty much anything VLC will normally play, basically.

Thank you. This code and process was in one of the early HCS profiles when the voicepacks were separated. In the latest versions of HCS, they are all grouped into one profile called singularity and the code in the profile was taken out. I set this up with VLC and CLMControl and used it for both private music via and "playlist" instead of a .m3p and it worked great. I gave a voice command in VA to "play music" and it played my VLC playlist. Thanks, This is what is now missing in the HCS voice profile.

clinkingdog commented 5 years ago

@incryptx Great! :) I'm glad it worked for you. Yeah there are still music-control actions in the HCS profile but they don't seem to do anything for me and because all their commands are now locked, I can't get in and work out what's going wrong / what program they're meant to work with. So I just disable them ¯\_(ツ)_/¯

incryptx commented 5 years ago

@incryptx Great! :) I'm glad it worked for you. Yeah there are still music-control actions in the HCS profile but they don't seem to do anything for me and because all their commands are now locked, I can't get in and work out what's going wrong / what program they're meant to work with. So I just disable them ¯_(ツ)_/¯

Well, all this is cool, except I cannot find the .exe called "CLMControl.exe". The links to the source here on Github do not have the .exe itself and it looks like it must be built from source, which is something I can not do on my PC as I do not have the Visual Studio tools installed and would rather not turn my PC into another build box. Can you drop a copy of "CLMControl.exe" in the dropbox for me please.

As well, it seems many folks have done this or are still doing this as there are many links to instructions as well as their .vap profiles.

http://greatcanadiannerd.com/index.php/turorials/voice-attack-software https://www.reddit.com/r/EliteDangerous/comments/4n5ysl/control_music_w_voiceattack/ https://www.alpha-orbital.com/kics https://github.com/InvalidCastEx/CommandLineMedia

Some very cool stuff, especially the KICS4 stuff, but without the "CLMControl.exe", it's all useless. All of the links state to "download the CLMControl file and place it in a directory" but there is no executable at the download sites, just source code.

Anyone have a copy if this file?

incryptx commented 5 years ago

@incryptx Great! :) I'm glad it worked for you. Yeah there are still music-control actions in the HCS profile but they don't seem to do anything for me and because all their commands are now locked, I can't get in and work out what's going wrong / what program they're meant to work with. So I just disable them ¯_(ツ)_/¯

I think you have to export the "Singularity" profile to a copy you can edit. The commands are locked by the "author" and making a copy should make you the "author" of your copy. I have not tried this but I will need to do so to integrate the playing of radio stations and my own music, without over-writing the original profile.

clinkingdog commented 5 years ago

@incryptx The CLM exe is available from their GitHub, which you linked to. Go to the releases page: https://github.com/InvalidCastEx/CommandLineMedia/releases and download and extract the zip file.

I think you have to export the "Singularity" profile to a copy you can edit.

I could do that, but I don't care enough, I have a solution that works :)

I will need to do so to integrate the playing of radio stations and my own music, without over-writing the original profile.

I don't think you will? You can tell the master Singularity profile to also load your music profile, so they're both active at once. Click the edit icon on it to get the Profile Options screen, then "Include commands from other profiles" and select the music profile (and/or any others you want to include).

incryptx commented 5 years ago

I could do that, but I don't care enough, I have a solution that works :)

I don't think you will? You can tell the master Singularity profile to also load your music profile, so they're both active at once. Click the edit icon on it to get the Profile Options screen, then "Include commands from other profiles" and select the music profile (and/or any others you want to include).

Thanks for the help, advice, suggestions and tips here. I ended up building a CLMControl.exe from the source, and have it now. I will use "include commands from other profiles" to get around editing or changing the original.

You have a solution that works for you? Is it what you suggested above?

clinkingdog commented 5 years ago

You have a solution that works for you? Is it what you suggested above?

Yeah, exactly. I don't want to edit Singularity really because that will make it hard to upgrade. So I just include other profiles that have extra commands I want, via the method I described. (And since one of those profiles handles music fine, I don't need Singularity's music commands, so it doesn't matter that they don't work for me.)

incryptx commented 5 years ago

I took your suggestion and used KiCS-4 to play both radio and my music playlists. Using VLC, I created a .m3u which is a list of my own local music and dumped it into the KICS 4/music folder, then added a command line in the .vap to play this with my chosen spoken command. Although KICS is no longer being developed, it is extensive in design and includes both music and radio. Some of the radio and music .m3p's that are included are dead, as the radio stations (like Galnet News RSS) and music links (youtube videos) they point to are no longer there, they are easy enough to fix by redirecting them to sites and songs I would rather hear. Thanks for the assist.

Be well.

Tkael commented 5 years ago

We endorse the use of VoiceAttack for audio stream management... the solution above works well and VoiceAttack is the right interface for controlling it.