SOFTWARE UPGRADE: Update to LinuxSampler 2.0 (by @steveb) and lots of fixes and improvements (by @Schpion)

Hi @Zynthianers!

This week, double update!! :wink:
Finally you can easily update to LinuxSampler 2.0, thanks to @steveb and enjoy the improved FluidSynth and LinuxSampler engines, by @Schpion.

You can update from the GUI Admin menu (Update Software) or from the command line, running the script:

/zynthian/zynthian-sys/scripts/update_zynthian.sh

WARNING!!
It will take a while to build the new LinuxSampler, so be patient and leave your ZynthianBox to do the work …

This is the list of the most important changes:

  • Update to LinuxSampler 2.0 (thanks, @steveb!!)
  • There is an initial implementation of an Effects-Chain is for Linuxsampler using its native LADSPA support. I’m not sure if it will be the way to go, but i wanted to try :wink:
  • A looooong list of fixes and improvements contributed by @Schpion (thanks a lot, man!). You can see the details here:

LS Engine upgrade, FS Engine optimizations and bugfixes by schpion ¡ Pull Request #10 ¡ zynthian/zynthian-ui ¡ GitHub

Enjoy!

9 Likes

Many thanks @jofemodo, @steveb and @Schpion!!!

Hmmm… I was some days on vacation and now I know why my update takes so long :slight_smile:

Regards, Holger

1 Like

IMPORTANT BUG THAT BREAKS THE ADMIN MENU UPDATE FUNCTION

If you already updated this week, you can’t update from the GUI Admin menu never more because there is a bug (fixed in the next update) that breaks the admin menu update function. My apologies!

For fixing the problem you have to update from the command line, running the script:

# /zynthian/zynthian-sys/scripts/update_zynthian.sh

If you don’t want to use the console, your only option is burn a fresh gorgona image and update twice (or three times!) from the Admin menu. This should work too, but i haven’t test it.

Enjoy!

Many thanks @jofemodo, @steveb and @Schpion !

The Zynthian Project is every day better!!!

Hi Fernando,

I have some trouble with the update for linuxsampler:

  1. /zynthian/zynthian-sys/scripts/recipes/install_linuxsampler.sh: If rpi_linuxsampler_patch.git exists the call of git throws an error an the script stops. I fixed it like the following:
rm -rf rpi_linuxsampler_patch
git clone https://github.com/steveb/rpi_linuxsampler_patch.git  
if ! patch -R -p0 --dry-run <pi_linuxsampler_patch/linuxsampler-arm.patch
then
  patch -p1 <pi_linuxsampler_patch/linuxsampler-arm.patch
fi
  1. Perhaps the installation of libsqlite3-dev before compiling may be useful in future for storing setups in linuxsampler.
  2. Starting /zynthian/zynthian-ui/zynthian.sh I get the following error. Maybe line 26 can be deleted?
$ cd /zynthian/zynthian-ui; ZYNTHIAN_DIR=/zynthian FRAMEBUFFER=/dev/fb1 HOME=/root PATH=/bin:/usr/bin:/usr/local/bin:/zynthian/zynthian-sys/sbin /usr/bin/startx ./zynthian.sh -- :0 vt3
./zynthian.sh: line 26: /etc/X11/zynthian: No such file or directory
  1. Power off from the menu or long pressing SELECT for powering down does a reboot and not a halt.

That’s all I found until now :wink:. A little bit strange: I had to erase and checkout linuxsampler completely due to problems with missing lines in the code… but after fully checking out it works again.

I haven’t commited the fixes for install_linuxsampler.sh. I will do so if you say it’s OK.

Regards, Holger

Is the Admin play Test Audio function working properly?. It doesn’t seem to quit and it isn’t killable on all three of my boxes including the everso vanilla . zynthian-orig.local ( I do like avahi)

Hi @C0d3man!

Thanks for your detailed feedback and fixes.

OK! I’ve added your fix and also some comments to the script.

OK. It’s added for new updates. If you already updated, you have to do it by hand.

