Low hanging fruit - small things to improve Zynthian

Not half as much as @riban & @jofe . . .

You do realise there is no shortage of soup round here….?

In fact we have to get rid of it . . .

3 Likes

More fruit … is this a bug or a feature? If bug I can try to fix it.

This now updates dynamically.

I don’t think it is too bad but we should ensure best accessiblity.

I think you requested that but is it significantly beneficial? We don’t want to flood the menu and it is in control view that you can access from the options menu.

There are several ways to access control view. It was added here to offer a workflow based around this view and faster access when editing chains, but other options to edit the chain feel more relevant to this view, like add, remove, move processors, etc.

1 Like

I’ll add a bug report as well, but I can already say that toggling the bypass control throws this message:


Mar 20 13:24:51 hannes-zynthian startx[1981]: DEBUG:zynthian_engine_jalv.proc_poll_parse_line: LOG MVerb-01 > error: unknown control `bypass'

Have you performed and manual operations, e.g. updates or installs? We use a patched version of jalv that adds the bypass control if it is missing.

What would be a manual update? I frequently update from ssh cli with the respective py command, other than that: no, especially not for jalv.

I got jalv v 1.6.9 running, don’t know if that helps.

Seems there is not bypass control:

(venv) root@hannes-zynthian:~# jalv -t urn:juce:TalReverb3
Plugin:       urn:juce:TalReverb3
JACK Name:    Tal-Reverb-III
Sample rate:  48000 Hz
Block length: 128 frames
MIDI buffers: 32768 bytes
Comm buffers: 524288 bytes
Update rate:  30.0 Hz
Scale factor: 1.0

#CTR> 0#dry=0.500000
#CTR> 5#high_shelf_gain=0.248000
#CTR> 4#low_shelf_gain=0.756000
error: Preset control `lv2_freewheel': doesn't exist!
#CTR> 8#power=1.000000
#CTR> 3#pre_delay=0.000000
#CTR> 2#room_size=0.340000
#CTR> 6#stereo=1.000000
#CTR> 7#stereo_input=1.000000
error: Preset control `unused': doesn't exist!
#CTR> 1#wet=0.266000
CLI thread created successfully

This might work.

Does bypass show if you type bypass into the running jalv console?

controls
#CTR> 0#dry=0.500000
#CTR> 1#wet=0.266000
#CTR> 2#room_size=0.340000
#CTR> 3#pre_delay=0.000000
#CTR> 4#low_shelf_gain=0.756000
#CTR> 5#high_shelf_gain=0.248000
#CTR> 6#stereo=1.000000
#CTR> 7#stereo_input=1.000000
#CTR> 8#power=1.000000
bypass=0
(venv) root@hannes-zynthian:~# jalv -t urn:juce:TalReverb3
Plugin:       urn:juce:TalReverb3
JACK Name:    Tal-Reverb-III
Sample rate:  48000 Hz
Block length: 128 frames
MIDI buffers: 32768 bytes
Comm buffers: 524288 bytes
Update rate:  30.0 Hz
Scale factor: 1.0

#CTR> 0#dry=0.500000
#CTR> 5#high_shelf_gain=0.248000
#CTR> 4#low_shelf_gain=0.756000
error: Preset control `lv2_freewheel': doesn't exist!
#CTR> 8#power=1.000000
#CTR> 3#pre_delay=0.000000
#CTR> 2#room_size=0.340000
#CTR> 6#stereo=1.000000
#CTR> 7#stereo_input=1.000000
error: Preset control `unused': doesn't exist!
#CTR> 1#wet=0.266000
CLI thread created successfully
>
bypass
error: invalid command (try `help')
bypass=0
error: unknown control `bypass'

Run this:

$ZYNTHIAN_RECIPE_DIR/install_lv2_jalv_alone.sh

Regards

Thanks, I just performed this (before I read your message, so hopefully this wasn’t damaging) and it works now:


(venv) root@hannes-zynthian:/zynthian/zynthian-sys/scripts/recipes# sh install_lv2_jalv.sh
Cloning into 'suil'...
remote: Enumerating objects: 2752, done.
remote: Counting objects: 100% (35/35), done.
remote: Compressing objects: 100% (27/27), done.
remote: Total 2752 (delta 10), reused 18 (delta 4), pack-reused 2717 (from 1)
Receiving objects: 100% (2752/2752), 6.49 MiB | 2.62 MiB/s, done.
Resolving deltas: 100% (1699/1699), done.
The Meson build system
Version: 1.5.1
Source dir: /zynthian/zynthian-sw/suil
Build dir: /zynthian/zynthian-sw/suil/build
Build type: native build
Project name: suil
Project version: 0.10.26
C compiler for the host machine: cc (gcc 12.2.0 "cc (Debian 12.2.0-14+deb12u1) 12.2.0")
C linker for the host machine: cc ld.bfd 2.40
C++ compiler for the host machine: c++ (gcc 12.2.0 "c++ (Debian 12.2.0-14+deb12u1) 12.2.0")
C++ linker for the host machine: c++ ld.bfd 2.40
Host machine cpu family: aarch64
Host machine cpu: aarch64
Compiler for C supports link arguments -Wl,-z,nodelete: YES
Compiler for C++ supports link arguments -Wl,-z,nodelete: YES
Library dl found: YES
Found pkg-config: YES (/usr/bin/pkg-config) 1.8.1
Run-time dependency lv2 found: YES 1.18.11
Run-time dependency x11 found: YES 1.8.4
Run-time dependency gtk+-2.0 found: YES 2.24.33
Run-time dependency gtk+-x11-2.0 found: YES 2.24.33
Run-time dependency gtk+-3.0 found: YES 3.24.38
Run-time dependency gtk+-x11-3.0 found: YES 3.24.38
Run-time dependency qt5widgets found: YES 5.15.8
Found CMake: /usr/bin/cmake (3.25.1)
Run-time dependency qt5x11extras found: NO (tried pkgconfig and cmake)
Run-time dependency qt6widgets found: NO (tried pkgconfig and cmake)
Program doxygen found: YES (/usr/bin/doxygen)
Program sphinx-build found: NO
Build targets in project: 5

suil 0.10.26

  Components
    Documentation : NO

  Directories
    Install prefix: /usr/local
    Headers       : /usr/local/include
    Libraries     : /usr/local/lib/aarch64-linux-gnu

Found ninja-1.11.1.git.kitware.jobserver-1 at /zynthian/venv/bin/ninja
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /zynthian/venv/bin/ninja
[14/14] Linking target libsuil_x11_in_gtk3.so
ninja: Entering directory `/zynthian/zynthian-sw/suil/build'
ninja: no work to do.
Installing libsuil-0.so.0.10.26 to /usr/local/lib/aarch64-linux-gnu
Installing libsuil_x11.so to /usr/local/lib/aarch64-linux-gnu/suil-0
Installing libsuil_x11_in_gtk2.so to /usr/local/lib/aarch64-linux-gnu/suil-0
Installing libsuil_x11_in_gtk3.so to /usr/local/lib/aarch64-linux-gnu/suil-0
Installing /zynthian/zynthian-sw/suil/include/suil/suil.h to /usr/local/include/suil-0/suil
Installing /zynthian/zynthian-sw/suil/build/meson-private/suil-0.pc to /usr/local/lib/aarch64-linux-gnu/pkgconfig
Installing symlink pointing to libsuil-0.so.0.10.26 to /usr/local/lib/aarch64-linux-gnu/libsuil-0.so.0
Installing symlink pointing to libsuil-0.so.0 to /usr/local/lib/aarch64-linux-gnu/libsuil-0.so
Cloning into 'jalv'...
remote: Enumerating objects: 4203, done.
remote: Counting objects: 100% (218/218), done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 4203 (delta 187), reused 176 (delta 176), pack-reused 3985 (from 2)
Receiving objects: 100% (4203/4203), 5.99 MiB | 2.66 MiB/s, done.
Resolving deltas: 100% (2961/2961), done.
The Meson build system
Version: 1.5.1
Source dir: /zynthian/zynthian-sw/jalv
Build dir: /zynthian/zynthian-sw/jalv/build
Build type: native build
Project name: jalv
Project version: 1.6.9
C compiler for the host machine: cc (gcc 12.2.0 "cc (Debian 12.2.0-14+deb12u1) 12.2.0")
C linker for the host machine: cc ld.bfd 2.40
C++ compiler for the host machine: c++ (gcc 12.2.0 "c++ (Debian 12.2.0-14+deb12u1) 12.2.0")
C++ linker for the host machine: c++ ld.bfd 2.40
Host machine cpu family: aarch64
Host machine cpu: aarch64
Library m found: YES
Run-time dependency threads found: YES
Found pkg-config: YES (/usr/bin/pkg-config) 1.8.1
Run-time dependency zix-0 found: YES 0.5.0
Run-time dependency serd-0 found: YES 0.32.3
Run-time dependency sord-0 found: YES 0.16.17
Run-time dependency lv2 found: YES 1.18.11
Run-time dependency sratom-0 found: YES 0.6.17
Run-time dependency lilv-0 found: YES 0.24.25
Run-time dependency suil-0 found: YES 0.10.26
Found CMake: /usr/bin/cmake (3.25.1)
Run-time dependency portaudio-2.0 found: NO (tried pkgconfig and cmake)
Run-time dependency jack found: YES 1.9.21
Checking if "fileno" compiles: YES
Checking if "isatty" compiles: YES
Checking if "mlock" compiles: YES
Checking if "posix_memalign" compiles: YES
Checking if "sigaction" compiles: YES
Checking if "jack_metadata" compiles: YES
Checking if "jack_port_type_get_buffer_size" compiles: YES
Run-time dependency gdk-3.0 found: YES 3.24.38
Run-time dependency gtk+-3.0 found: YES 3.24.38
Configuring jalv.desktop using configuration
Run-time dependency qt5widgets found: YES 5.15.8
Program moc-qt5 found: NO
Program moc found: YES (/usr/bin/moc)
Build targets in project: 6

