Yoshimi / yoshimi

A sophisticated soft-synth originally forked from ZynAddSubFX V2.4.0 in 2009 by Alan Calvert, and still in continuous development - This is also mirrored at http://sourceforge.net/projects/yoshimi/ : Current news is at http://sourceforge.net/p/yoshimi/news/ : Our email discussion list is: http://www.freelists.org/list/yoshimi and here is our website
http://yoshimi.github.io/
Other
239 stars 39 forks source link

Attempting to change temperament name causes SIGSEGV #70

Closed tigran123 closed 5 years ago

tigran123 commented 5 years ago

I am using Yoshimi version 1.6.0 and this is how to reproduce the problem:

  1. Startup Yoshimi (connected to JACK running at 44100Hz)
  2. Go to menu Scales/Show Settings
  3. Click on "Enable Microtonal" now the "Name:" field becomes editable
  4. Change the string "12tET" to some other string, e.g. "New Temperament"
  5. Click on "Retune" and observe the crash.

Here is the stack trace:

$ gdb /usr/local/bin/yoshimi core
GNU gdb (Ubuntu 8.1-0ubuntu3.1) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/local/bin/yoshimi...done.
[New LWP 3098]
[New LWP 3097]
[New LWP 3099]
[New LWP 3096]
[New LWP 3100]
[New LWP 3102]
[New LWP 3095]
[New LWP 3101]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `yoshimi'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000559501c24e0e in DataText::resolveMicrotonal[abi:cxx11](CommandBlock*, bool) ()
[Current thread is 1 (Thread 0x7fb94267a700 (LWP 3098))]
(gdb) bt full
#0  0x0000559501c24e0e in DataText::resolveMicrotonal[abi:cxx11](CommandBlock*, bool) ()
No symbol table info available.
#1  0x0000559501c2e0e3 in DataText::resolveAll[abi:cxx11](SynthEngine*, CommandBlock*, bool) ()
No symbol table info available.
#2  0x0000559501c1a687 in InterChange::sortResultsThread() ()
No symbol table info available.
#3  0x00007fb953d6e6db in start_thread (arg=0x7fb94267a700) at pthread_create.c:463
        pd = 0x7fb94267a700
        now = <optimised out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140433659766528, -396494679164956536, 140433659764288, 0, 94098499697032, 
                140724833090832, 364187936289869960, 364221599342022792}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, 
            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimised out>
#4  0x00007fb951c2688f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.
tigran123 commented 5 years ago

I forgot to mention that I am running Ubuntu Linux 18.04.3

tigran123 commented 5 years ago

I found a workaround for this problem --- just downgrade Yoshimi back to 1.5.6 (i.e. whatever gets installed by default in Ubuntu 18) and now it works, i.e. allows me to change the scale name without coredumping. Let's see if it actually works, i.e. retunes the instrument according to the specified Tunings values.

abrolag commented 5 years ago

Bugfix in place in the current master

abrolag commented 5 years ago

There now a fully tested bugfix version. V 1.6.0.2

tigran123 commented 5 years ago

Thank you very much for your excellent and lightning fast response! I will test your fix as soon as possible (most likely today) and will report my findings. Thank you again! :)

tigran123 commented 5 years ago

Yes, I confirm that the bug is fixed (I built from the latest source tree from this github repository). Thank you very much. (Btw, I am working on a possibility of dynamic temperament adjustment (tied to a midi message), i.e. at some point I may need to either fork Yoshimi or suggest my improvements to the official tree --- anyway, it is too early to speak of it yet, as at the moment I only have a mathematical concept of what I want to implement, which could be called "exploration of the Infinity by finite methods").