Zynthian Faster

Hi @zynthianers!

I’ve good news:

"Faster" is merged on “master”.

You may ask … what’s the meaning of this? Is Jodemodo totally crazy? :crazy_face:
OK! “Faster” is the development branch in witch i’ve been working in the last weeks. It’s a set of changes that will make your zynthian faster:

  • Faster LV2: Native LV2 discovery system (LV2 world) is fantastic, but it’s slow. It takes a lot of time to search for presets every time you load a plugin, specially if the plugin have a good amount of presets. And the problem arises when you manage snapshots with several plugins on it. For solving this problem i decided to cache LV2 presets in a faster format (JSON). With this cache system you can have as many presets as you want on Dexed, OBXd or amsynth, and the load time will remain the same.

  • Faster loading/removing layers & snapshots: I’ve optimized the autoconnector code for avoiding some blocking conditions. The result is faster loading times, specially when changing between snapshots, or removing all layers for starting a new one.

The update could take some time (several minutes), as it needs to build the presets cache, so please, be patient. I recommend to do it from webconf for better control of what’s going on. Don’t be worried if you see some error/warning when generating the presets cache. There are several hundred plugins and some of them have “problems”.

When the update is over, you should restart your zynthian and cross your fingers …

I’ve tested carefully, but … if something goes wrong, i’m pretty sure the update works OK on a fresh Stretch or Buster image.

Enjoy!

12 Likes

Wow!

Sounds good.

Woo. And the whole weekend to play! You’re a legend!

Awesome. Will test it out this evening :+1:

OK, @jofemodo, it’s time to kick off the bug reports… :frowning:
I updated my software last night. Since then, I have been unable to load any of my snapshots.
The UI log shows:

Feb 28 12:25:11 zynthian startx[509]: for i, info in zynthian_lv2.get_plugin_ports(self.plugin_url).items():
Feb 28 12:25:11 zynthian startx[509]: File "/home/pi/zynthian-ui/zyngine/zynthian_lv2.py", line 407, in get_plugin_ports
Feb 28 12:25:11 zynthian startx[509]: plugin = plugins[plugin_url]
Feb 28 12:25:11 zynthian startx[509]: File "/usr/lib/python3.7/lilv.py", line 874, in __getitem__
Feb 28 12:25:11 zynthian startx[509]: return self.get_by_uri(key)
Feb 28 12:25:11 zynthian startx[509]: File "/usr/lib/python3.7/lilv.py", line 877, in get_by_uri
Feb 28 12:25:11 zynthian startx[509]: plugin = plugins_get_by_uri(self.collection, uri.node)
Feb 28 12:25:11 zynthian startx[509]: AttributeError: 'str' object has no attribute 'node'
Feb 28 12:25:11 zynthian startx[509]: ERROR:zynthian_autoconnect: Jack Audio XRUN!
Feb 28 12:25:11 zynthian startx[509]: ERROR:zynthian_autoconnect: Jack Audio XRUN!

Is something wrong with my snapshots?

Update
I created a brand-new snapshot, and it loaded successfully. So, is there a way I can fix my old snapshots?

Try:

rm -f /usr/lib/python3.7/lilv.py

If it works, i will add it to update process …

BTW, are you using Buster RC-1 as a base? If not, could you tell me the build date?

Regards!

1 Like

I’m getting whinges from even further down the food chain after an update . . .

Anyone got a quick way of reporting repo hashes when one doesn’t have the webconf . . .:slight_smile:

I don’t have an exact build date, but I think it’s safe to say that I have been updating pretty regularly.

Not that it matters now. I deleted that script and rebooted, and, at long last, got to see my error splash screen on my Zynthian. :confounded:

Where can I find error logs for when the error screen pops up?

I am using 2020-02-11 as base system and updated right now: loading my snapshots is working.

@jofemodo BUT: I think there is a problem with the volume setup. I have several snapshots where the initial volume is turned down (especially when YKChorus is in the FX-chain). The visual representation in the window is telling the right value but the sound is definitely too loud (=digital distortion). Turning the encoder just one step and the right value (+/- 1) is set (and distortion disapears).

This update is incredible @jofemodo!!! My Disco-Zynthian is used for our band since the RPI4 upgrade and I must say that it is so much fun to have such a great synth on stage! Thanks a lot!!! :1st_place_medal:

2 Likes

@jofemodo,

I can confirm this.
During update it shows:

Executing /zynthian/zynthian-sys/scripts/recipes.update.buster/00_install_packages.sh …
Traceback (most recent call last):
File “”, line 1, in
ModuleNotFoundError: No module named ‘lilv’
Updating lilv python bindings …

1 Like

@jofemodo,

when I call find /usr/local/lib -type d -iname python3*

it says
find: paths must precede expression: python3.7' find: possible unquoted pattern after predicate -iname’?

find /usr/local/lib -type d -iname python3

works

this fixes it

/zynthian/zynthian-sys/scripts/recipes# ./install_lv2_lilv.sh

And the build is ???
Raspbian GNU/Linux 10 (buster)
Build Date: ???

3 Likes

OK! I will try to fix the update code.

Anyway, we have a new green build (buster):

https://os.zynthian.org/2020-02-28-zynthianos-buster-lite-1.0.0.zip

I’ve not tested yet, but it should include all the new changes :wink:

Regards,

1 Like

Excellent. Ithe os pageis a little confusing as to precisely what is andisnt a clean build. We’ll it is to me anyway

OK, here’s what I’ve done.

I flashed a Zynthian image backup from 19 January 2020 to my SD card. I powered on my Zynthian and connected to the WiFi. I selected Update Software in the Zynthian UI. After the obligatory scrolling text, the screen turned all white. The Zynthian UI was gone.

I rebooted the Zynthian over SSH, but the screen was still white. I tried running update_zynthian.sh, and I got the error everybody’s been talking about:

Traceback (most recent call last):
  File "./zynthian_lv2.py", line 28, in <module>
    import lilv
ModuleNotFoundError: No module named 'lilv'

(At this point, the screen was still white.)

Then I ran the script that @mheidt mentioned…

…and ran update_zynthian.sh again. This time, the screen showed the Zynthian UI, but I still got the error message:

Traceback (most recent call last):
  File "./zynthian_lv2.py", line 28, in <module>
    import lilv
ModuleNotFoundError: No module named 'lilv'

Hope this helps. I’ll look into it more tomorrow.

That’s weird. My build from Januar-15 worked. Only an early build had issues.
But let the install_lv2_lilv be the last action.
The update seems to delete it again.

1 Like

I ran install_lv2_lilv.sh, rebooted, restored from backup, and… I can load my snapshots again!!! :partying_face:

@mheidt In gratitude of your help, allow me to :face_with_monocle: you…

ZynAddSubFX > Cormi Sound > Delicato 03

3 Likes
cd /zynthian/zynthian-sys
git log -1 --pretty='%H'
991a37d330f007111b6411b8feab8dc4da942b32

I’m pre-update…

You might like this one a little better which shows how far back you are from the latest.

cd /zynthian/zynthian-sys
git fetch
git branch -vv
* master 991a37d [origin/master: behind 13] Fix banks declaration on amsynth TTL.
1 Like

Hello,

I just updated. Problem while trying to add an affect layer:

I can select any LV2 plugin then I see the usual logo animation but the screen to select a channel or a preset never appear. I can just push “back” button to return to main menu.

The effect layer doesn’t seem to be created (audio can’t be routed to it).

Any clue ?