bitgapp / eqMac

macOS System-wide Audio Equalizer & Volume Mixer 🎧
https://eqmac.app
Apache License 2.0
5.68k stars 334 forks source link

Bug: Changing from MacBook Pro Speakers to Powerbeats Pro causes app to not respond #352

Closed cameroncipriano closed 1 year ago

cameroncipriano commented 4 years ago

Disclaimer: Please go through existing issues to avoid creating duplicates. If you found a similar issue please post a comment there. If you are uncertain your issue is related to others then create the issue. Obvious ignorance of this rule might get you blocked from posting new issues. Please tick the box below to show that you have followed the guideline.

Describe the bug When running eqMac, it does not detect the Powerbeats Pro in the dropdown menu when the powerbeats are not connected at first. Once I switch the audio source to the Powerbeats from MacOS, eqMac hangs and doesn't respond anymore.

Steps to Reproduce

  1. Connect Powerbeats to another device
  2. Play something out of MacBook Pro Speakers
  3. Switch audio source in MacOS to Powerbeats Pro.
  4. App hangs

Expected behaviour App should not become unresponsive, allowing me to switch the audio source to eqMac and select the powerbeats pro as the output.

Setup information:

arunrdd commented 4 years ago

There is also a crash every time Airpods Pro are connected. Something to do with audio source switching? Must be related.

alexandr- commented 4 years ago

I am also expierencing this issue or something related when the mac awakens from sleep-mode and the external soundcard isnt fully initialized

myleskeller commented 4 years ago

i experience this as well once i have paired with my Boltune bluetooth earbuds (essentially an AirPod/Raycon ripoff) on my 2015 MacBook Pro running Catalina. I have to force quit the app to regain responsiveness.

alexandr- commented 4 years ago

hey there, i hope these logs can help to find the issue.

as i unplugged my usb soundcard:

eqMac (Source/Audio/Engine.swift:173) Input Engine started
eqMac (Source/Audio/Outputs/Output.swift:140) Creating Output for Device: AIR HUB
Error: 560947818 ->  /Users/romanskisils/Programming/Bitgapp/eqmac/native/app/Source/Extensions/AudioDevice.swift:127

eqMac (Source/Extensions/AudioDevice.swift:128) 560947818
ERROR: SentryCrashMachineContext.c (232): void sentrycrashmc_resumeEnvironment(): thread_resume (00019807): (ipc/send) invalid destination port

i restarted eqmac and selected internal speakers:

eqMac (Source/Audio/Outputs/Output.swift:189) Output Engine started
eqMac (Source/Audio/Outputs/Output.swift:57) Last Input Time:  11264
eqMac (Source/Audio/Outputs/Output.swift:58) First Output Time:  0
eqMac (Source/Audio/Outputs/Output.swift:59) Delta:  11264
eqMac (Source/Audio/Outputs/Output.swift:62) Initial Offset:  1210
eqMac (Source/Audio/Outputs/Output.swift:68) Adjusted Offset:  -10054
eqMac (Source/UI/UI.swift:314) Remote UI cached successfuly
eqMac (Source/Audio/Effects/Equalizers/Basic/BasicEqualizerDataBus.swift:27) eqMac.BasicEqualizerPreset(id: "manual", name: "Manual", isDefault: false, peakLimiter: false, gains: eqMac.BasicEqualizerPresetGains(bass: 0.0, mid: -2.4211278342379643, treble: -6.438130362687954))
eqMac (Source/Audio/Effects/Equalizers/Basic/BasicEqualizerDataBus.swift:27) eqMac.BasicEqualizerPreset(id: "manual", name: "Manual", isDefault: false, peakLimiter: false, gains: eqMac.BasicEqualizerPresetGains(bass: 0.0, mid: -2.4211278342379643, treble: -6.438130362687954))
eqMac (Source/Application.swift:241) outputChanged:  Built-in Output (214)  starting PlayThrough
eqMac (Source/Application.swift:339) Driver new Latency: 399
eqMac (Source/Application.swift:340) Driver new Safety Offset: 93
eqMac (Source/Application.swift:341) Driver new Sample Rate: Optional(48000.0000060774)
ERROR: SentryCrashMachineContext.c (232): void sentrycrashmc_resumeEnvironment(): thread_resume (00019e07): (ipc/send) invalid destination port

