helge17 / tuxguitar

Improve TuxGuitar and provide builds
Other
303 stars 29 forks source link

No sound in Kubuntu 24.04 #416

Open Timeout-Timo opened 2 weeks ago

Timeout-Timo commented 2 weeks ago

There is no sound if I play any note inside the player. I'm using the Debian-Version of 1.6.3 and I've tried the master snapshot as well. Version 1.5.3 seems to work

Timeout-Timo commented 2 weeks ago

Seems identical to https://github.com/helge17/tuxguitar/issues/401

guiv42 commented 2 weeks ago

Could you please precise the sound settings you are using? Menu Tools/Settings/Sound And maybe try with other settings

Timeout-Timo commented 2 weeks ago

I'm using the default settings, e.g. TuxGuitar Synthezizer and TuxGuitar Sequencer over pulseaudio

Timeout-Timo commented 2 weeks ago

Other settings doesn't seem to work. I don't get any logs either...

guiv42 commented 2 weeks ago

ok, so no link to #401 (specific to Jack config).

guiv42 commented 2 weeks ago

I can't reproduce this issue : I just tried TuxGuitar 1.6.3 (.deb package from this repo) in a fresh install of kubuntu 24.04, with default settings, and it works fine. Could you check in this config please? 20240612_222641

Timeout-Timo commented 1 week ago

Nope, still no sound. I've reset the tuxguitar config inside ~/.config/tuxguitar as well but that didn't fix my problem. I've used "2024-06-10 master" (via deb package)

Timeout-Timo commented 1 week ago

But luckily, I've got an exception this time 😄