This file will be used in next realeases for custom display configurations :wink:

It’s already fixed.

Thanks and regards!

1 Like

Hi @wyleu

This is fixed in the repository. You only have to update :wink:

Regards

Aah that’s it. It’s fixed the Network Info issue as well… :slight_smile:

1 Like

Hi,

when I try to run the Update via

/zynthian/zynthian-sys/scripts/update_zynthian.sh

It seems to have problems to install linuxsampler. Here is the Log:

#-------------------------------------------------------------------
# MIDI Input Drivers:
# ALSA: yes, JACK: yes, CoreMIDI: no, MME: no, MidiShare: no
#-------------------------------------------------------------------
# Audio Output Drivers:
# ALSA: yes, JACK: yes, ARTS: no, CoreAudio: no, ASIO: no
#-------------------------------------------------------------------
# Sampler Engines:
# GIG: yes, SF2: yes, SFZ: yes
#-------------------------------------------------------------------
# Effect plugin systems for internal effects:
# LADSPA: yes
#-------------------------------------------------------------------
# Building sampler as plugin for following host standards:
# DSSI: yes, LV2: yes, VST: no, AU: no
#-------------------------------------------------------------------#
# Read './configure --help' or file 'configure.in' for details.     #
#####################################################################

Good. Now type 'make' to compile, followed by 'make install' as root.

++ cd src/scriptvm
++ yacc -o parser parser.y
parser.y:36.1-13: warning: deprecated directive, use ‘%name-prefix’ [-Wdeprecated]
 %name-prefix="InstrScript_"
 ^^^^^^^^^^^^^
++ cd ../..
++ rm -rf rpi_linuxsampler_patch
++ git clone https://github.com/steveb/rpi_linuxsampler_patch.git
Cloning into 'rpi_linuxsampler_patch'...
remote: Counting objects: 12, done.
remote: Total 12 (delta 0), reused 0 (delta 0), pack-reused 12
Unpacking objects: 100% (12/12), done.
Checking connectivity... done.
++ patch -R -p0 --dry-run
/zynthian/zynthian-sys/scripts/recipes/install_linuxsampler.sh: line 48: pi_linuxsampler_patch/linuxsampler-arm.patch: No such file or directory
++ patch -p1
/zynthian/zynthian-sys/scripts/recipes/install_linuxsampler.sh: line 50: pi_linuxsampler_patch/linuxsampler-arm.patch: No such file or directory
Executing /zynthian/zynthian-sys/scripts/recipes.update/update_modui.sh ...
Updating zyncoder ...
Already up-to-date.
++ Defined HAVE_WIRINGPI_LIB
++ Using wiringPI
-- Configuring done
-- Generating done
-- Build files have been written to: /zynthian/zyncoder/build
[ 50%] Built target zyncoder
[100%] Built target zyncoder_test
Updating zynthian-ui ...
Already up-to-date.
Updating zynthian-webconf ...
Already up-to-date.

Kind Regards,
Martin

Crap! My fault!!! Will fix it soon.

@lod @jofemodo

Ok - I made a copy&paste error and missed one letter.

 # Apply patch from Steveb
 rm -rf rpi_linuxsampler_patch
 git clone https://github.com/steveb/rpi_linuxsampler_patch.git
 if ! patch -R -p0 --dry-run < rpi_linuxsampler_patch/linuxsampler-arm.patch
 then
   patch -p1 < rpi_linuxsampler_patch/linuxsampler-arm.patch
 fi

I missed the “r” before the path to the patch. I cannot commit to the repo, so @jofemodo, please fix my fault.

Thx && Regards, Holger

1 Like

Hi @jofemodo,

another very small thing: when I choose setBfree as engine, on the next screen nothing in the menu is marked as chosen by default.

… and: In Zynthians Admin menu; when WiFi is enabled (after restart) the menu entry is named Start Wifi. Is there a way to detect that WiFi is configured an started, so Stop WiFi should appear?

Regards, Holger