jalv 1.6.9

    Install prefix: /usr/local
    Executables   : /usr/local/bin
    Man pages     : /usr/local/share/man
    Backend       : jack

Found ninja-1.11.1.git.kitware.jobserver-1 at /zynthian/venv/bin/ninja
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /zynthian/venv/bin/ninja -j 3
[44/44] Linking target jalv.qt5
ninja: Entering directory `/zynthian/zynthian-sw/jalv/build'
ninja: no work to do.
Installing jalv.so to /usr/local/lib/aarch64-linux-gnu/jack
Installing jalv to /usr/local/bin
Installing jalv.gtk3 to /usr/local/bin
Installing jalv.qt5 to /usr/local/bin
Installing /zynthian/zynthian-sw/jalv/doc/jalv.1 to /usr/local/share/man/man1
Installing /zynthian/zynthian-sw/jalv/doc/jalv.gtk3.1 to /usr/local/share/man/man1
Installing /zynthian/zynthian-sw/jalv/doc/jalv.qt5.1 to /usr/local/share/man/man1
Installing /zynthian/zynthian-sw/jalv/build/jalv.desktop to /usr/local/share/applications
(venv) root@hannes-zynthian:/zynthian/zynthian-sys/scripts/recipes# jalv -t urn:juce:TalReverb3
Plugin:       urn:juce:TalReverb3
JACK Name:    Tal-Reverb-III
Sample rate:  48000 Hz
Block length: 128 frames
MIDI buffers: 32768 bytes
Comm buffers: 524288 bytes
Update rate:  30.0 Hz
Scale factor: 1.0

#CTR> 0#dry=0.500000
#CTR> 5#high_shelf_gain=0.248000
#CTR> 4#low_shelf_gain=0.756000
error: Preset control `lv2_freewheel': doesn't exist!
#CTR> 8#power=1.000000
#CTR> 3#pre_delay=0.000000
#CTR> 2#room_size=0.340000
#CTR> 6#stereo=1.000000
#CTR> 7#stereo_input=1.000000
error: Preset control `unused': doesn't exist!
#CTR> 1#wet=0.266000
CLI thread created successfully
>
bypass=0

Do you have any idea why it was not done in any other past update? I.e.: is there a way to test if necessary scripts were not performed in the past?

Yes, i’ve an idea :wink:
The update system must be improved, but we have limited resources.
Zynthian is a complex beast.

Regards,

1 Like

Hello

I see many pull requests get picked up quickly.

The webconf PRs had some low hanging fruit at

https://github.com/zynthian/zynthian-webconf/pulls

Regards

I have plucked the low-hanging PRs. I left the ones I couldn’t reach!

1 Like

Splendid, thanks!