Comments (10)
I found a way to recreate the situation:
- install -> https://hautetechnique.com/midi/midiview
- open MidiView software
- go to -> https://jazz-soft.net/demo/SelectMidi.html
- select midi out device = MidiView,
midi in device = HTML keyboard - play random for few seconds and monitor if it is connected
- close MidiView window (this will close "MidiView" ports)
- see that the port is still connected
- play random notes again (u may see BSOD... else continue)
- after that, open MidiView software. (it will open the ports again)
- see that in the browser, the "MidiView" port is still connected but pressing the keyboard keys doesn't send midi to MidiView software
- so, try to reconnect the port by selecting "Midi Out" dropdown and selecting "MidiView" port again.
- BSOD happens
from jzz.
in the app that i am trying to make, i am facing this problem again and again. i faced BSOD around 10 times (never faced BSOD in this laptop before, and currently BSOD happening only if trying to send midi message to closed Midi Port).
i also tried to see if the midi send code returns error after MidiView is closed.
try {
outPort
.note(0, 'C5', 127, 1000)
.or(() => alert('cant send bro')) // <---- here
.and(() => {
alert('sent!');
});
} catch (TypeError) {
alert('Midi device not ready');
}
but it showed me "sent!", even after MidiView is closed. then after 1-2 seconds, i faced BSOD.
I need to monitor the device changes. onChange() method can see the "MidiView" port when i open the MidiView software, but it is not triggering when i close MidiView software (not working for "port removed/disconnected")
please help...
from jzz.
sorry to bother you with lots of comments. i am just trying to give you contexts so it will be easier to fix,
i think this is related:
Node.js exits with a "segmentation fault: 11"-Error when closing a midi-application whose (virtual) midi-ports where already recognized by JZZ's watcher.
This happens when JZZ.js runs within my node application, then I open e.g. the DLS-Midi Synth App on Mac and the port 'DLS-MIDI-Synth Virtual In' shows up in JZZ's list of available ports. Now, when I close the DLS-Midi Synth App, my node application exits with the segmentation fault.
i think this problem is similar. In Node.js, it is showing "segmentation fault", but in my case (working in MS Edge) it is resulting as BSOD...?
from jzz.
Can you try doing the same thing with a real MIDI instrument, i.e. plugging and unplugging it?
Will it also result in BSOD or is it MidiView specific?
from jzz.
🤔 didn't try that one. as i don't have any real Midi instrument, i will try to somehow use my android phone as as a midi port.
lets see if the problem still happens...
from jzz.
i just did that. used android phone as midi receiver.
used "FluidSynth MIDI" app to react to the midi signal received.
it detects when device connected/disconnected. refreshes the selection list when device is added/removed.
nothing happens when trying to send midi signal to a closed port.
i'm sorry to waste your time. it is not the problem of JZZ.js
your code is clean and amazing <3
from jzz.
Thanks for flattering :)
You may want to contact the MidiView developers to inform them about the problem.
For testing with virtual MIDI devices you can try
https://github.com/jazz-soft/midi-test (Mac and Linux only) or
https://github.com/jazz-soft/web-midi-test (may be a little trickier to setup your test)
from jzz.
thanks! i will inform the MidiView devs cz BSOD is dangerous.
although out of topic, i want to ask a question:
how to create a midi port?
currently i am using LoopMidi to create virtual midi ports. but, is there a way to create midi ports with browser so that my DAW can see the port directly without using LoopMidi?
it will be very useful if my app itself shows up as a midi device in the DAW and i can just listen to it from the DAW, as if i connected a real midi device into my laptop...
i'm on windows...
from jzz.
Creating MIDI port is difficult in Windows.
On Mac and Linux - you can see the source code in the midi-test I mentioned before (or you can just use it).
from jzz.
bad luck for me then... anyway, thank u for your time. i will create new issue when i face new problems. stay well 🥰
from jzz.
Related Issues (20)
- Sending synchronized midi clock to midi port HOT 2
- Prevent hanging notes when switching ports in the middle of playback HOT 2
- Using web worker to keep playing when window is not focused HOT 4
- Fails to detect nodeJS environment in the electron main process when using TypeScript and Webpack HOT 7
- JZZ().info().outputs returns empty list on macOS 13 Ventura ? HOT 13
- Query HOT 3
- Using plugins with ES6 import syntax? HOT 4
- DOM nodes keeps increasing HOT 3
- How to uninstall Jazz-Plugin? HOT 2
- Webview ios? HOT 5
- Trying to connect to a MIDI keyboard HOT 25
- Nuxt 3 (with Vite) issue on building static site: Cannot call a namespace ('JZZ')
- Broadcast Midi In/Out HOT 5
- No SysEx on one computer, works on others HOT 8
- To add Bluetooth MIDI support. HOT 2
- add React support HOT 3
- Jzz not working when packaged in Electron HOT 12
- [Demo Request] Sample Based Virtual Instrument HOT 1
- [Feature Request] note number to key: 60 => C4 HOT 2
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 jzz.