Implement the WebMIDI API
Categories
(Core :: DOM: Device Interfaces, enhancement, P3)
Tracking
()
People
(Reporter: cwilso, Unassigned)
References
(Depends on 4 open bugs, )
Details
(Keywords: dev-doc-complete)
Attachments
(1 file)
(deleted),
text/plain
|
Details |
Reporter | ||
Updated•12 years ago
|
Updated•12 years ago
|
Updated•12 years ago
|
Comment 2•12 years ago
|
||
Comment 3•12 years ago
|
||
Comment 4•12 years ago
|
||
Comment 6•12 years ago
|
||
Comment 10•12 years ago
|
||
Comment 11•12 years ago
|
||
Comment 12•12 years ago
|
||
Comment 13•11 years ago
|
||
Comment 14•11 years ago
|
||
Comment 15•11 years ago
|
||
Comment 16•11 years ago
|
||
Comment 17•11 years ago
|
||
Comment 18•11 years ago
|
||
Reporter | ||
Comment 19•11 years ago
|
||
Comment 20•11 years ago
|
||
Reporter | ||
Comment 21•11 years ago
|
||
Comment 22•11 years ago
|
||
Reporter | ||
Comment 23•11 years ago
|
||
Comment 24•11 years ago
|
||
Updated•10 years ago
|
Comment 25•10 years ago
|
||
Updated•10 years ago
|
Comment 26•10 years ago
|
||
Comment 27•10 years ago
|
||
Comment 28•10 years ago
|
||
Comment 29•9 years ago
|
||
Comment 30•9 years ago
|
||
Comment 31•9 years ago
|
||
Reporter | ||
Comment 32•9 years ago
|
||
Comment 33•9 years ago
|
||
Comment 34•9 years ago
|
||
Updated•9 years ago
|
Comment 35•9 years ago
|
||
Comment 36•9 years ago
|
||
Reporter | ||
Comment 37•9 years ago
|
||
Comment 38•9 years ago
|
||
Comment 39•9 years ago
|
||
Comment 40•9 years ago
|
||
Comment 41•8 years ago
|
||
Updated•8 years ago
|
Comment 42•8 years ago
|
||
Comment 43•8 years ago
|
||
Comment 44•8 years ago
|
||
Comment 45•8 years ago
|
||
Comment 46•8 years ago
|
||
Comment 47•8 years ago
|
||
Comment 48•8 years ago
|
||
Comment 49•7 years ago
|
||
Comment 50•7 years ago
|
||
Comment 51•7 years ago
|
||
Comment 52•7 years ago
|
||
Comment 53•7 years ago
|
||
Comment 54•7 years ago
|
||
Comment 55•7 years ago
|
||
Comment 56•7 years ago
|
||
Comment 57•7 years ago
|
||
Comment 58•7 years ago
|
||
Comment 59•7 years ago
|
||
Updated•7 years ago
|
Comment 60•7 years ago
|
||
Comment 61•7 years ago
|
||
Comment 62•7 years ago
|
||
Comment 63•6 years ago
|
||
Comment 64•6 years ago
|
||
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Comment 65•6 years ago
|
||
Migrating Webcompat whiteboard priorities to project flags. See bug 1547409.
Comment 66•6 years ago
|
||
See bug 1547409. Migrating whiteboard priority tags to program flags.
Updated•6 years ago
|
Comment 67•6 years ago
|
||
Are there (wiki?) pages somewhere that would allow a contributor to read up on what's in the tree right now, what's missing, and how they can help get support for basic MIDI written, tested, approved, and landed?
Comment 69•5 years ago
|
||
Until https://github.com/mozilla/standards-positions/issues/58 has some sort of resolution, there's not really much to do code-wise. The project is mostly stalled on spec/security issues.
Assuming that does come to a resolution... The base WebMIDI API, according to the spec version around January 2018, has been minimally implemented, but there is currently no native platform support. While the MIDI tests still run on every build, there's probably going to be some fixing needed to bring the API up to current Gecko standards, as well as implementing anything new/different that might've been added to the WebMIDI spec since.
As I am leaving and will most likely not be engaged with the project, I've handed this to :padenot. He's fairly busy right now with WebAudio concerns, so I'm not sure when he'll be able to continue work on this, as AFAIK this is considered very low priority work.
Comment 70•5 years ago
|
||
If we can find a group of enthusiastic people with some coding chops, we can probably hand the work off to them with minimal oversight on the Moz side. The spec discussion itself (ignoring the conversations and debate around implementation in a browser, let alone FF specifically) seems to have stalled a bit on what to do with respects to sysex, so it might make sense to simply follow the Chrome team's example and treat that part of the spec as "to be determined at some point in time but we're just not going to bother with it for now". Getting FF at least up to parity with Chrome feels like a worthwhile effort, as long as we can get outside effort on it so that no one in Moz has to feel bad about pushing on a low priority task?
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Comment 72•5 years ago
|
||
As a developer who's also been a music producer as long as they've been a developer (started on a c64..) I'm definitely excited to start seeing APIs like this become available.
Re: Pmax on Sysex: I really think that for most browser-based things that sysex would not commonly be used, so, "figuring it out at some point" is not a bad thing at all. It's mostly only used for downloading firmware data to devices and at that usually only older devices.
As for "someone at Moz feeling bad for pushing on a low priority task" .. if I worked for Moz - even though this is considered "low priority" - this would be something that I definitely wouldn't feel bad about, in fact I'd be quite excited to work on it, I'd love to contribute some code but I'm not sure I'll have the resources, though I definitely would be open to joining Moz in some aspect (working for moz would be cool I guess, cool enough to take it over my current gig), I may not be a 'group', but I am enthusiastic and have a lifetime of coding and digital music experience. I'd truly love to see real audio applications able to run in a browser, something along the lines of Logic or Cubase or ProTools in a browser could be quite interesting, especially with the collaborative possibilities.
I suppose, let me know if/how I can be of help.
Updated•5 years ago
|
Comment 73•4 years ago
|
||
Re: sysex, for me it's actually one of the most compelling use cases for WebMIDI.
I run a site (https://emu.tools/) which currently offers two sysex-based applications:
-
"e-loader" is a firmware update tool for various E-mu synths and samplers that are no longer supported and for which the original Windows .exe tool from E-mu has difficulties running under modern versions of Windows, and their Mac version only supported pre-OSX (i.e. MacOS 9).
-
"e-remote" is a web-based "virtual front panel" for E-mu EOS samplers which uses E-mu's "PEPtalk" protocol (carried inside sysex) to both control the sampler and also reproduce the current contents of the LCD display and LED panel buttons
At the moment I'm having to tell site users that Firefox isn't supported.
There are plenty other sites using sysex for things like patch editors and librarians, including the ability to share patch libraries over the 'net.
Comment 74•4 years ago
|
||
There is more and more web applications for sound composition and livecoding performances that support webMIDI. Here is a selection:
- https://100r.co/site/orca.html Orca, a powerful livecoding environment by Devine Lu Linvega
- https://grovity.raphaelbastide.com/ Grovity, a polyrhythmic micro-rhythm sequencer by me, Raphaël Bastide
- https://www.hisschemoller.com/mpg/ Music Pattern Generator, a modular real time euclidean patterns generator, by Wouter Hisschemöller
- https://www.z-tennot-iu.de/ A sequence with a beautiful and inspiring interface by @qwolilowp
Comment 75•4 years ago
|
||
Also from former mozillians who hate having to recommend Chrome just to be able to use their stuff:
- https://7jam.io/ Online jam space for digital fusion musicians
Comment 76•4 years ago
|
||
One more from another former mozillians who hate having to recommend Chrome just to be able to use their stuff:
https://www.scorio.com A score writer for creating sheet music with input via webMIDI
Comment hidden (advocacy) |
Comment 78•4 years ago
|
||
Actually I was thinking of starting an implementation in my spare time. This is an itch I really want to scratch, mostly because there are so many great artists using it these days and it's a shame for them to be stuck with Chrome. No promises regarding timing though, it will take a while as long as I'm on my own.
Comment 79•4 years ago
|
||
Does Mozilla do Google Summer of Code?
Comment 80•4 years ago
|
||
(In reply to Gabriele Svelto [:gsvelto] from comment #78)
Actually I was thinking of starting an implementation in my spare time. This is an itch I really want to scratch, mostly because there are so many great artists using it these days and it's a shame for them to be stuck with Chrome. No promises regarding timing though, it will take a while as long as I'm on my own.
Hi, Gabriele
Where is the like/love-button in Bugzilla?
My C coding skills are quite limited, but I would love to contribute.
Please contact me if you need help with simple programming tasks, testing or MIDI/WebMIDI API spec interpretations!
Best regards,
Erik
Comment 81•4 years ago
|
||
(In reply to Gabriele Svelto [:gsvelto] from comment #78)
Actually I was thinking of starting an implementation in my spare time. This is an itch I really want to scratch, mostly because there are so many great artists using it these days and it's a shame for them to be stuck with Chrome. No promises regarding timing though, it will take a while as long as I'm on my own.
Whatever progress can be made on the subject will result in me forever being greatful!
I'm also using MIDI in my own project for a long time now and I would really love to stop having to tell people to use Chrome when using the on-screen keyboard: https://the-monochord.com/listen/1:1-100.0-200.0-300.0-400.0-500.0-600.0-700.0-800.0-900.0-1000.0-1100.0-2:1/name:12ED(2[slash]1)/labels:C-C[hashtag]-D-D[hashtag]-E-F-F[hashtag]-G-G[hashtag]-A-B-B[hashtag]-C/baseFrequency:262
I'm not a C coder (I can read the code, but not so much write it), but if in any other way I can help, then I'm game!
Comment 82•4 years ago
|
||
In case it wasn't mentioned before: There is a way to use WebMIDI in Firefox.
The solution is called Jazz-Plugin https://jazz-soft.net/download/Jazz-Plugin/ and works for Firefox on Windows, MacOS and Linux.
One has to download and install the plugin (which technically isn't a plugin, but it had been so, some time ago) and then to install two different Firefox Extensions: "Jazz-MIDI" and "Web Midi API".
I've tested Jazz-Plugin with our music notation website http://www.scorio.com and found it to be compatible with Chrome's WebMIDI implementation. Jazz-Plugin ist free (no money), but doesn't seem to be open source.
Conclusion: It works fine but it's a nuisance to have to install three components in two different places.
Perhaps someone could talk to the creator(s) of Jazz-Plugin if they were willing to donate some of their code? And get an honourable mention?
Comment 83•4 years ago
|
||
(In reply to Gabriele Svelto [:gsvelto] from comment #78)
Actually I was thinking of starting an implementation in my spare time. This is an itch I really want to scratch, mostly because there are so many great artists using it these days and it's a shame for them to be stuck with Chrome. No promises regarding timing though, it will take a while as long as I'm on my own.
This is great - also count me in if you need a hand. I've integrated native MIDI more times than I can count on Windows and macOS, but have never looked into contributing into Firefox. I would be happy to provide the OS-side implementation from a stub on the mentioned platforms.
Comment 84•4 years ago
|
||
What's left to do is to integrate with the OSes APIs indeed. This is best done in Rust, because it's really easy to integrate in the Firefox build system (one line, and binding generation to C++ is automatic). Rust is the preferred language for new features, especially for leaf modules that are quite low-level like this with a rather narrow interface.
https://github.com/Boddlnagg/midir looks more or less what we need. It has everything we need except and Android backend, that we can do as a followup and contribute. Its license (MIT) is compatible with Firefox's.
Comment 85•4 years ago
|
||
One current limitation of midir
on Windows is that the port names are currently derived only from what Windows provides for the MIDI ports, and what Windows provides is pretty bad for USB MIDI in terms of informing the user of what they're selecting. Blink/Chromium addresses this by locating the parent device. For the midir
WinRT mapping, I've tried to approximate this (by using other WinRT APIs rather than Win32), but I believe until https://github.com/microsoft/windows-rs/issues/81 is addressed it's not possible to actually call the API's necessary to do this.
Comment 86•4 years ago
|
||
(In reply to Andrew Sutherland [:asuth] (he/him) from comment #85)
I've tried to approximate this (by using other WinRT APIs rather than Win32), but I believe until https://github.com/microsoft/windows-rs/issues/81 is addressed it's not possible to actually call the API's necessary to do this.
We can always roll our own temporary wrappers just for the calls we need. I did it recently for accessing the WER API for example.
Comment 87•4 years ago
|
||
FYI if someone starts hacking on this before I do please know that I can mentor and help you along the way. You can always find me hanging out in the #introduction channel in chat.mozilla.org.
Comment 88•3 years ago
|
||
(In reply to Paul Adenot (:padenot) from comment #84)
What's left to do is to integrate with the OSes APIs indeed. This is best done in Rust, because it's really easy to integrate in the Firefox build system (one line, and binding generation to C++ is automatic). Rust is the preferred language for new features, especially for leaf modules that are quite low-level like this with a rather narrow interface.
https://github.com/Boddlnagg/midir looks more or less what we need. It has everything we need except and Android backend, that we can do as a followup and contribute. Its license (MIT) is compatible with Firefox's.
This sounds really exciting!
I'd really love to contribute in some way to getting this done, and I have already previously messed with midir specifically, but I am completely lost on where to start if I wanted to integrate this into the firefox codebase....
Where would I start? Also would I actually have to build alllll of firefox to be able to develop something like this?
Comment 89•3 years ago
|
||
(In reply to mnzaki from comment #88)
This sounds really exciting!
I'd really love to contribute in some way to getting this done, and I have already previously messed with midir specifically, but I am completely lost on where to start if I wanted to integrate this into the firefox codebase....
I'm vendoring midir in bug 1728436. Currently it needs some light patching which I hope I can push upstream. Once that's done the actual implementation work can start.
Where would I start?
By building Firefox. Then you can look into the already existing DOM API under the dom/midi, that's where it will need to be wired up. I will be actively working on this and I'm always glad to get some help, but if you're unfamiliar with Firefox the work can be a bit daunting. One thing that I'd be very grateful for is testing if you have access to MIDI-enabled devices.
Also would I actually have to build alllll of firefox to be able to develop something like this?
Unfortunately yes.
Updated•3 years ago
|
Comment 90•3 years ago
|
||
Does this mean WebMIDI is a higher priority now?
Comment 91•3 years ago
|
||
I don't think as P3 is one of the lowest priority (yes is not P4 after all)...
Comment 92•3 years ago
|
||
Context: This is about WebCompat Priority. not the Core bug Priority (which was already P3)
The Webcompat Team looks at the report and if the signal of breakage or reports because Midi is not implemented and people are saying I can do this in Browser X but not in Browser Z. We raise the priority. That's just one of the signals.
Reporter | ||
Comment 93•3 years ago
|
||
(In reply to Gabriele Svelto [:gsvelto] from comment #89)
One thing that I'd be very grateful for is testing if you have access to MIDI-enabled devices.
Incidentally, I have a large pile of MIDI devices; I'd be happy to test support if you get a test build together and send me an email. I can run on Mac and Windows.
Comment 94•3 years ago
|
||
(In reply to Chris Wilson from comment #93)
(In reply to Gabriele Svelto [:gsvelto] from comment #89)
One thing that I'd be very grateful for is testing if you have access to MIDI-enabled devices.
Incidentally, I have a large pile of MIDI devices; I'd be happy to test support if you get a test build together and send me an email. I can run on Mac and Windows.
So do I ... Windows 10 and 11 and both x86_64
and arm64
Linux.
Comment 95•3 years ago
|
||
Excellent! I've already started pulling in the dependencies in bug 1728436 and I've been working on the implementation for the past two weeks. I still have to iron out some issues related to the object lifetimes but after that point it's testing time!
Comment 96•3 years ago
|
||
(In reply to znmeb from comment #94)
(In reply to Chris Wilson from comment #93)
(In reply to Gabriele Svelto [:gsvelto] from comment #89)
One thing that I'd be very grateful for is testing if you have access to MIDI-enabled devices.
Incidentally, I have a large pile of MIDI devices; I'd be happy to test support if you get a test build together and send me an email. I can run on Mac and Windows.
So do I ... Windows 10 and 11 and both
x86_64
andarm64
Linux.
So do I ... Windows 10 x86_64
and Ubuntu 20
Comment 97•3 years ago
|
||
if you're unfamiliar with Firefox the work can be a bit daunting. One thing that I'd be very grateful for is testing if you have access to MIDI-enabled devices.
I have a number of MIDI devices and could help test and provide feedback. I was brought here because I recently started using https://flat.io again, but would like to use it's MIDI functionality within Firefox (instead of it's suggestion of using Chrome).
Comment 98•3 years ago
|
||
I expect the initial implementation to land behind a pref this week. To everybody who's willing to test, thank you! Your testing will be precious because the very first version will most likely have bugs and limitations; your testing will be precious.
Comment 99•3 years ago
|
||
For a Firefox non-aficionado who would like to test:
- What does "behind a pref" mean?
- Where/how can I download Firefox with your implementation?
- Which platforms (Mac/Win77/Linux) should be tested?
Comment 100•3 years ago
|
||
(In reply to johannes.feulner from comment #99)
For a Firefox non-aficionado who would like to test:
- What does "behind a pref" mean?
Not enabled by default, but it's possible to enabling by turning a flag. One will have to go to about:config
, search for webmidi
and turn the flag dom.webmidi.enabled
to true
. In any case, it's not in any released build at the moment, but will. It's going to be announced here.
- Where/how can I download Firefox with your implementation?
This is going to be in Firefox Nightly. It is a version that's released every day and has a lot more experimental stuff than regular builds.
- Which platforms (Mac/Win77/Linux) should be tested?
Linux and macOS seem to work well, according to my own tests. I need to test Windows (from 7 up to 11) a bit more. A known limitation (that we intend to adress) is device hot-plugging, but (afaik) everything else works.
Comment 101•3 years ago
|
||
First test results running nightly 97.0a1 (2021-12-22) (64-Bit), testing with https://www.scorio.com/new-score
Windows 10: Listing of devices and MIDI-Input/Output works fine. My Korg micoKEY identifies as expected as "microKEY". "Microsoft GS Wavetable Synth" is properly detected. Same as with Google Chrome.
Ubuntu 20.04.03: Listing of devices and MIDI-Input/Output works fine. My Korg micoKEY identifies as "microKEY:microKey MIDI 24:0". This doubling of the name is true for other MIDI devices as well. This is different from Google Chrome.
As Paul mentioned hot plugging is not yet supported on either platform.
Very good work, I love it.
Comment 102•3 years ago
|
||
(In reply to johannes.feulner from comment #101)
First test results running nightly 97.0a1 (2021-12-22) (64-Bit), testing with https://www.scorio.com/new-score
Windows 10: Listing of devices and MIDI-Input/Output works fine. My Korg micoKEY identifies as expected as "microKEY". "Microsoft GS Wavetable Synth" is properly detected. Same as with Google Chrome.
Ubuntu 20.04.03: Listing of devices and MIDI-Input/Output works fine. My Korg micoKEY identifies as "microKEY:microKey MIDI 24:0". This doubling of the name is true for other MIDI devices as well. This is different from Google Chrome.
As Paul mentioned hot plugging is not yet supported on either platform.
Very good work, I love it.
Thank you, that's excellent!
Comment 103•3 years ago
|
||
Will do more extensive testing soon, but I can tell you that sending MIDI from a DAW like Ableton Live to a page in Firefox via the IAC Driver seems to work great! Thanks for all of your hard work on this!
Comment 104•3 years ago
|
||
Amazing! From what I can gather we're looking at 97 branch? If that's the case I can doll up the MDN docs \o/
Comment 105•3 years ago
|
||
@paul(In reply to Paul Adenot (:padenot) from comment #100)
Happy new year everyone!
Linux and macOS seem to work well, according to my own tests. I need to test Windows (from 7 up to 11) a bit more. A known limitation (that we intend to adress) is device hot-plugging, but (afaik) everything else works.
I just started testing on Windows - There are some promising beginnings but to be honest, I didn't expect Novation Components to work out of the box - There may be other Chromium dependencies we need to resolve within the app before Components will actually work on FF.
I can't make any promises (I'm an external contractor anyway) but I'll try my best to convice our QA team to do some initial testing soon on both Mac and Windows.
Paul, what specifically did you mean by "hotplugging will not work"? Does that mean I should restart the browser after plugging in a browser or does that simply refer to the relevant callbacks not being called, so reload should suffice?
In any case, y'all you can't imagine how happy this push for getting it done makes me! Well done to everyone involved!
Comment 106•3 years ago
|
||
(In reply to Jan Krutisch from comment #105)
Paul, what specifically did you mean by "hotplugging will not work"? Does that mean I should restart the browser after plugging in a browser or does that simply refer to the relevant callbacks not being called, so reload should suffice?
Hi Jan! Reloading the page is enough, this forces a re-enumeration of the devices attached to the machine. MidiAccess.onstatechange
isn't called right now when a device is plugged to the machine, that's right.
I'm working on logging at the moment, so debugging complex applications should be easier in a few days. In any case, thanks for trying it out!
Comment 107•3 years ago
|
||
During my testing I found the implementation to be rather solid on Linux and Windows but I've encountered stability issues on macOS. I wouldn't recommend testing on that platform until we have sorted them out.
Comment 108•3 years ago
|
||
Do we want to add a relnote for this to the Fx97 beta relnotes? Please nominate with suggested wording if yes.
Comment 109•3 years ago
|
||
Running Version 98.0a1 (2022-01-13) (64-bit) on Ubuntu 20.04.3 LTS.
dom.webmidi.enabled = true
dom.webmidi.gated = true (also tried with false)
midi.testing = false (also tried with true)
When I open https://www.scorio.com/new-score, the only MIDI ports I get are:
Input device: Test Control MIDI Device Input Port
Output device: Test State MIDI Device Output Port / Always Closed MIDI Device Output Port / Test Control MIDI Device Output Port
On Chrome, I see the Keystation 49es MIDI 1 keyboard that I plugged in.
I've also tried with Timidity, snd-virmidi, etc. - none of those ports show up.
Can anyone help me figure out why I am not seeing any ports?
Comment 110•3 years ago
|
||
@Karim
For me it works well with Version 98.0a1 (2022-01-13) (64-bit) on Ubuntu 20.04.3 LTS.
midi.testing must be false. If true, the "Test ..." dummy devices will be shown.
Comment 111•3 years ago
|
||
Comment 112•3 years ago
|
||
Thanks, midi.testing = false does remove the dummy devices. However, I'm still not seeing what I am expecting.
Below is the output of aconnect -l
. Notice client 28: 'Keystation 49es' [type=kernel,card=3]. This does not show up in the devices list.
I am also testing with https://blog.karimratib.me/demos/sheetplayer/ which lists output ports and only shows me the 4 "Midi Through" ports, and http://mmontag.github.io/dx7-synth-js/ which detects no input port whatsoever (even though both work on Chrome).
client 0: 'System' [type=kernel]
0 'Timer '
1 'Announce '
Connecting To: 129:0
client 14: 'Midi Through' [type=kernel]
0 'Midi Through Port-0'
Connecting To: 129:0, 128:0, 135:0, 131:0
Connected From: 130:0, 141:0[real:0], 136:0[real:0]
1 'Midi Through Port-1'
Connecting To: 129:0, 138:0, 132:0
Connected From: 130:1, 142:0[real:0], 145:0[real:0]
2 'Midi Through Port-2'
Connecting To: 129:0, 139:0, 133:0
Connected From: 130:2, 143:0[real:0], 146:0[real:0]
3 'Midi Through Port-3'
Connecting To: 129:0, 140:0, 134:0
Connected From: 130:3, 144:0[real:0], 151:0[real:0]
client 24: 'Virtual Raw MIDI 2-0' [type=kernel,card=2]
0 'VirMIDI 2-0 '
Connecting To: 129:0
Connected From: 130:4
client 25: 'Virtual Raw MIDI 2-1' [type=kernel,card=2]
0 'VirMIDI 2-1 '
Connecting To: 129:0
Connected From: 130:5
client 26: 'Virtual Raw MIDI 2-2' [type=kernel,card=2]
0 'VirMIDI 2-2 '
Connecting To: 129:0
Connected From: 130:6
client 27: 'Virtual Raw MIDI 2-3' [type=kernel,card=2]
0 'VirMIDI 2-3 '
Connecting To: 129:0
Connected From: 130:7
client 28: 'Keystation 49es' [type=kernel,card=3]
0 'Keystation 49es MIDI 1'
Connecting To: 129:0
client 128: 'TiMidity' [type=user,pid=15388]
0 'TiMidity port 0 '
Connected From: 130:8, 14:0
1 'TiMidity port 1 '
Connected From: 130:9
2 'TiMidity port 2 '
Connected From: 130:10
3 'TiMidity port 3 '
Connected From: 130:11
client 131: 'WebMIDI input' [type=user,pid=14732]
0 'Input connection'
Connected From: 14:0, 130:16
client 132: 'WebMIDI input' [type=user,pid=14732]
0 'Input connection'
Connected From: 14:1, 130:17
client 133: 'WebMIDI input' [type=user,pid=14732]
0 'Input connection'
Connected From: 14:2, 130:18
client 134: 'WebMIDI input' [type=user,pid=14732]
0 'Input connection'
Connected From: 14:3, 130:19
client 135: 'WebMIDI input' [type=user,pid=14732]
0 'Input connection'
Connected From: 14:0, 130:12
client 136: 'WebMIDI output' [type=user,pid=14732]
0 'Output connection'
Connecting To: 14:0[real:0], 129:0
client 138: 'WebMIDI input' [type=user,pid=14732]
0 'Input connection'
Connected From: 14:1, 130:13
client 139: 'WebMIDI input' [type=user,pid=14732]
0 'Input connection'
Connected From: 14:2, 130:14
client 140: 'WebMIDI input' [type=user,pid=14732]
0 'Input connection'
Connected From: 14:3, 130:15
client 141: 'WebMIDI output' [type=user,pid=14732]
0 'Output connection'
Connecting To: 14:0[real:0], 129:0
client 142: 'WebMIDI output' [type=user,pid=14732]
0 'Output connection'
Connecting To: 14:1[real:0], 129:0
client 143: 'WebMIDI output' [type=user,pid=14732]
0 'Output connection'
Connecting To: 14:2[real:0], 129:0
client 144: 'WebMIDI output' [type=user,pid=14732]
0 'Output connection'
Connecting To: 14:3[real:0], 129:0
client 145: 'WebMIDI output' [type=user,pid=14732]
0 'Output connection'
Connecting To: 14:1[real:0], 129:0
client 146: 'WebMIDI output' [type=user,pid=14732]
0 'Output connection'
Connecting To: 14:2[real:0], 129:0
client 151: 'WebMIDI output' [type=user,pid=14732]
0 'Output connection'
Connecting To: 14:3[real:0], 129:0
Comment 113•3 years ago
|
||
This might be related to an issue I've spotted while working on bug 1748647. It will be interesting to know if the issue persists after I fix that issue sometimes next week.
Comment 114•3 years ago
|
||
I turned OFF dom.webmidi.gated
and it seems to show ports better on various web apps. Some additional observations:
-
I was surprised to see "WebMIDI input" in the output of
aconnect -o
, and "WebMIDI output" in the output ofaconnect -i
. I would have expected the opposite. -
My main testing experiment is to hook the output of https://blog.karimratib.me/demos/sheetplayer/ (via a Midi Through port) to the input of https://mmontag.github.io/dx7-synth-js/ (via the same port). In Chrome, this works reliably, but in FF 98.0a1 I only hear a short sound then silence.
Comment 115•3 years ago
|
||
(In reply to Karim Ratib from comment #114)
- My main testing experiment is to hook the output of https://blog.karimratib.me/demos/sheetplayer/ (via a Midi Through port) to the input of https://mmontag.github.io/dx7-synth-js/ (via the same port). In Chrome, this works reliably, but in FF 98.0a1 I only hear a short sound then silence.
I reproduced the issue on my machine and filed bug 1750763 to address it.
Comment 116•3 years ago
|
||
Release Note Request (optional, but appreciated)
[Why is this notable]: This feature had been requested by users for a long time
[Affects Firefox for Android]: No, this is only for desktop
[Suggested wording]: We added experimental support for the Web MIDI API allowing musicians to interact with their instruments and tools via the browser
[Links (documentation, blog post, etc)]: https://www.w3.org/TR/webmidi/
Comment 117•3 years ago
|
||
Docs work for this can be tracked here: https://github.com/mdn/content/issues/12792
I'm trying to confirm what has been implemented, in what release, and behind what preferences. I've been using browserstack and first testing for the existence of midi
string in about:config
. If present, I have then been trying https://blog.karimratib.me/demos/sheetplayer/
Testing against dom.webmidi.enabled
indicates it first appears in FF60.
- This bug implies that this is just the "front end": a backend implementation is needed for each platform to actually do anything. Is that correct?
- The linked bugs seem to indicate that backends were created for Linux, Windows and MacOS in FF97, and that Android does not yet have an implementation - is that correct?
- What about iOS?
- Are there any other platforms that still require backends?
- Is there something better than https://blog.karimratib.me/demos/sheetplayer/ for testing this API?
- Is the API specification complete? If not, which APIs are not implemented?
I did some testing, and it seems a little at odds with the above, raising some more questions:
2. Testing shows three midi preferences dom.webmidi.enabled
, midi.tested
, dom.webmidi.gated
.
- My assumption is that
dom.webmidi.enabled
is what turns on Midi. What do the others do? Note that onlydom.webmidi.gated
appears to be set true in any build by default. dom.webmidi.enabled
is false for all versions, including FF98 - my assumption is that this is not yet released in any build, including nightly. Correct?
- Testing shows that the preference
dom.webmidi.enabled
first appears on Windows in FF60 and the test sheetplayer outputs audio in FF60 on Browserstack- If the backend was provided in FF97, how can this test page play on browserstack in FF60?
- Similarly the test page does not play on FF97 on macOS on Browserstack. what might be going on?
Comment 118•3 years ago
|
||
I'll answer the questions regarding the test page, which I have written:
If the backend was provided in FF97, how can this test page play on browserstack in FF60?
Note that the test page can send its output to either "local synth", or to some MIDI port that it has detected. For the purposes of this present work, we are not interested in "local synth" output, because this mode does not exercise the MIDI implementation. Instead, we expect that the "output" dropdown would show additional entries, corresponding to the output MIDI ports that FF is detecting via this implementation. So what you saw on FF60 is probably the "local synth" option working as expected.
Similarly the test page does not play on FF97 on macOS on Browserstack. what might be going on?
I tested on BrowserStack with FF97 on both macOS Monterey and Windows 11. After enabling dom.webmidi.enabled
, I loaded the test page and saw the JS error: Web MIDI not enabled: SecurityError: The operation is insecure.
This does not happen on my local Linux FF98, so I'm not sure if this is a FF97 issue, a BrowserStack issue, or an operating system issue - needs more investigation. But again, note that we are not interested in the "local synth" output of the test page - we're looking for MIDI ports instead.
In general, though, I doubt that BrowserStack can be a suitable test environment for this functionality. Because MIDI backends are tied to the host environment, the functionality that we're expecting here depends on BrowserStack's VM setup, which adds layers of uncertainty to the testing process. For example, running latest Chrome on Windows 11 in BrowserStack does not throw the security error above, but still does not show any MIDI port in the dropdown - which makes testing MIDI functionality impossible.
Is there something better than https://blog.karimratib.me/demos/sheetplayer/ for testing this API?
Ideally, we would want a test site that exercises the full Web MIDI API. My test page does not cover all cases. If there's interest, I'd be happy to work on specifying the test cases and writing a more comprehensive test site.
Comment 119•3 years ago
|
||
(In reply to Hamish Willee from comment #117)
Testing against
dom.webmidi.enabled
indicates it first appears in FF60.
- This bug implies that this is just the "front end": a backend implementation is needed for each platform to actually do anything. Is that correct?
- The linked bugs seem to indicate that backends were created for Linux, Windows and MacOS in FF97, and that Android does not yet have an implementation - is that correct?
Yes. We were hoping to be able to ship it in 97 but had to turn it off at the last minute due to two significant issues that cropped up during last-minute testing.
- What about iOS?
I don't know the answer to that question but given that Firefox on iOS uses Apple's WebKit backend I suppose the answer is that it's not supported.
- Are there any other platforms that still require backends?
No.
- Is the API specification complete? If not, which APIs are not implemented?
We've implemented everything even though some events will never be delivered yet. Existing code should work. The implementation followed the public API draft but fell back on Chrome's existing behavior wherever it was different from the spec. We've been posting PRs to amend the spec so that it's consistent with what developers' have been using until now.
I did some testing, and it seems a little at odds with the above, raising some more questions:
2. Testing shows three midi preferencesdom.webmidi.enabled
,midi.tested
,dom.webmidi.gated
.
- My assumption is that
dom.webmidi.enabled
is what turns on Midi. What do the others do? Note that onlydom.webmidi.gated
appears to be set true in any build by default.
dom.webmidi.gated
causes the Web MIDI implementation to be gated by a new add-on based security policy. As you will see this will be the default.
dom.webmidi.enabled
is false for all versions, including FF98 - my assumption is that this is not yet released in any build, including nightly. Correct?
Yes. We're now trying to enable it in version 98.
- Testing shows that the preference
dom.webmidi.enabled
first appears on Windows in FF60 and the test sheetplayer outputs audio in FF60 on Browserstack
- If the backend was provided in FF97, how can this test page play on browserstack in FF60?
All versions prior to version 97 only contained a dummy implementation of Web MIDI so they can't really be tested against real code.
- Similarly the test page does not play on FF97 on macOS on Browserstack. what might be going on?
I'll have to look into that.
Comment 120•3 years ago
|
||
@Karim @Gabriele Thanks so much for taking the time to respond.
FYI only
I'm exploring right way to report this in browser compatibility data in https://github.com/mdn/browser-compat-data/pull/14874.
At the moment I am assuming that the versions prior to v97 should be ignored, except perhaps for a note that a dummy implementation exists.
@karim With respect to "I'd be happy to work on specifying the test cases and writing a more comprehensive test site."
That's a conversation to have with the dev team. My personal feeling is that for development teams, investing in wpt live tests would be a better use of time than any standalone site, because those are designed to test compatibility and is where people should be looking. At the moment there is nothing there except some sort of IDL test.
My colleague Ruth will be doing most of the rest of the work on this.
Updated•3 years ago
|
Comment 121•3 years ago
|
||
Here is a simple Web MIDI test page with basic device hotplug support. It show the state and properties of the connected devices. It appears that the 'manufacturer' field is missing:
https://versioduo.com/webmidi-test/
A screenshot of Firefox 97.0 and the source repositiory is here:
https://github.com/versioduo/webmidi-test
Updated•3 years ago
|
Comment 122•3 years ago
|
||
I cannot make it work at all. When the navigator.requestMIDIAccess
gets called I get this rejection all the time:
DOMException: The operation is insecure.
I tried (on three different environments - macOS 10.15.7, MacOS 12.2.1 and Fedora 33):
- FF v97
- FF Beta v98
Everywhere I enabled dom.webmidi.enabled
flag and tried all combinations of dom.webmidi.gated
and midi.testing
flags - no luck.
The test page shared earlier (https://versioduo.com/webmidi-test/) shows the same error when loading from FF.
What am I missing?
Comment 123•3 years ago
|
||
(In reply to szmydadam from comment #122)
I cannot make it work at all. When the
navigator.requestMIDIAccess
gets called I get this rejection all the time:DOMException: The operation is insecure.
I tried (on three different environments - macOS 10.15.7, MacOS 12.2.1 and Fedora 33):
- FF v97
- FF Beta v98
Everywhere I enabled
dom.webmidi.enabled
flag and tried all combinations ofdom.webmidi.gated
andmidi.testing
flags - no luck.The test page shared earlier (https://versioduo.com/webmidi-test/) shows the same error when loading from FF.
What am I missing?
Can you try with a nightly version that includes the fix for bug 1757153?
Comment 124•3 years ago
|
||
(In reply to Gabriele Svelto [:gsvelto] from comment #123)
(In reply to szmydadam from comment #122)
I cannot make it work at all. When the
navigator.requestMIDIAccess
gets called I get this rejection all the time:DOMException: The operation is insecure.
I tried (on three different environments - macOS 10.15.7, MacOS 12.2.1 and Fedora 33):
- FF v97
- FF Beta v98
Everywhere I enabled
dom.webmidi.enabled
flag and tried all combinations ofdom.webmidi.gated
andmidi.testing
flags - no luck.The test page shared earlier (https://versioduo.com/webmidi-test/) shows the same error when loading from FF.
What am I missing?
Can you try with a nightly version that includes the fix for bug 1757153?
Unfortunately, it's still the same error (This operation is insecure). Tried v99.0a1 on macOS 10.15.7, MacOS 12.2.1 and Fedora 33.
Comment 125•3 years ago
|
||
(In reply to szmydadam from comment #122)
I cannot make it work at all. When the
navigator.requestMIDIAccess
gets called I get this rejection all the time:DOMException: The operation is insecure.
Does it work if you manually grant the "Access MIDI devices *' permissions in 'Page Info'/Permissions?
It appears FF will never ask the user for it and just refuse the request right away (if it wasn't granted before). I just noticed that it stopped working after clearing all site settings.
Comment 126•3 years ago
|
||
I think that is the case! After I manually allowed the permissions as @Kai Sievers suggested, things are working (in v98 and v99).
Updated•3 years ago
|
Comment 127•3 years ago
|
||
Even with the manual permissions allowed I am seeing a different list of MIDI controllers that I am on Chrome. There are no outgoing messages sent or incoming messages received.
Comment 129•3 years ago
|
||
(In reply to theran.brigowatz from comment #127)
Even with the manual permissions allowed I am seeing a different list of MIDI controllers that I am on Chrome. There are no outgoing messages sent or incoming messages received.
I tried FF98 on MacOS 12.3, Windows 11, Fedora 35. All need manual assignment of permissions.
MacOS:
- The currently connected devices work after FF startup
- Reloading the working web page will show the devices, but appear to render all of them non-functional
- No hotplug support, device lists will not be updated when devices are connected/disconnected
Windows:
- The currently connected devices work after FF startup
- Reloading the web page works
- No hotplug support, device lists will not be updated when devices are connected/disconnected
Linux:
- No devices show up
Comment 130•3 years ago
|
||
(In reply to Kay Sievers from comment #129)
MacOS:
- Reloading the working web page will show the devices, but appear to render all of them non-functional
This is likely bug 1748696.
Linux:
- No devices show up
This is odd, can you check if you have the /dev/snd/seq
device and what its permissions are? Can you open a separate bug and we'll investigate it.
Comment 131•3 years ago
|
||
(In reply to Gabriele Svelto [:gsvelto] from comment #130)
This is odd, can you check if you have the
/dev/snd/seq
device and what its permissions are?
Yes, this should be fine on all more recent systems, filesystem AccessControlLists for logged in users grant access to all sound devices; getfacl shows them.
Oh, just realized that I tested with http instead of https on Linux. Instead of refusing the WebMIDI access, just the device lists seem empty in that case. Using http fails with a security error on MacOS.
Comment 132•3 years ago
|
||
(In reply to Kay Sievers from comment #129)
(In reply to theran.brigowatz from comment #127)
Even with the manual permissions allowed I am seeing a different list of MIDI controllers that I am on Chrome. There are no outgoing messages sent or incoming messages received.
I tried FF98 on MacOS 12.3, Windows 11, Fedora 35. All need manual assignment of permissions.
MacOS:
- The currently connected devices work after FF startup
- Reloading the working web page will show the devices, but appear to render all of them non-functional
- No hotplug support, device lists will not be updated when devices are connected/disconnected
Windows:
- The currently connected devices work after FF startup
- Reloading the web page works
- No hotplug support, device lists will not be updated when devices are connected/disconnected
Linux:
- No devices show up
I was able to get rid of this strange device naming by setting midi.testing
to false
.
Updated•3 years ago
|
Comment 133•3 years ago
|
||
Status for enabling is in bug 1752906. Support is in the code, behind a pref. We didn't flip the pref yet because we want to do one more round of fixes.
Updated•2 years ago
|
Comment 134•2 years ago
|
||
Apologies if this is in the wrong spot. It seems I need a site permission add-on to use Webmidi on Firefox and the links I’ve found to generate one return 404. Could anyone point me in the right direction?
Comment 135•2 years ago
|
||
What is the correct link to request site permission add-on (for Webmidi)?
The link on the MDN docs is https://extensionworkshop.com/documentation/publish/site-permission-add-on/ , and that gives you a 404 error.
The associated issue is MDN/content#21832 and the page is Web_MIDI_API. This is the same question as the comment above ^^^.
Comment 136•2 years ago
|
||
Changing NI to gsvelto, as I don't know almost anything about WebMIDI
Comment 137•2 years ago
|
||
(In reply to Hamish Willee from comment #135)
What is the correct link to request site permission add-on (for Webmidi)?
The link on the MDN docs is https://extensionworkshop.com/documentation/publish/site-permission-add-on/ , and that gives you a 404 error.The associated issue is MDN/content#21832 and the page is Web_MIDI_API. This is the same question as the comment above ^^^.
The add-on is not required anymore, Firefox generates one on-the-fly, as web page authors you shouldn't have to do anything else. The MDN page is outdated, I'll make sure it gets updated. In the meantime WebMIDI in the latest nightly builds should work out-of-the-box on your pages, it will just prompt users to install the auto-generated add-on once, and then will work transparently.
Comment 138•2 years ago
|
||
Super happy to test this in the latest Beta. I can confirm that it works with Novation Components - up to a point. I have two questions:
- Is the wording during the addon installation still be tinkered with or are these considered to be final? They are potentially very scary without giving particularly good explanations to users what the app will actually do until relatively late in the process.
- It seems to me that hotplug support is still not working right now. I couldn't find (to be fair I've only skimmed this bug superficially) an issue specifically for this, so if someone could point it out to me so that I can track it and help with testing, that would be great.
Comment 139•2 years ago
|
||
(In reply to Jan Krutisch from comment #138)
Super happy to test this in the latest Beta. I can confirm that it works with Novation Components - up to a point.
Thanks!
- Is the wording during the addon installation still be tinkered with or are these considered to be final? They are potentially very scary without giving particularly good explanations to users what the app will actually do until relatively late in the process.
We recently tweaked it, so the current panel should begin with: "This site is requesting access to your devices. Device access can be enabled by installing an add-on." If you tested on an earlier beta you might have seen some more generic text.
It's difficult to articulate the threat model (malicious payload to non-hardened device, resulting in compromise and potential escalation to the host machine) in user-understandable terms, but we did our best with "Make sure you trust the site" and a bit more explanation in the "Learn More" link.
Happy to hear suggestions for improvements to the language, feel free to shoot me an email.
- It seems to me that hotplug support is still not working right now. I couldn't find (to be fair I've only skimmed this bug superficially) an issue specifically for this, so if someone could point it out to me so that I can track it and help with testing, that would be great.
Gabriele, can you link to the relevant bug?
Updated•2 years ago
|
Comment 140•2 years ago
|
||
(In reply to Bobby Holley (:bholley) from comment #139)
(In reply to Jan Krutisch from comment #138)
It's difficult to articulate the threat model (malicious payload to non-hardened device, resulting in compromise and potential escalation to the host machine) in user-understandable terms, but we did our best with "Make sure you trust the site" and a bit more explanation in the "Learn More" link.
Happy to hear suggestions for improvements to the language, feel free to shoot me an email.
Why is there a two step process to activate WebMIDI at all? First there is the intimidating warning without even mentioning WebMIDI. And only then follows the real question "This add-on gives example.com access to your MIDI devices" followed by another warning. The second warning is well unterstable in the context of allowing MIDI.
I'd suggest to get fully rid of the first step. From a user perspective it serves no purpose besides being intimidating.
Comment 141•2 years ago
|
||
It's really exciting to see WebMIDI in the 108 release! Really amazing work!
With the 108 release (and the nightly 110) I was initially not getting the site permission add-on prompt. This was working for me in nightly 109, but now navigator.requestMIDIAccess is pending for about a second, then throws an exception. No dialog asking for approval to install the add-on appears.
This seems to fix it:
- toggle midi.testing on, close browser, open browser. Now I get the site permission add-on dialog and can enumerate the fake devices
- toggle midi.testing off, close browser, open browser. The fix sticks. The site permission add-on dialog still works as it did in 109 and I can enumerate real devices
Initially I thought this was some settings problem I created in testing previous versions, but I tried it on a clean Windows 11 install and I get the same problem and the workaround fixes it. I also tried this out on Ubuntu 22 (official Firefox snap) and MacOS. Both show the same behavior.
Side note: as noted in comment 129, in MacOS you have to completely close Firefox to enumerate new devices. On Windows 11 and Ubuntu a simple reload sees the new interfaces.
Comment 142•2 years ago
|
||
(In reply to maccailein.mor from comment #141)
It's really exciting to see WebMIDI in the 108 release! Really amazing work!
With the 108 release (and the nightly 110) I was initially not getting the site permission add-on prompt. This was working for me in nightly 109, but now navigator.requestMIDIAccess is pending for about a second, then throws an exception. No dialog asking for approval to install the add-on appears.
Thanks for the detailed report. Can you file a new bug and we'll see if we can get to the bottom of it?
Comment 143•2 years ago
|
||
(In reply to Bobby Holley (:bholley) from comment #142)
(In reply to maccailein.mor from comment #141)
It's really exciting to see WebMIDI in the 108 release! Really amazing work!
With the 108 release (and the nightly 110) I was initially not getting the site permission add-on prompt. This was working for me in nightly 109, but now navigator.requestMIDIAccess is pending for about a second, then throws an exception. No dialog asking for approval to install the add-on appears.
Thanks for the detailed report. Can you file a new bug and we'll see if we can get to the bottom of it?
Ok done. Thanks.
https://bugzilla.mozilla.org/show_bug.cgi?id=1805582
Comment 144•2 years ago
|
||
I want to echo the concern over the prompts displayed to the user when installing the add-on in 108. The first prompt sets the developer up as worthy of suspicion without giving them a chance to display the requested resource. A user can only properly evaluate the threat model after getting to the second prompt, and they may leave before then out of fear, uncertainty, or doubt.
The first prompt lists these potential consequences:
This add-on could be used to steal your data or attack your computer.
This statement is a bit heavy-handed and may scare users away from indie web projects that do not have name recognition. I get that it will also scare them away from malicious sites, but perhaps there is a more balanced approach.
One alternative would be to make explicit to the user what is being requested and why it is more dangerous than their other interactions with the browser.
Here is my take on how this could be written as a single prompt:
This site is requesting access to your MIDI devices. Device access can be enabled by installing an add-on.
This access can be dangerous because it allows the site to run software and access resources outside of the browser. Only continue if you trust this site.
[Learn more about installing add-ons safely](Link to more info)
{Don't Allow/Never Allow} {Install add-on}
Hopefully, that is accurate technically. I think it would be enough to inform the user that they are taking a risk that requires additional trust. The "Learn More" link could get into more detail about the potential consequences.
I also had a question about the add-on scope. Does the add-on only grant access to top-level domains or is it scoped by subdomain? If the former is true, it could be an issue because services such as Netlify and Vercel publish sites using subdomains on a TLD they control.
A user could install the add-on for one Netlify app and grant permission to all apps on Netlify. Similarly, one malicious app could ruin everything for innocent apps published on one of these platforms.
Comment 145•2 years ago
|
||
(In reply to Brian G from comment #144)
One alternative would be to make explicit to the user what is being requested and why it is more dangerous than their other interactions with the browser.
Here is my take on how this could be written as a single prompt:
Thanks for the thoughtful comment. Would you mind filing a separate bug with your proposed language changes and we can discuss the trade-offs there?
I also had a question about the add-on scope. Does the add-on only grant access to top-level domains or is it scoped by subdomain? If the former is true, it could be an issue because services such as Netlify and Vercel publish sites using subdomains on a TLD they control.
A user could install the add-on for one Netlify app and grant permission to all apps on Netlify. Similarly, one malicious app could ruin everything for innocent apps published on one of these platforms.
It's scoped to subdomain. So for example, installing the add-on for https://webmidi-examples.glitch.me will not grant permissions on https://webmidi-examples-2.glitch.me , and vice-versa (those sites are live so you can try it out).
Comment 146•2 years ago
|
||
(In reply to Bobby Holley (:bholley) from comment #145)
Thanks for the thoughtful comment. Would you mind filing a separate bug with your proposed language changes and we can discuss the trade-offs there?
Yep, you bet! Filed it here: https://bugzilla.mozilla.org/show_bug.cgi?id=1808431
It's scoped to subdomain. So for example, installing the add-on for https://webmidi-examples.glitch.me will not grant permissions on https://webmidi-examples-2.glitch.me , and vice-versa (those sites are live so you can try it out).
Ah great, glad to hear it works that way.
Comment 147•2 years ago
|
||
It's really exciting that this is in Firefox now, thank you to everybody who made it happen.
Today I visited a site with WebMIDI enabled and a scary looking popup came up that didn't even mention anything about WebMIDI. I'll leave a report over on the other bug addressing the wording but I just wanted to say thanks for the feature itself, super cool.
Comment 148•2 years ago
|
||
Thank you all. I'm just leaving a note for people who arrive here via web search.
On Ubuntu GNU/Linux. In case your midi devices are not detected/listed, in my case it was because I was using a snap version. The MIDI functionality only worked the with the native deb version of Firefox. I'm not sure why.
Comment 149•2 years ago
|
||
The MIDI functionality only worked the with the native deb version of Firefox. I'm not sure why.
Can you file a bug about this? Can be here (Firefox Build System: Third Party Packaging) or with Ubuntu (this is probably on their end?). I think the Ubuntu Snap config will have to be changed to poke a hole for the MIDI devices in the Snap sandbox.
Updated•1 years ago
|
Description
•