Wohlstand / OPL3BankEditor

A small cross-platform editor of the OPL3 FM banks of different formats (Downloads in README below)
GNU General Public License v3.0
141 stars 12 forks source link

libstdc++-6 Crash on Windows 10 2004 when writing to Registry #163

Closed sneakernets closed 10 months ago

sneakernets commented 4 years ago

Here's the report from windows Log Viewer:

 <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
 <System>
  <Provider Name="Application Error" /> 
  <EventID Qualifiers="0">1000</EventID> 
  <Version>0</Version> 
  <Level>2</Level> 
  <Task>100</Task> 
  <Opcode>0</Opcode> 
  <Keywords>0x80000000000000</Keywords> 
  <TimeCreated SystemTime="2020-07-23T04:48:46.0982648Z" /> 
  <EventRecordID>8994</EventRecordID> 
  <Correlation /> 
  <Execution ProcessID="0" ThreadID="0" /> 
  <Channel>Application</Channel> 
  <Computer>DESKTOP</Computer> 
  <Security /> 
  </System>
  <EventData>
  <Data>opl3_bank_editor.exe</Data> 
  <Data>0.0.0.0</Data> 
  <Data>5ed4be0e</Data> 
  <Data>libstdc++-6.dll</Data> 
  <Data>0.0.0.0</Data> 
  <Data>00000000</Data> 
  <Data>40000015</Data> 
  <Data>0002085d</Data> 
  <Data>40e4</Data> 
  <Data>01d660ac84915abc</Data> 
  <Data>C:\Users\Owner\Documents\opl3-bank-editor-v1.5.1-win32\opl3_bank_editor.exe</Data> 
  <Data>C:\Users\Owner\Documents\opl3-bank-editor-v1.5.1-win32\libstdc++-6.dll</Data> 
  <Data>784dc112-1756-4f6d-8394-b00a02a1ef91</Data> 
  <Data /> 
  <Data /> 
  </EventData>
  </Event>

Deleting the registry keys fixed the issue. I will update this if I run into the issue again.

Wohlstand commented 4 years ago

Looks really odd :thinking: No wonder from such of glitches are appear on Windows oftenly with each update.

sneakernets commented 4 years ago

I think I found out the problem, it's when I'm changing the output device to something that can be removed (like a Bluetooth device for example)

Wohlstand commented 4 years ago

I think I found out the problem, it's when I'm changing the output device to something that can be removed (like a Bluetooth device for example)

I see, then, it's probably a case of RTAudio that won't be dropped into another device automatically. With a case of PulseAudio on Linux that happens easily: the current audio output gets to be dropped into another output device if the current gets being suddenly removed :thinking:

Wohlstand commented 3 years ago

@sneakernets , try 64bit build of OPL3-BE I made recently, it should work.

sneakernets commented 3 years ago

Alright, I will check this this weekend. thank you!

sneakernets commented 3 years ago

This has been fixed as far as I can tell. sorry for the long delay on this!

sneakernets commented 3 years ago

I may have spoken too soon. Same issue is happening again with Bluetooth headphones. Here are the current Reg values that are causing the crash:

image

sneakernets commented 3 years ago

I mean, I can "fix" this by nuking the registry every time but man that's a bummer. I wonder if this is a QT bug?

Wohlstand commented 3 years ago

I guess it's a crash because the RtAudio library fails to use a non-existing audio device. I should add the check for audio device availability until to start its usage.

Wohlstand commented 3 years ago

The question: does that happen during the workflow? Or just in a moment when you try to restart the program after you unplugged the device?

sneakernets commented 3 years ago

it's happening when I try to start to program after I unplugged.

Wohlstand commented 3 years ago

Okay, the fact a thing does work on Windows 8.1 fine when I unplug my USB headphones and do plug them back, and the application does still work when I unplug my USB-headphones while the program working. I'll try to bypass the device through my USB filter into my Windows 10 VM and see the result...

jpcima commented 3 years ago

It's a high change that the crash is an exception thrown by RTAudio. The best idea is to put try-catch around audioOut->openStream and extract the message.

Wohlstand commented 10 months ago

Closed because of no response for a long time.