Comments (20)
The wonders of sandboxing...
Assign to @ColinKinloch
from furnace.
It is disabled because I plan to add a native JACK backend to Furnace.
from furnace.
I feel it should work, I'll have a think and get back to you.
from furnace.
Can confirm it working on latest available Flatpak stable 1.14.4 đ
Thanks for the pointers :)
from furnace.
Apparently it seems that would need --device=all
, which is too much permissions in general (blockdevs, etc):
https://github.com/flathub/net.sourceforge.kmidimon/blob/master/net.sourceforge.kmidimon.json#L13
from furnace.
It has access to the xdg-run/pipewire-0
.
Pipewire provides a jack server implementation.
Though looking through the furnace options I can't find the setting for it.
I'm using SDL/pipewire for my audio output which works pretty well.
from furnace.
Furnace uses ALSA MIDI through RtMidi (yeah, I disabled JACK MIDI).
from furnace.
Ah, the flatpak builds RtMidi separately with jack support.
Is there a reason it's disabled? It seems to work well.
from furnace.
Seems that Debian KDE doesn't use pipewire by default yet.
I guess I should add --device=all
from furnace.
My recommendation would be to add this as a part of the installation documentation, so the users can override that behaviour themselves.
That way, the Flatpak is still contained in a sane way and if anybody needs to override this, until the Jack implementation is ready, they can do that, with all the possible repercussions.
sudo flatpak override --device=all org.tildearrow.furnace
for systemwide
flatpak override --user --device=all org.tildearrow.furnace
for user installations.
from furnace.
The flatpak currently supports jack via RTMidi and has permissions for specifically the pipewire implementation of jackd.
The issue is how do you display these suggestions to the user:
- I could add a flatpak specific patch to the appdata to put it here: https://flathub.org/en-GB/apps/org.tildearrow.furnace
- And add it to the README here: https://github.com/flathub/org.tildearrow.furnace/
- Also perhaps a patch to put it in the log when it fails to access the midi device
Out of interest what distro do you use?
from furnace.
Maybe I don't understand, but do you mean MIDI should work currently with jack routing? Because it doesn't on my side:
This is on a Ubuntu system.
from furnace.
Which version of Ubuntu?
Ubuntu switched to pipewire on version 22.10.
Could you give me the output of pgrep -a pulse
and pgrep -a jack
from furnace.
Yeah, this is focal, but has added pipewire support and jack via pipewire works for other applications (Bitwig for example). So that's not the problem:
pgrep -a pulse:
1234 /usr/bin/pipewire-pulse
4567 /usr/lib/x86_64-linux-gnu/xfce4/panel/wrapper-2.0 /usr/lib/x86_64-linux-gnu/xfce4/panel/plugins/libpulseaudio-plugin.so
pgrep -a jack is empty
from furnace.
Mine is using ALSA for MIDI as it turns out (via) pipewire đ¤ˇ.
Maybe try dpkg -S '*libspa-alsa*'
to figure out what package provides it.
or just update to a newer distro.
from furnace.
Yeah, I can't figure it out in this setup. But it will work as intended, if I give it --device all
access:
Will check on another system, as soon as the next LTS drops. Thanks so far for the help :)
from furnace.
It appears that Furnace does not allow you to choose which RtMidi::Api to use, so RtMidi falls back to trying all available APIs...
...starting with ALSA.
from furnace.
Are you sure Flatpak does not offer a way to only provide access to /dev/snd?
from furnace.
There's a discussion here: flatpak/xdg-desktop-portal#1142
I checked just now and if I run furnace with --nosocket=pulseaudio
I retain jack / pipewire audio out and loose the ability to enumerate MIDI devices. It seems that access to ALSA midi (/dev/snd/seq) is controlled by that socket.
Here's the line in flatpak that gives access to /dev/snd
: https://github.com/flatpak/flatpak/blob/2cb17b4eb82ecedaa98b5b7f954cf3e52fa95682/common/flatpak-run-pulseaudio.c#L331-L337
introduced in: flatpak/flatpak@4d1899b
Looks like flatpak 0.6.1 was 8 years ago https://github.com/flatpak/flatpak/tree/0.6.1
The version of flatpak included in 20.04 LTS is too old by 4 years. I guess the question is what does LTS mean? It's a promise made by Ubuntu so let them provide the support đ.
from furnace.
Looks like flatpak 0.6.1 was 8 years ago
I've updated the issue description to better reflect what v0.6.1 refers to.
from furnace.
Related Issues (20)
- MacOS Intel builds are broken. HOT 2
- FM 2 bug HOT 12
- Mikey Samples don't play in VGM export HOT 4
- Doesn't export correctly to GB Studio. HOT 4
- Lynx Load LFSR is completely nonfunctional HOT 1
- NES: Hardware sweep is not user-friendly HOT 1
- Furnace doesn't release file lock when dragging a file on Windows.
- emu2413 final issues HOT 3
- SNES: Sample looping issues again HOT 2
- [CRITICAL BUG] Crash on intro with software renderer HOT 1
- Custom shortcut not working HOT 1
- Furnace crashes when cloning over 32 PC Speakers HOT 1
- AY8930 noise effect bug HOT 1
- Crash while aborting playback in debug menu HOT 1
- ADSR type vol macro doesnt go to the bottom limit = 0
- Moving instruments/samples up or down with the move up/down arrows does not follow the instrument been moved.
- F11 - F12 keys stop working inside the file/instrument/sample selector. HOT 4
- Export is sometimes exporting half song for some channels. HOT 1
- YMF262-LLE exports corrupts on a certain demo song
- Modal fade-in glitched in power-saving mode HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
đ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. đđđ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google â¤ī¸ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from furnace.