Hi @C0d3man !

I tryed adding the missing r on both lines (48&50) and running the installer afterwards with

sh install_linuxsampler.sh

And this is the result:

Good. Now type 'make' to compile, followed by 'make install' as root.

+ cd src/scriptvm
+ yacc -o parser parser.y
parser.y:36.1-13: warning: deprecated directive, use ‘%name-prefix’ [-Wdeprecated]
 %name-prefix="InstrScript_"
 ^^^^^^^^^^^^^
+ cd ../..
+ rm -rf rpi_linuxsampler_patch
+ git clone https://github.com/steveb/rpi_linuxsampler_patch.git
Cloning into 'rpi_linuxsampler_patch'...
remote: Counting objects: 12, done.
remote: Total 12 (delta 0), reused 0 (delta 0), pack-reused 12
Unpacking objects: 100% (12/12), done.
Checking connectivity... done.
+ patch -R -p0 --dry-run
can't find file to patch at input line 5
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git a/src/common/RTMath.cpp b/src/common/RTMath.cpp
|index f228c08..bc53f8f 100644
|--- a/src/common/RTMath.cpp
|+++ b/src/common/RTMath.cpp
--------------------------
File to patch:

Is it possible to run the installer as I did or am I missing something?

Regards,
Martin

Hi @lod

[* place here 10 of your best curses *]

Ok - I am an idiot :dizzy_face:. There was another error in the script. The first call to patch must also have -p1 instead of -p0 as argument, like this:

# Apply patch from Steveb
rm -rf rpi_linuxsampler_patch
git clone https://github.com/steveb/rpi_linuxsampler_patch.git
if ! patch -R -p1 --dry-run < rpi_linuxsampler_patch/linuxsampler-arm.patch
then
  patch -p1 < rpi_linuxsampler_patch/linuxsampler-arm.patch
fi

I just tested this and hope everything is now fixed. Sorry for this inconvenience.

Regards, Holger

Please stop right there Sir! :yum:

I am happy if I can use my mighty copy-and-paste skills for helping you to test stuff!

Regards,
Martin

PS.: Its working now also on my end. :grinning:

OK! It’s fixed in the repository …

Hello!

I get some errors when updating concerning LinuxSampler.

lscp_shell_reference.cpp:593:108: warning: missing terminating " character
       "S\" command, <fx-send-id>    "e audio output type on a specific sampler channel by sending the follo"
                                                                                                            ^
lscp_shell_reference.cpp:593:7: error: missing terminating " character
       "S\" command, <fx-send-id>    "e audio output type on a specific sampler channel by sending the follo"
       ^
lscp_shell_reference.cpp:1517:24: warning: missing terminating " character
        the following co"
                        ^
lscp_shell_reference.cpp:1517:8: error: missing terminating " character
        the following co"
        ^
lscp_shell_reference.cpp:593:38: error: expected '}' before 'e'
       "S\" command, <fx-send-id>    "e audio output type on a specific sampler channel by sending the follo"
                                      ^
lscp_shell_reference.cpp:593:38: error: expected '}' before 'e'
lscp_shell_reference.cpp:593:38: error: expected ',' or ';' before 'e'
lscp_shell_reference.cpp:607:5: error: expected declaration before '}' token
     },
     ^