next start internal speakers were preselected and eqmac continued to work

and maybe connected or a different issue but here are some additional debug messages starting from a sudden crash:

eqMac (Source/Audio/Engine.swift:173) Input Engine started
eqMac (Source/Audio/Outputs/Output.swift:140) Creating Output for Device: AIR HUB
eqMac (Source/Audio/Outputs/Output.swift:157) Varispeed Rate: 1.0
eqMac (Source/Audio/Outputs/Output.swift:186) Starting Output Engine
eqMac (Source/Audio/Outputs/Output.swift:187)
________ GraphDescription ________
AVAudioEngineGraph 0x7ff934a08da0: initialized = 1, running = 0, number of nodes = 4

     ******** output chain ********

     node 0x7ff9337b7fe0 {'auou' 'ahal' 'appl'}, 'I'
         inputs = 1
             (bus0, en1) <- (bus0) 0x7ff9334edb70, {'aumx' 'mcmx' 'appl'}, [ 2 ch,  48000 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]

     node 0x7ff9334edb70 {'aumx' 'mcmx' 'appl'}, 'I'
         inputs = 1
             (bus0, en1) <- (bus0) 0x7ff934a09eb0, {'aufc' 'vari' 'appl'}, [ 2 ch,  48000 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
         outputs = 1
             (bus0, en1) -> (bus0) 0x7ff9337b7fe0, {'auou' 'ahal' 'appl'}, [ 2 ch,  48000 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]

     node 0x7ff934a09eb0 {'aufc' 'vari' 'appl'}, 'I'
         inputs = 1
             (bus0, en1) <- (bus0) 0x7ff934a08f50, {'augn' 'sspl' 'appl'}, [ 2 ch,  48000 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
         outputs = 1
             (bus0, en1) -> (bus0) 0x7ff9334edb70, {'aumx' 'mcmx' 'appl'}, [ 2 ch,  48000 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]

     node 0x7ff934a08f50 {'augn' 'sspl' 'appl'}, 'I'
         outputs = 1
             (bus0, en1) -> (bus0) 0x7ff934a09eb0, {'aufc' 'vari' 'appl'}, [ 2 ch,  48000 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
______________________________________

eqMac (Source/Audio/Outputs/Output.swift:189) Output Engine started
eqMac (Source/Audio/Outputs/Output.swift:57) Last Input Time:  14336
eqMac (Source/Audio/Outputs/Output.swift:58) First Output Time:  0
eqMac (Source/Audio/Outputs/Output.swift:59) Delta:  14336
eqMac (Source/Audio/Outputs/Output.swift:62) Initial Offset:  1166
eqMac (Source/Audio/Outputs/Output.swift:68) Adjusted Offset:  -13170
ERROR: SentryCrashMachineContext.c (232): void sentrycrashmc_resumeEnvironment(): thread_resume (ffffffff): (ipc/send) invalid destination port

started again and changed to external soundcard, crashed immediately:

eqMac (Source/Audio/Outputs/Output.swift:189) Output Engine started
eqMac (Source/Audio/Outputs/Output.swift:57) Last Input Time:  15360
eqMac (Source/Audio/Outputs/Output.swift:58) First Output Time:  0
eqMac (Source/Audio/Outputs/Output.swift:59) Delta:  15360
eqMac (Source/Audio/Outputs/Output.swift:62) Initial Offset:  1210
eqMac (Source/Audio/Outputs/Output.swift:68) Adjusted Offset:  -14150
eqMac (Source/UI/UI.swift:314) Remote UI cached successfuly
eqMac (Source/Audio/Effects/Equalizers/Basic/BasicEqualizerDataBus.swift:27) eqMac.BasicEqualizerPreset(id: "manual", name: "Manual", isDefault: false, peakLimiter: false, gains: eqMac.BasicEqualizerPresetGains(bass: 0.0, mid: -2.4211278342379643, treble: -6.438130362687954))
eqMac (Source/Audio/Effects/Equalizers/Basic/BasicEqualizerDataBus.swift:27) eqMac.BasicEqualizerPreset(id: "manual", name: "Manual", isDefault: false, peakLimiter: false, gains: eqMac.BasicEqualizerPresetGains(bass: 0.0, mid: -2.4211278342379643, treble: -6.438130362687954))
eqMac (Source/Application.swift:241) outputChanged:  AIR HUB (238)  starting PlayThrough
eqMac (Source/Application.swift:339) Driver new Latency: 48
eqMac (Source/Application.swift:340) Driver new Safety Offset: 93
eqMac (Source/Application.swift:341) Driver new Sample Rate: Optional(48000.0)
ERROR: SentryCrashMachineContext.c (232): void sentrycrashmc_resumeEnvironment(): thread_resume (ffffffff): (ipc/send) invalid destination port

next crash happened a few minutes later..

eqMac (Source/Audio/Outputs/Output.swift:189) Output Engine started
eqMac (Source/Audio/Outputs/Output.swift:57) Last Input Time:  15360
eqMac (Source/Audio/Outputs/Output.swift:58) First Output Time:  0
eqMac (Source/Audio/Outputs/Output.swift:59) Delta:  15360
eqMac (Source/Audio/Outputs/Output.swift:62) Initial Offset:  1166
eqMac (Source/Audio/Outputs/Output.swift:68) Adjusted Offset:  -14194
eqMac(13475,0x70000088c000) malloc: *** error for object 0x2: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Tylermarques commented 3 years ago

Experiencing a similar issue. eqMac quits unexpectedly when disconnecting my AirPod Pros. This occurs on every disconnect of the AirPods. Attached is the crashlog Crash_report_eqMac.txt

nodeful commented 3 years ago

I am triaging & trying to fix all open issues before release of eqMac v1.0.0. Excuse the wait. Guys could you send me a screenshot of the device you're trying to use selected in Audio MIDI Setup.app? Like so: image I'm interested to see how many channels, sources and what sampling rate your devices are set to. Thanks

Tylermarques commented 3 years ago

@nodeful

image

I can't seem to find a way to easily export my whole MIDI setup, if you know how let me know and I will do my best to assist. I just confirmed that the bug still occurs for me when disconnecting either pair of my BT headphones.

alexandr- commented 3 years ago

Same here.

latest crash by shutting off my bluetooth headset:

...
eqMac (Source/Application.swift:337) Current device dies so switching to built it
eqMac (Source/Application.swift:203) listChanged eqMac.ListChangedDevices(added: [], removed: [Bose QC35 II a (466), Bose QC35 II a (470)])
 '/Applications/eqMac.app/Conte...' terminated by signal SIGILL (Illegal instruction)
nodeful commented 3 years ago

Thanks for being patient with me. I have just released v1.0.0. You can download it here: https://github.com/bitgapp/eqMac/releases/tag/v1.0.0 Or from the website: https://eqmac.app Could you please let me know if this issue is still present. Thanks again.

Roman

Tylermarques commented 3 years ago

No worries! Thanks for providing the software, really apprecaite your efforts on making this :)

I'll download it and try it out soon!

alexandr- commented 3 years ago

thank you for work! i think the bug is gone now.

maybe related - maybe not (please tell me if i should open a new issue) - when i send my mac to sleep eq crashes:

Received memory pressure event 4 vm pressure 0
2021-07-04 13:37:42.5100 eqMac (Source/Application.swift:202) listChanged eqMac.ListChangedDevices(added: [], removed: [DisplayPort (286)])
Received memory pressure event 4 vm pressure 0
2021-07-04 14:02:28.803 eqMac[20454:2938463] Reachability Flag Status: XR ------- networkStatusForFlags
2021-07-04 14:02:33.894 eqMac[20454:2938463] Reachability Flag Status: XR ------- networkStatusForFlags

i was able to reproduce it reliably with this output:

2021-07-04 16:54:51.580 eqMac[48541:3161211] Reachability Flag Status: XR ------- networkStatusForFlags
ERROR: SentryCrashReport.c (1520): void sentrycrashreport_writeRecrashReport(const SentryCrash_MonitorContext *const, const char *const): Could not rename  to : No such file or directory
ERROR: SentryCrashFileUtils.c (414): _Bool sentrycrashfu_openBufferedWriter(SentryCrashBufferedWriter *, const char *const, char *, int): Could not open crash report file : No such file or directory
'/Applications/eqMac.app/Conte...' terminated by signal SIGSEGV (Address boundary error)

later:

2021-07-04 17:00:41.2930 eqMac (Source/Audio/Outputs/Output.swift:173) Sample Offset:  14848
ERROR: SentryCrashCPU.c (58): _Bool sentrycrashcpu_i_fillState(const thread_t, const thread_state_t, const thread_state_flavor_t, const mach_msg_type_number_t): thread_get_state: (ipc/send) invalid destination port
ERROR: SentryCrashCPU.c (58): _Bool sentrycrashcpu_i_fillState(const thread_t, const thread_state_t, const thread_state_flavor_t, const mach_msg_type_number_t): thread_get_state: (ipc/send) invalid destination port
ERROR: SentryCrashMachineContext.c (230): void sentrycrashmc_resumeEnvironment(): thread_resume (ffffffff): (ipc/send) invalid destination port
'/Applications/eqMac.app/Conte...' terminated by signal SIGILL (Illegal instruction)
alexandr- commented 3 years ago

issue still persists with newest update (App: 1.1.0, Driver: 1.2.3):

new device

2021-07-14 21:52:49.2370 eqMac (Source/Application.swift:208) listChanged eqMac.ListChangedDevices(added: [], removed: [Bose QC35 II a (260), Bose QC35 II a (264)])
ERROR: SentryCrashCPU.c (58): _Bool sentrycrashcpu_i_fillState(const thread_t, const thread_state_t, const thread_state_flavor_t, const mach_msg_type_number_t): thread_get_state: (ipc/send) invalid destination port
ERROR: SentryCrashCPU.c (58): _Bool sentrycrashcpu_i_fillState(const thread_t, const thread_state_t, const thread_state_flavor_t, const mach_msg_type_number_t): thread_get_state: (ipc/send) invalid destination port
ERROR: SentryCrashMachineContext.c (230): void sentrycrashmc_resumeEnvironment(): thread_resume (00015407): (ipc/send) invalid destination port

device disconnected

2021-07-14 21:52:49.2370 eqMac (Source/Application.swift:208) listChanged eqMac.ListChangedDevices(added: [], removed: [Bose QC35 II a (260), Bose QC35 II a (264)])
ERROR: SentryCrashCPU.c (58): _Bool sentrycrashcpu_i_fillState(const thread_t, const thread_state_t, const thread_state_flavor_t, const mach_msg_type_number_t): thread_get_state: (ipc/send) invalid destination port
ERROR: SentryCrashCPU.c (58): _Bool sentrycrashcpu_i_fillState(const thread_t, const thread_state_t, const thread_state_flavor_t, const mach_msg_type_number_t): thread_get_state: (ipc/send) invalid destination port
ERROR: SentryCrashMachineContext.c (230): void sentrycrashmc_resumeEnvironment(): thread_resume (00015407): (ipc/send) invalid destination port
nodeful commented 1 year ago

I'm doing some cleanup of the issues. This has probably been fixed long time ago, I encourage people to try v1.7 by download it from the website: https://eqmac.app Closing for now, any new issues with eqMac should be submitted through the website. Thank you!