Win Audio stream to second instance - Possible?
#1
I think I might have had this discussion before, but I don't recall the outcome.

I have an all in one touchscreen PC in the kitchen that I use for playing my fairly extensive audio library (stored on a network drive) this plays through a pair of powered speakers via the audio out on the PC.

This is fine as a "standalone" setup.

I have speakers in several rooms connected to an amp that lives with the rest of the kit (net switches, NAS, rest of hifi components) out of the way. Everything is hard wired.

What I want to do is connect the two together.

I would like to at the very least use the amp to receive the audio from the kitchen PC, ideally using the CAT6 cable that is already buried int he wall - note this already provides LAN to the PC (100mb/s - i've isolated the unused pairs in case i need to go old school switches and analogue!)
The ideal is to allow the Kodi/Kitchen machine to stream to a second machine where the amp is - this hopefully can be the spare netbook i have.

The "ultimate" solution would be as above but to also connect a line out from the amp back to the netbook and allow me to play a CD/Radio/other source back into the kitchen.

Suggestions welcome Smile
Reply
#2
This conversation has happened several times. The most popular version of it is separating out the audio and streaming it to your iOS or Android software remote for silent listening.

I think all the audio work that's going on now may someday result in zone2 options, but it's not currently possible, to the best of my knowledge.
Reply
#3
Thanks Nate, your reply is appreciated.

I had thought a couple of times I had stumbled on the solution with the various squeezlite solutions and the logitech server running. But it seems these are not available or compatible with current Kodi iterations.
Reply
#4
Ok I've been faffing around, I might have a possible (slight delay) workaround

I plan on setting up an http stream and a .strm file for the recieving device which sits with the amp which will feed two rooms.

I will use Stream What You Hear to stream audio from the PC in the kitchen which will run Kodi and my music library, playing through powered speakers.

The possibility is that I can then do something similar in reverse for other hifi sources, using the "reciever" device and it's line input to stream back to the main Kodi machine.

I'll report back with how it works in practice!
Reply
#5
Ummm, that didn't go so well.

just running SWYH on its own is ok, the second i run kodi (regardless which starts first) SWYH ceases to work. I can stream audio from a youtube vid in browser to another PC....kodi, no go.

Altering any settings in kodi makes no difference, wondering if this is some interrupt/device grab problem.
Either way it may be out of my level of ability!

Christ VLC is clunky.....don't like it.

surely there must be a way to get this to work Sad
Reply
#6
SWYH crash log, more for my reference than anything! Unless anyone can point out the obvious solution from this?

Date: 22/12/2015 21:25:48
Message: Exception from HRESULT: 0x8889000A
Detail: System.Runtime.InteropServices.COMException (0x8889000A): Exception from HRESULT: 0x8889000A
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode)
at NAudio.CoreAudioApi.WasapiCapture.InitializeCaptureDevice()
at NAudio.CoreAudioApi.WasapiCapture.StartRecording()
at SWYH.Audio.WasapiProvider..ctor()
at SWYH.App.Application_Startup(Object sender, StartupEventArgs e)
at System.Windows.Application.OnStartup(StartupEventArgs e)
at System.Windows.Application.<.ctor>b__1(Object unused)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.Run()
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run(Window window)
at SWYH.App.Main()
------------------------------
Date: 22/12/2015 21:27:00
Message: Exception from HRESULT: 0x8889000A
Detail: System.Runtime.InteropServices.COMException (0x8889000A): Exception from HRESULT: 0x8889000A
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode)
at NAudio.CoreAudioApi.WasapiCapture.InitializeCaptureDevice()
at NAudio.CoreAudioApi.WasapiCapture.StartRecording()
at SWYH.Audio.WasapiProvider..ctor()
at SWYH.App.Application_Startup(Object sender, StartupEventArgs e)
at System.Windows.Application.OnStartup(StartupEventArgs e)
at System.Windows.Application.<.ctor>b__1(Object unused)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.Run()
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run(Window window)
at SWYH.App.Main()
------------------------------
Reply
#7
CustomIce, please excuse me up front. I'm trying to wrap my head around what you described and break it down to what you need. Hopefully I don't offend you.

To try to answer your "stream what you hear" issue -- do you have Kodi setup to use WASAPI or Directsound? If WASAPI, then Kodi will take exclusive use of the sound device, so nothing else will be able to play. Using Directsound may get around this (I think) and wouldn't necessarily result in a sound quality issue since you're only playing music. Alternatively, you might have luck turning off the exclusive mode on your sound card properties and still use WASAPI.

However, to break down your needs, it sounds like you want to play the same music track to 2 or more rooms at the same time, using a central control. Am I correct?

I was thinking you could put Kodi on your netbook and connect it to your AVR, then use something like the http://kodi.wiki/view/Web_interface and/or a Smartphone/Tablet remote app to remotely control what is being played.

However, this doesn't necessarily address playing to multiple zones at the same time, least of all your kitchen.
HP Stream Mini w/Libreelec -> HDMI -> Toshiba 37"
Intel NUC8i3BEH w/Libreelec -> HDMI -> LG OLED55C3PUA -> S/PDIF -> Sony HT-CT80
Dell Optiplex 7050 Micro w/Libreelec -> HDMI -> Yamaha RX-V467 -> HDMI -> Toshiba 47L7200U
Reply
#8
You pretty much nailed it.

WASAPI i think might be the problem, I'm going to go and fiddle with the system some more and see what I can get out of it!

Thanks for the reply.
Reply
#9
Yeah, that worked.

Directsound is fine, I'll run the system like that then I'll see if the output being variable is a total PITA or works ok. I have a feeling i may end up tinkering with the audio device settings and go back to WASAPI.
Reply
#10
Exclusive control was the issue, works with WASAPI and directsound if the device tickbox is unchecked for exclusive control.

Although the delay seems to be much, much worse.
Reply

Logout Mark Read Team Forum Stats Members Help
Audio stream to second instance - Possible?0