PC-Logix / OpenFM

Streaming radio mod for Minecraft, with OpenComputers control support
MIT License
25 stars 17 forks source link

No sound #57

Open T-imon opened 7 years ago

T-imon commented 7 years ago

Hi, I'm running OpenFM-1.7.10-0.1.0-44.jar

  1. I spawn in the radio/speaker, place both down and link them with the radio tuner.

log: [20:57:24] [Client thread/INFO]: [CHAT] [OpenFM] Selected Speaker [20:57:25] [Client thread/INFO]: [CHAT] [OpenFM] Speaker Added

Then I add your (most-likely known-to-work) radio: http://listen.radionomy.com/DeepHouse

Then I hear nothing playing. Except for the stock minecraft music if that is the case at that time.

log:

[20:58:26] [Client thread/INFO] [openfm]: Starting Stream: http://listen.radionomy.com/DeepHouse at X:663 Y:4 Z:220

Extra information: I'm running Linux, which means that all minecraft audio is being outputted to PulseAudio.

All friends that run on Windows have it working.

So this can be narrowed down to what output device you have choosen in the mod. (I think, I don't know java so I couldn't check)

Thanks!

CaitlynMainer commented 7 years ago

Which linux distro are you on? I've had one other report of issues on Arch, but it works fine for me in Debian, Ubuntu, and Fedora. (Also I don't select a output device in the mod, I pipe output out via MC's sound system which is what confuses me)

T-imon commented 7 years ago

Arch, did you manage to come up with a solution for the other user running arch?

CaitlynMainer commented 7 years ago

No, they made a VM for me to try to use to reproduce it but it never booted, I've found VM images from osbox that have recent versions of arch that I'll try when I get off work.

T-imon commented 7 years ago

Awesome, if there is anything I can do in the mean time tell me.

I'm looking forward to your discoveries.

CaitlynMainer commented 7 years ago

I just tested on Arch with ALSA, and had a friend test with Pulse, and both of us were able to hear playback from OpenFM. Just in case check your Jukebox/Noteblock volume settings for Minecraft.

T-imon commented 7 years ago

I did check all my in-game sound settings. And they're on. (And I can hear jukeboxes/noteblocks playing) I've tried running it on two different Arch installations on two different systems. Is there anything I can do to increase the debugging in the logs?

sidenote: I'm running this mod together with FTB Infinity Evolved (179 mods already loaded). But this has not seemed to impact other friends of me so it shouldn't make a difference I hope.

CaitlynMainer commented 7 years ago

Could you please try this build in single player http://puu.sh/u4y4Z/23de2ef396.jar this is the latest build for 1.9/1.10 with lots of logging in the playback methods, just try to play a stream, wait a minute or so, close the game and give me the entire log in a pastebin.

LizzyTrickster commented 7 years ago

