Closed FA-Bubba closed 5 years ago
Thanks, good work, let's make it better. I see three issues in the pdf:
1. Growing device boxes In version 1.4 the boxes have a fixed size. Long device names are truncated. In the older versions the boxes were expanding for long device names. I don't know why it kept growing, but it shouldn't happen.
2. Devices are not appearing I also noticed devices not appearing, also Google Chrome doesn't show them all every time. I don't know why, and how to fix it. But if you add your devices in the config file they always appear. Read the wiki, chapter 'Configuration', on how to do that.
3. Devices are in closed state but still playing I'm not sure what's happening. I put the box in closed state after receiving a 'CLOSE' message from the Chromecast device. In 1.4 I put it back in playing state when it's still streaming. I hope it works, please enable the log in the config and post the log when it still happens. Memory shouldn't be an issue here.
Can you test 1.4?
Thank you for the follow-up!
I installed v 1.4, and made the change in config for the Log, which is now visible. I did not enter the devices in config (I want the flexibility to move them & change their names for now).
One device did not appear when I launched v 1.4 -- I will wait to see if it appears as before.
Likewise with #3, I will observe if any devices resume play after closing them from the Google Hub. For what it is worth, when I was running v 1.3, and manually paused a speaker with the Pause symbol in the Device Box, they would restart after a while -- I am guessing this was because I had "Auto Restart..." checked...
I was doing a lot of changes to my Google Hub earlier today (while running v 1.3). Making changes via the Google Home App on my iPhone disrupted the audio while it was working (audio cut-outs). This effect was understandable, because the App and the Google Home device were doing a lot of work, and may have had priority for resources.
I will get back to you with additional observations.
By the way v 1.4 forced me to manually uninstall v 1.3 -- will the Desktop.AudioStreamer eventually be able to install new versions on top of old?
Thank you for your GREAT work!!!
Thanks, it's getting better this way :relaxed::
Keep me informed about new observations, and when the audio is disrupted when your not stressing it!
OK! I unloaded v1.4, then rebooted my PC (just to clear all caches). I downloaded and installed v1.5
The installation process took longer than before, with the installation screen just displaying idle (no 'speedometer bar' activity)... I'm guessing that may have been the installation process removing the old files? At any rate, after a while, my PC prompted me if I wanted to allow the install; I clicked OK, and it proceeded.
After installation completed, I checked the config file; the change I had previously made to display the Log Tab was not preserved, so I changed it again. I created a Shortcut on my Desktop, so let me know if there are any command line options you want me to test...
I started the App, and it found 5 out of 6 devices right away. I clicked "Scan again...", and a few minutes later the 6th device populated. On a whim, I tried to see if I could drag the Device Boxes to re-arrange their positions, but this 'feature' isn't there (yet).
On the line with the volume bar, there is a box with an "M" that changes to a "U" when clicked -- what does that do?
Are there any plans for Desktop.AudioStream to support Stereo streaming? I'm not sure how this would work, but the PC's Audio out does support Stereo, and prior to your App, I used iTunes AirPlay and the QFX E-350 WiFi speakers to cast stereo. While that kind of worked, the E-350's WiFi band had other issues that didn't manage well.
So far, I have been letting the App run 24x7 so I can assess how it affects PC performance, and will continue to do so -- in fact, my goal is to always have music in all rooms!
FYI, from v1.4: When two speakers in the same room got out of sync, I just paused both, waited a few seconds, and restarted them -- this brought their respective audio streams very close to in sync. I have since moved the speakers to different rooms, so won't test this in v1.5 (unless I move a speaker back).
GREAT WORK!!! THANK YOU!
I added 1.6 with some changes:
The config file is not overwritten every time, it should "Reinstall if the file is missing or is an older version.". That's default behaviour by the installer. I have to store settings that should be persisted on an other location, maybe later...
Dragging the boxes around is also a nice feature, it can be done, maybe in the coming release...
The tool captures the sound from the soundcard in stereo now. Is it mono for you?
Thanks for the tests!
I just downloaded and installed v1.6. Sometimes when I launch the App, ALL my devices are found and populated, and sometimes they are not. They seem to populate the Device Window in an unpredictable order, so each Device Box is not always in the same position.
I still needed to edit the Config file to display the Log Tab, so I am guessing 1.6 had a newer version.
The mute/unmute icons are a nice touch, and eliminated the ambiguity of "M/U".
Some devices make the audible sound when I click the name, but don't change color from gray to green; clicking them again (sometimes more than once) eventually makes them green, and they start playing...
I have not yet tested the "Sync Devices" button (I'll relocate some speakers into one room to test that later -- or just increase the volume).
The audio does drop-out frequently (it did this in v1.5, too, but not all that much in v1.4). I cannot correlate any activities on my PC, iPhone, or Google Home to the drop outs (although in v1.4, there were some dropouts when I was changing settings in Google Home). The drop-outs I am hearing now might be due to network traffic -- I have a Mesh network that only supports 2.4 GHz, and ALL of my SmartHome devices on on that band, because most do not support 5.0 GHz. I'm upgrading my Mesh next month to broadcast both 5.0 & 2.4 GHz, so that upgrade may balance the traffic better.
I don't know if I'm getting a stereo signal -- I am using single speakers, so I would need a way to put two speakers in a room, and designate one as the LEFT channel, and the other as the RIGHT channel (That is probably not practical.) The Google Hub and Minis are not capable of stereo, but the Google Audio Cast dongles use a cable that is capable of stereo, so if they are in fact receiving a stereo signal, I need to get a speaker pair that accepts that input, and sends separate channels to each speaker -- I'll shop for something like that later...
I will follow-up with any new info after v1.6 has been running for a day or more.
Again, Thank You for the GREAT WORK!!!
I'm working on a feature to persist known devices and settings. Then devices that are discovered once should always show up, in the same order.
I also occasionally have to click multiple times to start playing. Especially when I'm messing around a lot. I'll check if I can change something in the control messages I sent.
Streaming takes about 1.5 Mbps per device. With 6 devices streaming at the same time it's possible that a slow network (or bad connections) causes buffer underruns.
Thanks. I'll let you know when v1.7 is ready!
1.7 is just released. The changes are:
C:\Users\<username>\AppData\Local\ChromeCast
A lot of changes, so please let me know if there are any issues!
I installed v1.7 on Sunday morning, and haven't had much time to do specific tests... It has been running non-stop for the past 30 hours...
Here are a few observations:
I haven't tried "Sync Devices" or the Lag Control yet -- I think I'll have a better result after my Mesh Network upgrade.
Cheers!
Here it's also running all day long, but never for 30 hours, nice!
Thanks again!
Your last message indicated v1.8 will support mp3 streaming... Since all of my music is stored on my PC in mp3 files, isn't my streaming already in mp3 format, or is there something else going on I am not aware of?
No, that's not the way it works.
The mp3 file you play is decoded first, then a sound card can play the music. This application captures the audio from the sound card, in the decoded/uncompressed format (wav).
Now (in 1.7) the uncompressed format is streamed to the Chromecast device. To support mp3 streaming I had to encode the captured audio to mp3 format again, before sending the data to the Chromecast device.
The bandwidth needed for uncompressed streaming is something like 1.5 Mbps. And streaming in mp3 is 128 kbps, or 320 kbps, or whatever bitrate you choose.
Thank you for the explanation... I hadn't really thought much about the Codec, but if I understand correctly, any music player on the PC (like iTunes) sends the MP3 file to a codec, where it is uncompressed for transmission as a WAV to the speakers... I think you are saying your App takes the WAV, and re-compresses it back to MP3 so it can send it more efficiently to the speakers... is that correct?
Granted, I gave up my initial intent to store all my music in lossless format a long time ago (I just couldn't hear much of a difference since giving up my aged Hi Fi system and vinyl LPs)... So the MP3's I play from my phone or from my PC give me a "good enough" audio experience, and my goal of multi-room music is becoming achievable via my MP3 collection.
FYI, I've suffered from Tinnitus since 1975, so ANY music is better than silence!!
Thank you!
PS: The Desktop Audio Stream has been going non-stop here for about 52 hours!
Do you also keep it running at night? How is the memory after 52 hours?
It was hard to explain but you understood it correctly!
I made a new installer with mp3 support. You have to close the 52 hours session, but if you want to try... Mp3 128 kbps is buffering for about 30 seconds here before it starts to play, 320 kbps about 15 seconds. I'll try to reduce this lag later!
Yes, I left it running continuously for 52 hours (now 53 hours!)... For over night, I did turn 1 speaker off, set the volume low on two others, and kept 2 at normal volume.
I have a few other commitments that will consume my time until Saturday, so will wait until then before I download and do more testing, but will keep the stream running until then.
I didn't capture the memory usage at first launch, but it has been fluctuating between 85,000 K & 89,00 K this morning... In comparison, Firefox (with > 100 tabs open) is using over 3,000,000 K !
Cheers!
For me the memory is stable at (max) 23 Mb when playing three devices. When I enable logging memory grows over time, because the content of the log box gets bigger over time.
I'm testing a new version (1.9.10) with:
I'll make a 2.0 release when testing is finished. The application approved a lot already because of your observations. Cheers!
I tried v1.9.10 this morning, and it was flagged by AVG as 'suspicious'... See attached screen shot.
I installed AVG free, and got the same message with 1.9.10. "You'll be hearing from us soon.", do you know why AVG is complaining?
It's not complaining about 1.9.11.
I'm not sure what is triggering the AVG suspicions; I eventually got an "OK" popup from AVG (after about 6 hours). Since your message above indicated v1.9.11 was OK, I downloaded it, but AVG flagged it, so now I gotta wait until it gets cleared...
It's a different warning for 1.9.11, now it says "You've discovered a very rare file". It's very rare of course. I didn't get a warning for 1.9.11, it was 'OK', I uninstalled AVG after that. Did you install AVG recently? Wasn't it complaining about the previous versions? I hope it's not going to flag every version now.
I made two small changes since 1.9.11. That version has been running for 11 hours now, 1.9.12 is stable here.
The "You've discovered a very rare file". pop-up is what I first saw with each new 1.9.xx version; I just wasn't able to capture it. Several hours after AVG analyzed v1.9.10, I got a pop-up saying it was OK, but I had since downloaded v1.9.11, and it was flagged, too. Overnight, I received the 'OK' pop-up for v1.9.11 (see attachment), and I just loaded v1.9.11, and it is running OK. I will try 1.9.12 later today.
FYI, I have been using AVG since at least 2009, maybe earlier... It did not complain about any of the previous versions (I skipped v 1.8)... Control Panel says AVG Internet Security version 19.1.3075 (build 19.1.4142.0) was updated on Jan 5, 2019, and this issue first appeared on Jan 19, so my guess is that AVG is seeing something in the last 3 releases it doesn't like that it did not see in v1.7 & earlier. Another possibility is that a new Virus Definition is flagging your App (Virus Definitions are constantly updated, at least daily, sometimes more frequently).
I installed AVG again but I don't get warnings anymore. And you? Maybe the application is whitelisted now. I wanted to investigate what change caused the warnings.
In 1.9.20 I added a stop button and the status of a device is shown when not playing. How's 1.9.12 doing, any new observations?
v1.9.11 crashed my PC overnight on Saturday-Sunday, and I never got around to installing v1.9.12.
I just installed v1.9.20 and got the "Rare File" warning -- see attached screen shots. I will launch v1.9.20 once AVG tells me it is OK.
Do you know why v1.9.11 crashed? Is there something in the Windows 'Event viewer' - 'Windows Logs' - 'Application'?
Do you remember we were talking about synchronizing devices?
In 1.9.22 I added support for Chromecast Groups. You can create a group of devices in the Google Home app. This group shows up in 1.9.22. The Chromecasts take care of the synchronization, you can finetune the synchronization in the Google Home app.
The previous version was running for 17 hours, no problems.
Here are the events from the crash (attached as a ZIP file)...
Also, while i was preparing this, I saw your note about v1.9.22, and I will install that ASAP!
I installed v1.9.22, and some weird things happened... At first only individual speakers were in the Device Window; I clicked "Scan again...", then the Grouped speakers were added, THEN duplicates of each device populated the Window (see attached image). I clicked one group, it went green briefly, then gray, but eventually showed "Casting..." but there was no audio. I clicked it again, heard the audio 'bleep', but it only showed "Buffering..." for a LONG time. I clicked some of the Dupes of the same Group Name, and the App grayed-out, with "Not Responding" in the Title Bar. That eventually went away, but the formerly 'green' group was gray again. I clicked it again, and it went green & showed "Buffering..." Eventually going gray again, but displaying "Casting..." but no audio. Then "Casting..." went blank.
I repeated this several times, with same/similar results.
I installed v1.9.22, and some weird things happened... At first only individual speakers were in the Device Window; I clicked "Scan again...", then the Grouped speakers were added, THEN duplicates of each device populated the Window (see attached image). I clicked one group, it went green briefly, then gray, but eventually showed "Casting..." but there was no audio. I clicked it again, heard the audio 'bleep', but it only showed "Buffering..." for a LONG time. I clicked some of the Dupes of the same Group Name, and the App grayed-out, with "Not Responding" in the Title Bar. That eventually went away, but the formerly 'green' group was gray again. I clicked it again, and it went green & showed "Buffering..." Eventually going gray again, but displaying "Casting..." but no audio. Then "Casting..." went blank.
I repeated this several times, with same/similar results.
THEN there was a .NET error. The Details are:
See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box.
** Exception Text ** System.NullReferenceException: Object reference not set to an instance of an object. at System.Windows.Forms.Menu.CreateMenuItems() at System.Windows.Forms.Menu.get_Handle() at System.Windows.Forms.NotifyIcon.ShowContextMenu() at System.Windows.Forms.NotifyIcon.WndProc(Message& msg) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
** JIT Debugging ** To enable just-in-time (JIT) debugging, the .config file for this application or computer (machine.config) must have the jitDebugging value set in the system.windows.forms section. The application must also be compiled with debugging enabled.
For example:
When JIT debugging is enabled, any unhandled exception will be sent to the JIT debugger registered on the computer rather than be handled by this dialog box.
Thanks for the event viewer logs, just what I needed. There was a bug when there were no IP addresses at all. It looks like your network was down!?
I had to change the discovery of devices to support groups. I hope 1.9.23 is doing better!
V1.9.23 crashed... Event logs & ScreenShots in attached.
Crashed again... See notes in images...
I've attached my notes from testing v1.9.26, and will move on to v1.9.28 this afternoon
PS: I clicked on the "Kitchen Hub" (A Google Home Hub), and on "Family Room Speaker" (A Google Home Mini) & both played. Later, both Chromecast Audio devices that were playing dropped off line, and their Device labels displayed "Closed". I retried ALL of the "Closed" connections, and they would play briefly before dropping off line again.
I'll be installing v1.9.28 in a few minutes.
In v1.9.26, I clicked "Close" from the System Tray Icon, and got these errors:
Here are the "Details":
See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box.
** Exception Text ** System.NullReferenceException: Object reference not set to an instance of an object. at ChromeCast.Desktop.AudioStreamer.Communication.DeviceConnection.Connect() at ChromeCast.Desktop.AudioStreamer.Communication.DeviceConnection.SendMessage(Byte[] send) at ChromeCast.Desktop.AudioStreamer.Communication.DeviceCommunication.SendMessage(CastMessage castMessage) at ChromeCast.Desktop.AudioStreamer.Communication.DeviceCommunication.Stop() at ChromeCast.Desktop.AudioStreamer.Application.Device.Stop() at ChromeCast.Desktop.AudioStreamer.Application.Devices.Stop() at ChromeCast.Desktop.AudioStreamer.Application.Devices.Dispose() at ChromeCast.Desktop.AudioStreamer.Application.ApplicationLogic.CloseApplication() at ChromeCast.Desktop.AudioStreamer.Application.ApplicationLogic.CloseApplication(Object sender, EventArgs e) at System.Windows.Forms.MenuItem.OnClick(EventArgs e) at System.Windows.Forms.MenuItem.MenuItemData.Execute() at System.Windows.Forms.Command.Invoke() at System.Windows.Forms.Command.DispatchID(Int32 id) at System.Windows.Forms.NotifyIcon.WndProc(Message& msg) at System.Windows.Forms.NotifyIcon.NotifyIconNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
** JIT Debugging ** To enable just-in-time (JIT) debugging, the .config file for this application or computer (machine.config) must have the jitDebugging value set in the system.windows.forms section. The application must also be compiled with debugging enabled.
For example:
When JIT debugging is enabled, any unhandled exception will be sent to the JIT debugger registered on the computer rather than be handled by this dialog box.
Here are Details from the Event Viewer:
.NET Runtime Error:
===============================
========================================== Application Error:
============================
========================================== Application Error:
============================
I rebooted my PC, and did a clean install of v1.9.28... It opened quickly, and I didn't see any Device dupes. I selected a few speakers, heard the audio 'beep', but then each selected speaker dropped off line, and the App displayed "Not Responding". I shut-down the App & retried 3 times, but never got any casting/streaming.
Here is info from Event Logs: .NET Runtime:
App Errors:
Windows Error Reporting:
Application Hang:
For some reason, not everything I Copy/Pasted above actually pasted in. Is there a better way to get the Event Viewer info to you?
Saving them as .evtx files is the best way I think!
Thanks for the reports. I'm not sure what's wrong with 1.9.28 so I used 1.9.26 for 1.9.29. The only difference with 1.9.26 is that I added support for groups in 1.9.29.
I'll add fixes for the other issues later!
I loaded v1.9.29, and tried to stream to some of the speakers -- I did NOT try any Speaker Groups... Every speaker I tried, except 1, turned green, and made the audible connect sound; the "Office Speaker" showed an error; also TWO Speaker Groups changed to Error states, even though I did not click on them.
There are Dupe Devices for the two Speaker Groups that spontaneously changed from 'Closed' to 'Connect Error'. By the way, there is some overlap in my defined Speaker Groups; that is, the speakers that are in "First Floor Speakers", are also in "ALL Speakers". The same is true for "Second Floor Speakers". I thought I'd mention that in case it is relevant.
The 4 Device boxes that turned green after I clicked on them quickly went back to gray & "Closed".
When I clicked on a Device showing a 'Connect Error', they briefly went gray, and displayed 'Launching Application', and the App displayed "Not Responding"; after a few moments, the App recovered, and they went back to "Connect Error".
I selected 2 of the the individual speakers again, and they Buffered, and then Played.
I'm GUESSING there may be issues with the Speaker Groups...
I don't know why but now I also had groups that appeared twice.
I have to investigate how it should work. It looks like two devices of each group return the group they are in. You can only connect to one of them. For now I remove the groups that have a connect error from the user interface.
I still have to do some testing, and the user interface is flashing, but if you want to try: here's 1.9.34
I have noted some 'interesting' observations, and am sharing them here in case they may offer some ideas for the User Interface. See attached PDF...
ChromecastDesktopAudioStreamer-MyNotes.pdf