Makefile:437: recipe for target 'lscp_shell_reference.lo' failed
make[3]: *** [lscp_shell_reference.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
lscpserver.cpp: In member function 'String LinuxSampler::LSCPServer::GetChannelInfo(uint)':
lscpserver.cpp:1253:101: warning: 'LinuxSampler::MidiInputDevice* LinuxSampler::SamplerChannel::GetMidiInputDevice()' is deprecated (declared at ../Sampler.h:258) [-Wdeprecated-declarations]
         result.Add("MIDI_INPUT_DEVICE", GetMidiInputDeviceIndex(pSamplerChannel->GetMidiInputDevice()));
                                                                                                     ^
lscpserver.cpp:1254:73: warning: 'int LinuxSampler::SamplerChannel::GetMidiInputPort()' is deprecated (declared at ../Sampler.h:237) [-Wdeprecated-declarations]
         result.Add("MIDI_INPUT_PORT", pSamplerChannel->GetMidiInputPort());
                                                                         ^
lscpserver.cpp: In member function 'String LinuxSampler::LSCPServer::SetMIDIInputPort(uint, uint)':
lscpserver.cpp:2004:51: warning: 'void LinuxSampler::SamplerChannel::SetMidiInputPort(int)' is deprecated (declared at ../Sampler.h:169) [-Wdeprecated-declarations]
         pSamplerChannel->SetMidiInputPort(MIDIPort);
                                                   ^
lscpserver.cpp: In member function 'String LinuxSampler::LSCPServer::SetMIDIInputDevice(uint, uint)':
lscpserver.cpp:2035:52: warning: 'void LinuxSampler::SamplerChannel::SetMidiInputDevice(LinuxSampler::MidiInputDevice*)' is deprecated (declared at ../Sampler.h:143) [-Wdeprecated-declarations]
         pSamplerChannel->SetMidiInputDevice(pDevice);
                                                    ^
lscpserver.cpp: In member function 'String LinuxSampler::LSCPServer::SetMIDIInputType(String, uint)':
lscpserver.cpp:2073:52: warning: 'void LinuxSampler::SamplerChannel::SetMidiInputDevice(LinuxSampler::MidiInputDevice*)' is deprecated (declared at ../Sampler.h:143) [-Wdeprecated-declarations]
         pSamplerChannel->SetMidiInputDevice(pDevice);
                                                    ^
lscpserver.cpp: In member function 'String LinuxSampler::LSCPServer::SetMIDIInput(uint, uint, uint, uint)':
lscpserver.cpp:2094:83: warning: 'void LinuxSampler::SamplerChannel::SetMidiInput(LinuxSampler::MidiInputDevice*, int, LinuxSampler::midi_chan_t)' is deprecated (declared at ../Sampler.h:207) [-Wdeprecated-declarations]
         pSamplerChannel->SetMidiInput(pDevice, MIDIPort, (midi_chan_t) MIDIChannel);
                                                                                   ^
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../.. -I/usr/local/include/libgig -Wreturn-type -ffast-math -mcpu=cortex-a7 -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mvectorize-with-neon-quad -pthread -MT lscpparser.lo -MD -MP -MF .deps/lscpparser.Tpo -c lscpparser.cpp -o lscpparser.o >/dev/null 2>&1
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../.. -I/usr/local/include/libgig -Wreturn-type -ffast-math -mcpu=cortex-a7 -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mvectorize-with-neon-quad -pthread -MT lscpserver.lo -MD -MP -MF .deps/lscpserver.Tpo -c lscpserver.cpp -o lscpserver.o >/dev/null 2>&1
make[3]: Leaving directory '/zynthian/zynthian-sw/linuxsampler/src/network'
Makefile:677: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/zynthian/zynthian-sw/linuxsampler/src'
Makefile:498: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/zynthian/zynthian-sw/linuxsampler'
Makefile:402: recipe for target 'all' failed
make: *** [all] Error 2
Executing /zynthian/zynthian-sys/scripts/recipes.update/update_modui.sh ...
Executing /zynthian/zynthian-sys/scripts/recipes.update/update_setBfree.sh ...
Updating zyncoder ...
Already up-to-date.
++ Defined HAVE_WIRINGPI_LIB
++ Using wiringPI
-- Configuring done
-- Generating done
-- Build files have been written to: /zynthian/zyncoder/build
[ 50%] Built target zyncoder
[100%] Built target zyncoder_test
Updating zynthian-ui ...
Already up-to-date.
Updating zynthian-webconf ...
Already up-to-date.
root@zynthian:~# Connection to 192.168.1.138 closed by remote host.
Connection to 192.168.1.138 closed.

Solved by reinstalling Gorgona image and updating