15.06.24 19:10  plasmashell javax.sound.midi.MidiUnavailableException: Can not open line
15.06.24 19:10  plasmashell     at media.sound.SoftSynthesizer.open(SoftSynthesizer.java:1131)
15.06.24 19:10  plasmashell     at media.sound.SoftSynthesizer.open(SoftSynthesizer.java:1035)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.impl.jsa.midiport.MidiPortSynthesizer.getSynth(MidiPortSynthesizer.java:74)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.impl.jsa.midiport.MidiPortSynthesizer.open(MidiPortSynthesizer.java:48)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiPlayer.loadOutputPort(MidiPlayer.java:938)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiPlayer.openOutputPort(MidiPlayer.java:980)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiPlayer.openOutputPort(MidiPlayer.java:965)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.app.action.impl.settings.TGReloadMidiDevicesAction.processAction(TGReloadMidiDevicesAction.java:29)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.editor.action.TGActionBase.execute(TGActionBase.java:24)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.action.TGActionManager.execute(TGActionManager.java:67)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.app.action.impl.settings.TGReloadSettingsAction.processAction(TGReloadSettingsAction.java:25)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.editor.action.TGActionBase.execute(TGActionBase.java:24)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.action.TGActionManager.execute(TGActionManager.java:67)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.editor.action.TGActionProcessor.processOnCurrentThread(TGActionProcessor.java:75)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.editor.action.TGActionProcessor.processOnCurrentThread(TGActionProcessor.java:88)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.editor.action.TGActionProcessor$1.run(TGActionProcessor.java:98)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.thread.TGPooledThreadHandler.processNext(TGPooledThreadHandler.java:66)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.thread.TGPooledThreadHandler.run(TGPooledThreadHandler.java:86)
15.06.24 19:10  plasmashell     at java.base/java.lang.Thread.run(Thread.java:1583)
15.06.24 19:10  plasmashell Caused by: javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian not supported.
15.06.24 19:10  plasmashell     at java.desktop/com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(DirectAudioDevice.java:484)
15.06.24 19:10  plasmashell     at java.desktop/com.sun.media.sound.AbstractDataLine.open(AbstractDataLine.java:115)
15.06.24 19:10  plasmashell     at media.sound.SoftSynthesizer.open(SoftSynthesizer.java:1076)
15.06.24 19:10  plasmashell     ... 18 more
15.06.24 19:10  plasmashell javax.sound.midi.MidiUnavailableException: Can not open line
15.06.24 19:10  plasmashell     at media.sound.SoftSynthesizer.open(SoftSynthesizer.java:1131)
15.06.24 19:10  plasmashell     at media.sound.SoftSynthesizer.open(SoftSynthesizer.java:1035)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.impl.jsa.midiport.MidiPortSynthesizer.getSynth(MidiPortSynthesizer.java:74)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.impl.jsa.midiport.MidiPortSynthesizerReceiver.getChannels(MidiPortSynthesizer.java:169)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.impl.jsa.midiport.MidiPortSynthesizerReceiver.sendControlChange(MidiPortSynthesizer.java:204)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.gm.port.GMReceiverProxy.sendControlChange(GMReceiverProxy.java:37)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.gm.port.GMChannel.sendControlChange(GMChannel.java:62)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.gm.port.GMChannel.sendProgramUpdated(GMChannel.java:92)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.gm.port.GMSynthesizerRouter.configureRoutes(GMSynthesizerRouter.java:21)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.gm.port.GMChannel.sendControlChange(GMChannel.java:60)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiChannelRouter.sendControlChange(MidiChannelRouter.java:59)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiTransmitter.sendControlChange(MidiTransmitter.java:45)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiPlayer.updateProgram(MidiPlayer.java:692)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiPlayer.updateProgram(MidiPlayer.java:681)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiPlayer.updateChannel(MidiPlayer.java:640)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiPlayer.updateChannels(MidiPlayer.java:628)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiPlayer.playBeat(MidiPlayer.java:871)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiPlayer.playBeat(MidiPlayer.java:866)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiPlayer$4.run(MidiPlayer.java:856)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.thread.TGPooledThreadHandler.processNext(TGPooledThreadHandler.java:66)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.thread.TGPooledThreadHandler.run(TGPooledThreadHandler.java:86)
15.06.24 19:10  plasmashell     at java.base/java.lang.Thread.run(Thread.java:1583)
15.06.24 19:10  plasmashell Caused by: javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian not supported.
15.06.24 19:10  plasmashell     at java.desktop/com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(DirectAudioDevice.java:484)
15.06.24 19:10  plasmashell     at java.desktop/com.sun.media.sound.AbstractDataLine.open(AbstractDataLine.java:115)
15.06.24 19:10  plasmashell     at media.sound.SoftSynthesizer.open(SoftSynthesizer.java:1076)
15.06.24 19:10  plasmashell     ... 21 more
15.06.24 19:10  plasmashell javax.sound.midi.MidiUnavailableException: Can not open line
15.06.24 19:10  plasmashell     at media.sound.SoftSynthesizer.open(SoftSynthesizer.java:1131)
15.06.24 19:10  plasmashell     at media.sound.SoftSynthesizer.open(SoftSynthesizer.java:1035)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.impl.jsa.midiport.MidiPortSynthesizer.getSynth(MidiPortSynthesizer.java:74)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.impl.jsa.midiport.MidiPortSynthesizerReceiver.getChannels(MidiPortSynthesizer.java:170)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.impl.jsa.midiport.MidiPortSynthesizerReceiver.sendControlChange(MidiPortSynthesizer.java:204)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.gm.port.GMReceiverProxy.sendControlChange(GMReceiverProxy.java:37)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.gm.port.GMChannel.sendControlChange(GMChannel.java:62)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.gm.port.GMChannel.sendProgramUpdated(GMChannel.java:92)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.gm.port.GMSynthesizerRouter.configureRoutes(GMSynthesizerRouter.java:21)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.gm.port.GMChannel.sendControlChange(GMChannel.java:60)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiChannelRouter.sendControlChange(MidiChannelRouter.java:59)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiTransmitter.sendControlChange(MidiTransmitter.java:45)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiPlayer.updateProgram(MidiPlayer.java:692)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiPlayer.updateProgram(MidiPlayer.java:681)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiPlayer.updateChannel(MidiPlayer.java:640)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiPlayer.updateChannels(MidiPlayer.java:628)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiPlayer.playBeat(MidiPlayer.java:871)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiPlayer.playBeat(MidiPlayer.java:866)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.player.base.MidiPlayer$4.run(MidiPlayer.java:856)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.thread.TGPooledThreadHandler.processNext(TGPooledThreadHandler.java:66)
15.06.24 19:10  plasmashell     at org.herac.tuxguitar.thread.TGPooledThreadHandler.run(TGPooledThreadHandler.java:86)
15.06.24 19:10  plasmashell     at java.base/java.lang.Thread.run(Thread.java:1583)
15.06.24 19:10  plasmashell Caused by: javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian not supported.
15.06.24 19:10  plasmashell     at java.desktop/com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(DirectAudioDevice.java:484)
15.06.24 19:10  plasmashell     at java.desktop/com.sun.media.sound.AbstractDataLine.open(AbstractDataLine.java:115)
15.06.24 19:10  plasmashell     at media.sound.SoftSynthesizer.open(SoftSynthesizer.java:1076)
15.06.24 19:10  plasmashell     ... 21 more
Timeout-Timo commented 1 week ago

And I've got a workaround:

  1. Install fluidsynth: sudo apt install fluidsynth
  2. Go into Tools -> Plugins and enable FluidSynth output plugin and go into its configuration
  3. Select ${tuxguitar.home.path}/share/soundfont/MagicSFver2.sf2
  4. Check if audio is on pulseaudio (even if I wonder why, since pulseaudio isn't installed at all...)
  5. Change MIDI Port to TG FluidSynth [MagicSFver2]

And now I have sound. You can close this issue if you want to

guiv42 commented 1 week ago

It seems java cannot access the midi system. See doc of MidiUnavailableException:

A MidiUnavailableException is thrown when a requested MIDI component cannot be opened or created because it is unavailable. This often occurs when a device is in use by another application. More generally, it can occur when there is a finite number of a certain kind of resource that can be used for some purpose, and all of them are already in use (perhaps all by this application)

Good news for the workaround. Since I cannot reproduce this issue I don't think I can really help.

I suggest leaving this issue open for some time, just to see if other users can reproduce the problem (and possibly find another solution?)