@TTimoNN mind pasting the output of `pacman -Q | grep -i "alsa|pulse"? It may be that you don't have a package that's needed. I was the other user @CaitlynMainer said about, mine wasn't working a while back but it's working after I re-did my Arch install so I think i got an extra package that may have not been there earlier

T-imon commented 7 years ago

sudo pacman -Q | grep -e alsa -e pulse

alsa-lib 1.1.3-1 alsa-plugins 1.1.1-1 alsa-utils 1.1.3-1 apulse 0.1.7-1 lib32-alsa-lib 1.1.3-1 lib32-alsa-plugins 1.1.1-1 lib32-libpulse 10.0-1 libcanberra-pulse 0.30-8 libpulse 10.0-2 pulseaudio 10.0-2 pulseaudio-alsa 2-3 zita-alsa-pcmi 0.2.0-3

testing custom build, sec. I have no idea how to install anything in MC 1.10, never played anything beyond 1.7.10 lol, let me do some research on this.

LizzyTrickster commented 7 years ago

hmm, I don't have alsa-utils, apulse or any of the 32bit libs but i do have pulseaudio-gconf though comparing my list with another working arch user's they don't have gconf so it's not that.... This just gets stranger and stranger.... What Java/JDK do you have?

T-imon commented 7 years ago

openjdk version "1.8.0_121" OpenJDK Runtime Environment (build 1.8.0_121-b13) OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)

I happen to broke my pulse yesterday, then fixed it by doing a complete reinstall of everything audio related, I'm going to test my FTB setup again.

edit: didn't fix it, I'm trying to get 1.10.2 to work now.

CaitlynMainer commented 7 years ago

Oh.. my bad for some reason I thought your ticket said 1.9... I can do this in 1.7 as well, it'll just be a bit

T-imon commented 7 years ago

That would be very much appreciated! I'll wait for your response.

CaitlynMainer commented 7 years ago

http://puu.sh/u4HuY/672ac52dde.jar Hopefully this works I'm at work and none of these computers can run MC so this is untested.

T-imon commented 7 years ago

on it, will report back asap

T-imon commented 7 years ago

[21:07:40] [Client thread/INFO] [openfm]: Starting Stream: http://listen.radionomy.com/DeepHouse at X:-2136 Y:4 Z:-1133 [21:07:40] [Thread-45/INFO] [openfm]: Device was null creating a new audio device via FactoryRegistry [21:07:40] [Thread-45/INFO] [openfm]: Current volume values: [21:07:40] [Thread-45/INFO] [openfm]: Player Volume: 0.0 [21:07:40] [Thread-45/INFO] [openfm]: Master Volume: 0.39072847 [21:07:40] [Thread-45/INFO] [openfm]: Note Block / Jukebox volume: 1.0 [21:07:40] [Thread-45/INFO] [openfm]: Result: 0.0 [21:07:40] [Thread-45/INFO] [openfm]: Listener was not null, calling playbackStarted [21:07:45] [Client thread/INFO] [openfm]: stop() was called [21:07:45] [Client thread/INFO] [openfm]: close() was called [21:07:45] [Client thread/INFO] [openfm]: out was not null, we're closing the output stream [21:07:45] [Thread-45/INFO] [openfm]: out was null in decodeFrame()... this is bad. [21:07:45] [Thread-45/INFO] [openfm]: Audio Out was null exiting decodeFrame() [21:07:45] [Thread-45/INFO] [openfm]: We're out of frames! [21:07:45] [Thread-45/INFO] [openfm]: AudioDevice was null aborting

Full log with a lot of other stuff: http://paste.feed-the-beast.com/view/3ba680af grepped full log on "openfm": http://termbin.com/ar0d

CaitlynMainer commented 7 years ago

Hmm... how long did you leave it running for? just the 5ish seconds in the log? Also, could you get me a screenshot of your radio GUI?

T-imon commented 7 years ago

http://i.imgur.com/E0vhdWe.png Left it on for 30 seconds and counting, no changes in the log. (And no, my ip is not banned from that radio station(gotta check all posibilities :) ))

CaitlynMainer commented 7 years ago

it's odd... it's reading the radio's volume as 0.0, though you've got it set to 9... Also, looking at the log, 5 seconds after it started something called stop and everything flushed THEN it tried to play the stream.

T-imon commented 7 years ago

I might've stopped and paused it within those 5 seconds, from your comment I assume that this is all related to the radio volume being 0

CaitlynMainer commented 7 years ago

I'm going to run another debug build, and this one is going to be VERY spammy you'll likely need to pastebin the output

T-imon commented 7 years ago

Did some tests and changed the player volume to something different before and after starting the stream, it keeps outputting player volume 0

I love spammy log files!

CaitlynMainer commented 7 years ago

http://puu.sh/u4J56/82398451f7.jar

T-imon commented 7 years ago

800.000 lines of "sampler loop: 0.25"

Start:

[21:32:22] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, appliedenergistics2-core, CodeChickenCore, NotEnoughItems, ThE-core, ThaumicTinkerer-preloader, Choc$
[21:32:22] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, appliedenergistics2-core, CodeChickenCore, NotEnoughItems, ThE-core, ThaumicTinkerer-preloader, Choc$
[21:32:50] [Client thread/INFO] [openfm]: Registering mod with OpenUpdater.
[21:32:50] [Client thread/INFO] [openfm]: OpenUpdater is not installed, not registering.
[21:33:00] [Client thread/INFO] [openfm]: Registering BreakEvent
[21:33:00] [Client thread/INFO] [openfm]: Registering TESR
[21:33:53] [Netty IO #1/INFO] [FML]: Client attempting to join with 175 mods : BuildCraft|Silicon@7.1.16,ProjRed|Expansion@4.7.0pre12.95,ForgeMicroblock@1.2.0.345,iChunUtil@4.2.2,rftools@4.23,Extra$
[21:35:05] [Client thread/INFO] [openfm]: MP3
[21:35:05] [Client thread/INFO] [openfm]: Starting Stream: http://listen.radionomy.com/DeepHouse at X:426 Y:4 Z:734
[21:35:05] [Thread-43/INFO] [openfm]: Device was null creating a new audio device via FactoryRegistry
[21:35:05] [Thread-43/INFO] [openfm]: Current volume values:
[21:35:05] [Thread-43/INFO] [openfm]: Player Volume: 1.0
[21:35:05] [Thread-43/INFO] [openfm]: Master Volume: 1.0
[21:35:05] [Thread-43/INFO] [openfm]: Note Block / Jukebox volume: 1.0
[21:35:05] [Thread-43/INFO] [openfm]: Result: 1.0
[21:35:05] [Thread-43/INFO] [openfm]: Listener was not null, calling playbackStarted
[21:35:05] [Thread-43/INFO] [openfm]: out is not null in decodeFrame
[21:35:05] [Thread-43/INFO] [openfm]: sampler loop: 0.25
[21:35:05] [Thread-43/INFO] [openfm]: sampler loop: 0.25
[21:35:05] [Thread-43/INFO] [openfm]: sampler loop: 0.25

etc etc etc

CaitlynMainer commented 7 years ago

well.. that's something, I know the decoder is running... but why is it not playing. THIS is why I wish I had a system it did this on...

T-imon commented 7 years ago

You're welcome to teamviewer into my rig if you have time, obviously you won't be able to smoothly play MC through that, nor have your debug tools at hand....

T-imon commented 7 years ago

[21:35:05] [Thread-43/INFO] [openfm]: sampler loop ended [21:35:05] [Thread-43/INFO] [openfm]: out is not null in decodeFrame

every now and then through the sampler loops

I can't give you the end of the log file because the minercraft logging system broke after 2 seconds of running it.

CaitlynMainer commented 7 years ago

Ok, this one should be a little less spammy, http://puu.sh/u4LiT/be6d1796bf.jar the decoder is running but it's not outputting, and I can't understand why..

T-imon commented 7 years ago

http://termbin.com/9if4 I see you forced the player volume to 1, no sound yet sadly. I quickly stopped it after the first try because I could see the messages flowing again, but the rate was doable so I turned it on again for longer.

CaitlynMainer commented 7 years ago

yeah I figured full volume would rule out any issues with the volume getting floored in the sampler loop. so the device is not null, and is open, but no sound.. :/ I'm at a loss here. I'll keep poking around at it

CaitlynMainer commented 7 years ago

This is a very simplified version of the writer: http://puu.sh/u4Mxh/713d8885ba.jar if this works I think I know where the error is. (Warning it may be loud I'm not sure (if it works))

T-imon commented 7 years ago
[22:26:32] [Client thread/INFO]: [CHAT] [OpenFM] Selected Speaker
[22:26:32] [Client thread/INFO]: [CHAT] [OpenFM] Speaker Added
[22:26:34] [Client thread/INFO] [inventorytweaks]: pcl.OpenFM.GUI.GuiRadio
[22:26:34] [Client thread/INFO] [inventorytweaks]: pcl.OpenFM.TileEntity.RadioContainer
[22:26:39] [Client thread/INFO] [openfm]: MP3
[22:26:39] [Client thread/INFO] [openfm]: Starting Stream: http://listen.radionomy.com/DeepHouse at X:1554 Y:4 Z:-480
[22:26:39] [Thread-43/INFO] [openfm]: Device was null creating a new audio device via FactoryRegistry
[22:26:39] [Thread-43/INFO] [openfm]: Current volume values:
[22:26:39] [Thread-43/INFO] [openfm]: Player Volume: 1.0
[22:26:39] [Thread-43/INFO] [openfm]: Master Volume: 1.0
[22:26:39] [Thread-43/INFO] [openfm]: Note Block / Jukebox volume: 1.0
[22:26:39] [Thread-43/INFO] [openfm]: Result: 1.0
[22:26:39] [Thread-43/INFO] [openfm]: Listener was not null, calling playbackStarted
[22:26:56] [Client thread/INFO] [openfm]: stop() was called: stop
[22:26:56] [Client thread/INFO] [openfm]: close() was called by: stop
[22:26:56] [Client thread/INFO] [openfm]: out was not null, we're closing the output stream
[22:26:56] [Thread-43/INFO] [openfm]: out was null in decodeFrame()... this is bad.
[22:26:56] [Thread-43/INFO] [openfm]: Audio Out was null exiting decodeFrame()
[22:26:56] [Thread-43/INFO] [openfm]: We're out of frames!
[22:26:56] [Thread-43/INFO] [openfm]: AudioDevice was null aborting
[22:26:57] [Client thread/INFO] [openfm]: MP3
[22:26:57] [Client thread/INFO] [openfm]: Starting Stream: http://listen.radionomy.com/DeepHouse at X:1554 Y:4 Z:-480
[22:26:57] [Thread-45/INFO] [openfm]: Device was null creating a new audio device via FactoryRegistry
[22:26:57] [Thread-45/INFO] [openfm]: Current volume values:
[22:26:57] [Thread-45/INFO] [openfm]: Player Volume: 1.0
[22:26:57] [Thread-45/INFO] [openfm]: Master Volume: 1.0
[22:26:57] [Thread-45/INFO] [openfm]: Note Block / Jukebox volume: 1.0
[22:26:57] [Thread-45/INFO] [openfm]: Result: 1.0
[22:26:57] [Thread-45/INFO] [openfm]: Listener was not null, calling playbackStarted

Only Minecraft music :(

CaitlynMainer commented 7 years ago

can you paste the contents of /etc/java-8-openjdk/sound.properties ?

T-imon commented 7 years ago

http://termbin.com/1lkb

T-imon commented 7 years ago

I tried some random java audio test program: http://pastebin.com/raw/JdzJerYB I got this, maybe it is of help.

CaitlynMainer commented 7 years ago

javax.sound.sampled.LineUnavailableException "This situation arises most commonly when a requested line is already in use by another application."

CaitlynMainer commented 7 years ago

can you have something like a youtube video running with audio while MC is open?

T-imon commented 7 years ago

Yes, my guess it that that java test program is not using pulse but only alsa, alsa has trouble with multiple audio streams. I run audio from cmus/yt/mc all at the same time without a problem.

CaitlynMainer commented 7 years ago

Well the audio device is set in the config I had you check, there is nothing expressly set in yours.. I'm wondering if java is trying to use ALSA for everything which is why my streams can't run cause MC is using the device already.

T-imon commented 7 years ago

There's no way that MC is using alsa seeing as pulseaudio is already running on alsa.

CaitlynMainer commented 7 years ago

this is my sound.properties http://puu.sh/u4Ot6/b140b94246.txt Lizzy's config doesn't have anything explicitly set like yours, but with the error from this other program It's looking like this is an issue with Alsa/pulse/java that only happens to some people.

T-imon commented 7 years ago

I tried your settings, no success. If you're really out of ideas/motivation then I understand. I can live without music in MC.

gamax92 commented 7 years ago

pulseaudio will create a virtual alsa device and set that as the default, and then output to specific other alsa devices. If you have pulseaudio running then even if multiple applications try to use alsa at the same time it'll work as it's all still routed through pulseaudio, so it's likely not to be caused by something trying to use alsa.

OpenFM tries to play audio through java which seems to use alsa however, and looking at pavucontrol here showed that java was not playing through pulseaudio directly or the virtual pulse alsa device. I ran fuser -v /dev/snd/* and it shows it's playing directly to a hardware device, which is not the correct thing to do at all, wtf java.

@TTimoNN Something that you can try perhaps, is to start a stream and run fuser -v /dev/snd/* and make sure "java" isn't listed on anything, it should all be "pulseaudio"

EDIT: I went ahead and rewrote the entire playback stuff to run on OpenAL, so the silliness with alsa or arch or whatever should be gone. If MC plays audio then OpenFM plays audio

CaitlynMainer commented 7 years ago

@gamax92 just rewrote OpenFM to output via OpenAL, meaning audio should output from MC's sound system directly, please test this build: http://puu.sh/u7xpF/3548e1557e.jar and let me know if it works.

T-imon commented 7 years ago

Receiving all MC sounds but no stream audio from OpenFM, nothing in the log besides.

[13:01:59] [Client thread/INFO] [openfm]: MP3
[13:01:59] [Client thread/INFO] [openfm]: Starting Stream: http://listen.radionomy.com/DeepHouse at X:471 Y:4 Z:-1312

and:

[12:56:59] [Client thread/INFO] [openfm]: Registering BreakEvent
[12:56:59] [Client thread/INFO] [openfm]: Registering TESR