Closed klingklangmatze closed 2 years ago
Hi,
Thanks! The problem sounds weird. Unfortunately I currently do not have a Raspberry Pi 4 that I could test with, but I couldn't replicate the problem at least with my laptop (so it would seem like a usb or other system resources related thing). Are you using the official power supply or at least something as powerful with a good power cable?
I'll test with a pi1 at some point if it happens with that.
Thank you for the feedback. Unfortunately, the error also occurs on a RPi3 B+ with a newly installed Raspberry Pi OS. I only use original RPi power supplies.
I have also tested different M8 firmware versions without success. As soon as the waveform of the FM synth becomes complex, the M8 interface closes to the Terminal, but the sound playback continues.
This happens... sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 338. sp: sp_nonblocking_read(0x4ed7e0, 0x4e52e8, 1024) called. sp: Reading up to 1024 bytes from port /dev/ttyACM0. sp: sp_nonblocking_read returning 0. INFO: Shutting down INFO: Disconnecting M8 sp: sp_blocking_write(0x4ed7e0, 0xbeb5f1dc, 1, 5) called. sp: Writing 1 bytes to port /dev/ttyACM0, timeout 5 ms. sp: sp_blocking_write returning 1. sp: sp_close(0x4ed7e0) called. sp: Closing port /dev/ttyACM0. sp: sp_close returning SP_OK. sp: sp_free_port(0x4ed7e0) called. sp: Freeing port structure. sp: sp_free_port returning.
Hi,
I managed to reproduce the problem on my RPi1 system. It seems that the SDL2 library is sending SDL_Quit events with no clear reason when there's lots of stuff going on (it didn't seem to be an OOM issue or SIGINT/SIGTERM either, and signals are trapped outside SDL2 in main.c). Unfortunately since SDL2 uses this event also for legit window closing events (pressing the cross in a window title bar, pressing CMD+Q on a Mac, ALT+F4 on Windows etc.), I wouldn't want to change the code to ignore this event.
A workaround is to delete line 258 in input.c
https://github.com/laamaa/m8c/blob/85462edcb19db46832d364f328f8236f191c82e3/input.c#L258
this way SDL_Quit events are ignored.
-Jonne
Great, problem solved. Thank you very much!
Thanks for reporting & confirming! I'll close the issue for now.
Thank you for this client!!. I have a problem when using the FM synths. As soon as I set complex waveforms, the gui disappears but the sound stays on. This happens particularly quickly when using noise. I can start the m8c again from the terminal, but after a few seconds it crashes again. Could it be because I am using an RPi4 instead of an RPi3b+?