Starting Sushi on Linux

Hello,

I am having some trouble on running Sushi on my Linux Desktop. I am running on Ubuntu 18.04.4 LTS 64 bits. Basically I tried to follow the tutorial from the doc https://elk-audio.github.io/elk-docs/html/documents/getting_started_with_development_kit_software.html#running-a-plugin-within-the-sushi-host, with a few differences:

  1. Downloaded the latest and greatest release 0.10.2. I then used its Sushi-x86_64_0.10.2.AppImage along with the config_play_vst3.json from its source code. It gives me the error, even though the JSON file seems OK:
$ ./Sushi-x86_64_0.10.2.AppImage -j -c ./config_play_vst3.json 
SUSHI - Copyright 2017-2020 Elk, Stockholm
SUSHI is licensed under the Affero GPL 3.0. Source code is available at github.com/elk-audio
Error reading config file, invalid file: ./config_play_vst3.json
  1. I then tried to build sushi form source to see if I got the same error. This turned out to be more complicated than I expected. Some dependencies are not listed in the Readme.md, for example liblo-dev. Also, I had to disable the unit tests with the -DWITH_UNIT_TEST=off option, as one of the LV2 unit test was failing with a segmentation fault and it didnā€™t finish the build (I did install lv2-examples and mda-lv2). VST2 unit tests were failing, but it is normal, as I built with the -DWITH_VST2=OFF. Anyway, after successfully building and copying libtwine.so.0.1 to the same folder as the sushi executable, I have the following error:

$ ./sushi -j --connect-ports -c ./config_play_vst3.json
SUSHI - Copyright 2017-2020 Elk, Stockholm
SUSHI is licensed under the Affero GPL 3.0. Source code is available at Elk Audio Ā· GitHub
Cannot lock down 107341338 byte memory area (Cannot allocate memory)
Failed to load tracks from Json config file

This is where I am stuck now. Any help is appreciated.

Best,
/edwillys

Hi @edwillys,

Thatā€™s a problem with AppImages that we are having. Try passing a full absolute path to the config file, it should work.

Thanks for the tip of adding liblo-dev, weā€™ll do that. Seems you were able to build fine, could you share here the output of /tmp/sushi.log and the JSON file you were using?

Hi @Stefano,

Thanks for your quick reply. As a matter of fact, passing the complete path to the JSON file does look ā€œbetterā€. Now at least I have the same behavior as my built sushi image:

$ ./Sushi-x86_64_0.10.2.AppImage -j -c ~/elk/config_play_vst3.json
SUSHI - Copyright 2017-2020 Elk, Stockholm
SUSHI is licensed under the Affero GPL 3.0. Source code is available at Elk Audio Ā· GitHub
Cannot lock down 107341338 byte memory area (Cannot allocate memory)
Failed to load tracks from Json config file

I double checked and there is much more than ~103MB available in my PCā€™s memory.

This is the JSON that I used (for both AppImage and own built sushi): https://github.com/elk-audio/sushi/blob/master/misc/config_files/config_play_vst3.json

I followed your tip and looked into the /tmp/sushi.log (I couldnā€™t upload it to this post as only images are allowed) and noticed there was indeed a problem with the path. The VST ought to be in the lxvst folder and not VST3 as described in the tutorial. No issues, after changing it I get the following:

$ ./Sushi-x86_64_0.10.2.AppImage -j -c ~/elk/config_play_vst3.json
SUSHI - Copyright 2017-2020 Elk, Stockholm
SUSHI is licensed under the Affero GPL 3.0. Source code is available at Elk Audio Ā· GitHub
Cannot lock down 107341338 byte memory area (Cannot allocate memory)
Cannot use real-time scheduling (RR/5) (1: Operation not permitted)
JackClient::AcquireSelfRealTime error

Hence, apparently still some issues, even though the sushi.log looks sane to my eyes (sorry for the long paste):

[2020-04-10 11:28:32.787] [warning] #############################
[2020-04-10 11:28:32.787] [warning] Started Sushi Logger!
[2020-04-10 11:28:32.787] [warning] #############################
[2020-04-10 11:28:32.794] [info] [main] Setting up Jack audio frontend
[2020-04-10 11:28:32.813] [info] [jsonconfig] Setting engine sample rate to 48000
[2020-04-10 11:28:32.813] [info] [engine] Track main successfully added to engine
[2020-04-10 11:28:32.813] [info] [engine] Connected channel 0 of track ā€œmainā€ to output 0
[2020-04-10 11:28:32.813] [info] [engine] Connected channel 1 of track ā€œmainā€ to output 1
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda Ambience of type Audio Module Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda Ambience of type Component Controller Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda Bandisto of type Audio Module Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda Bandisto of type Component Controller Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda BeatBox of type Audio Module Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda BeatBox of type Component Controller Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda Combo of type Audio Module Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda Combo of type Component Controller Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda DeEsser of type Audio Module Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda DeEsser of type Component Controller Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda Degrade of type Audio Module Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda Degrade of type Component Controller Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda Delay of type Audio Module Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda Delay of type Component Controller Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda Detune of type Audio Module Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda Detune of type Component Controller Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda Dither of type Audio Module Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda Dither of type Component Controller Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda DubDelay of type Audio Module Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda DubDelay of type Component Controller Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda DX10 of type Audio Module Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda DX10 of type Component Controller Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda Dynamics of type Audio Module Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda Dynamics of type Component Controller Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda EPiano of type Audio Module Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda EPiano of type Component Controller Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda Image of type Audio Module Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda Image of type Component Controller Class
[2020-04-10 11:28:32.816] [info] [vst3] Querying plugin mda JX10 of type Audio Module Class
[2020-04-10 11:28:32.816] [info] [vst3] Creating plugin mda JX10
[2020-04-10 11:28:32.816] [info] [vst3] Plugin supports Midi Mapping interface
[2020-04-10 11:28:32.816] [info] [vst3] Plugin supports Unit Info interface for programs
[2020-04-10 11:28:32.816] [info] [vst3] Plugin has 0 audio input buffers and 1 audio output buffers
[2020-04-10 11:28:32.816] [info] [vst3] Vst3 wrapper (mda JX10) has 0 inputs and 2 outputs
[2020-04-10 11:28:32.816] [info] [vst3] Plugin has 1 event input buffers and 0 event output buffers
[2020-04-10 11:28:32.816] [info] [vst3] Vst3 wrapper (mda JX10) setting up 0 inputs and 2 outputs
[2020-04-10 11:28:32.816] [info] [vst3] We have a program change parameter at 1886548852
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter OSC Mix, id 0
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter OSC Tune, id 1
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter OSC Fine, id 2
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter Glide, id 3
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter Gld Rate, id 4
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter Gld Bend, id 5
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter VCF Freq, id 6
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter VCF Reso, id 7
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter VCF Env, id 8
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter VCF LFO, id 9
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter VCF Vel, id 10
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter VCF Att, id 11
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter VCF Dec, id 12
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter VCF Sus, id 13
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter VCF Rel, id 14
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter ENV Att, id 15
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter ENV Dec, id 16
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter ENV Sus, id 17
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter ENV Rel, id 18
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter LFO Rate, id 19
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter Vibrato, id 20
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter Noise, id 21
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter Octave, id 22
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter Tuning, id 23
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter Mod Wheel, id 1836016759
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter Pitch Bend, id 1885959266
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter Filter Mod+, id 1651668072
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter Filter Mod-, id 1668558899
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter Filter Resonance, id 1702391922
[2020-04-10 11:28:32.816] [info] [vst3] Registered parameter Aftertouch, id 1634104436
[2020-04-10 11:28:32.816] [info] [vst3] Plugin supports mod wheel parameter mapping
[2020-04-10 11:28:32.816] [info] [vst3] Plugin supports pitch bend parameter mapping
[2020-04-10 11:28:32.816] [info] [vst3] Plugin supports aftertouch parameter mapping
[2020-04-10 11:28:32.816] [info] [vst3] Program list id 1886548852
[2020-04-10 11:28:32.816] [info] [vst3] Plugin supports internal programs, program count: 52
[2020-04-10 11:28:32.816] [info] [jsonconfig] Successfully configured engine with tracks in JSON config file ā€œ/home/edlub/elk/config_play_vst3.jsonā€
[2020-04-10 11:28:32.816] [info] [midi dispatcher] Connected MIDI port ā€œ0ā€ to track ā€œmainā€
[2020-04-10 11:28:32.816] [info] [midi dispatcher] Connected program changes from MIDI port ā€œ0ā€ to processor ā€œjx10ā€
[2020-04-10 11:28:32.816] [info] [jsonconfig] Config file does not have CV/Gate definitions
[2020-04-10 11:28:32.816] [info] [jsonconfig] Config file does not have any Event definitions
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/OSC_Mix
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/OSC Mix
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/OSC_Tune
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/OSC Tune
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/OSC_Fine
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/OSC Fine
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/Glide
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/Glide
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/Gld_Rate
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/Gld Rate
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/Gld_Bend
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/Gld Bend
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/VCF_Freq
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/VCF Freq
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/VCF_Reso
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/VCF Reso
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/VCF_Env
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/VCF Env
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/VCF_LFO
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/VCF LFO
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/VCF_Vel
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/VCF Vel
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/VCF_Att
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/VCF Att
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/VCF_Dec
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/VCF Dec
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/VCF_Sus
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/VCF Sus
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/VCF_Rel
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/VCF Rel
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/ENV_Att
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/ENV Att
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/ENV_Dec
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/ENV Dec
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/ENV_Sus
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/ENV Sus
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/ENV_Rel
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/ENV Rel
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/LFO_Rate
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/LFO Rate
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/Vibrato
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/Vibrato
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/Noise
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/Noise
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/Octave
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/Octave
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/Tuning
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/Tuning
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/Mod_Wheel
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/Mod Wheel
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc callback /parameter/jx10/Pitch_Bend
[2020-04-10 11:28:32.817] [info] [osc frontend] Added osc output from parameter jx10/Pitch Bend
[2020-04-10 11:28:32.817]

Short update. Despite the problems stated above, sushi does show up in Catia. Unfortunately still didnā€™t manage to get sound out of jx10 plugin. Not sure if it is related or if I overlooked something.

Moreover, by activating debug tracing in sushi, it indicates that the MIDI messages are coming through:

[2020-04-10 12:26:12.968] [debug] [alsamidi] Received midi message: [90 28 64 0], port0, timestamp: 17538291615
[2020-04-10 12:26:13.065] [debug] [alsamidi] Received midi message: [80 28 0 0], port0, timestamp: 17538389047
[2020-04-10 12:26:13.068] [debug] [alsamidi] Received midi message: [90 24 64 0], port0, timestamp: 17538392181
[2020-04-10 12:26:13.159] [debug] [alsamidi] Received midi message: [90 28 64 0], port0, timestamp: 17538482617
[2020-04-10 12:26:13.169] [debug] [alsamidi] Received midi message: [80 24 0 0], port0, timestamp: 17538492545

ā€¦but there are some suspicious lines:

[2020-04-10 12:25:27.357] [warning] [jack audio] Failed to connect out port sushi:audio_output_2, error 2.
[2020-04-10 12:25:27.357] [warning] [jack audio] Failed to connect port sushi:audio_input_0, error 0.
[2020-04-10 12:25:27.357] [warning] [jack audio] Failed to connect port sushi:audio_input_1, error 1.
[2020-04-10 12:25:27.358] [warning] [jack audio] Failed to connect port sushi:audio_input_2, error 2.

Update #2:
I managed to get some sound :joy: I needed to add my user to the audio group via usermod -a -G audio <user> and restart. Now the output of sushi is neat. Two remarks though:

  1. The first time I launch sushi after a restart I get the following error:
SUSHI - Copyright 2017-2020 Elk, Stockholm
SUSHI is licensed under the Affero GPL 3.0. Source code is available at github.com/elk-audio
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel

It is enough to launch it again to heal it though.

  1. The minimum block size in my Linux machine that runs without Xruns is 256 samples per block. That is OK, since it is not patched for RT. however I wonder if if does make a difference to change the jack blocksize. My understanding is that sushi is built by default to 64 samples per block. Is it right to assume that the real block length is MAX(blocklength_sushi, blocklength_jack) ?

Thanks!

Hi @edwillys,
good, it seemed you had some JACK configuration issues but you were able to sort them out.

It seems that also the remaining issues are JACK-related:

Those are also JACK errors. If youā€™re on Ubuntu, Iā€™d recommend using the KXStudio repositories to install JACK & related tools:

Yes, youā€™re right. In this situation, SUSHI will call 4 times (=256 / 64) its own processing loop for each JACK processing callback. I use regularly a similar setup on my own Linux machine.

Cheers,
Stefano

1 Like

Hi @edwillys,

I will look into why the LV2 tests were giving you a segfault - if you can remember which one that would be helpful!

Best,
Ilias of Elk

Hi @Ilias,

Almost all of the test cases in TestLv2Wrapper are failing. Here is the console output:

[----------] 8 tests from TestLv2Wrapper
[ RUN      ] TestLv2Wrapper.TestLV2PluginInvalidURI
[       OK ] TestLv2Wrapper.TestLV2PluginInvalidURI (31 ms)
[ RUN      ] TestLv2Wrapper.TestLV2PluginInterraction
/home/edlub/elk/sushi/test/unittests/library/lv2_wrapper_test.cpp:124: Failure
Value of: ret
  Actual: 4-byte object <09-00 00-00>
Expected: ProcessorReturnCode::OK
Which is: 4-byte object <00-00 00-00>
[  FAILED  ] TestLv2Wrapper.TestLV2PluginInterraction (22 ms)
[ RUN      ] TestLv2Wrapper.TestProcessingWithParameterChanges
/home/edlub/elk/sushi/test/unittests/library/lv2_wrapper_test.cpp:159: Failure
Value of: ret
  Actual: 4-byte object <09-00 00-00>
Expected: ProcessorReturnCode::OK
Which is: 4-byte object <00-00 00-00>
[  FAILED  ] TestLv2Wrapper.TestProcessingWithParameterChanges (23 ms)
[ RUN      ] TestLv2Wrapper.TestBypassProcessing
/home/edlub/elk/sushi/test/unittests/library/lv2_wrapper_test.cpp:186: Failure
Value of: ret
  Actual: 4-byte object <09-00 00-00>
Expected: ProcessorReturnCode::OK
Which is: 4-byte object <00-00 00-00>
[  FAILED  ] TestLv2Wrapper.TestBypassProcessing (22 ms)
[ RUN      ] TestLv2Wrapper.TestMidiEventInputAndOutput
/home/edlub/elk/sushi/test/unittests/library/lv2_wrapper_test.cpp:217: Failure
Value of: ret
  Actual: 4-byte object <09-00 00-00>
Expected: ProcessorReturnCode::OK
Which is: 4-byte object <00-00 00-00>
[  FAILED  ] TestLv2Wrapper.TestMidiEventInputAndOutput (23 ms)
[ RUN      ] TestLv2Wrapper.TestTimeInfo
/home/edlub/elk/sushi/test/unittests/library/lv2_wrapper_test.cpp:263: Failure
Value of: ret
  Actual: 4-byte object <09-00 00-00>
Expected: ProcessorReturnCode::OK
Which is: 4-byte object <00-00 00-00>
[  FAILED  ] TestLv2Wrapper.TestTimeInfo (22 ms)
[ RUN      ] TestLv2Wrapper.TestSynchronousStateAndWorkerThreads
Segmentation fault
test/CMakeFiles/run_tests.dir/build.make:57: recipe for target 'test/CMakeFiles/run_tests' failed
make[2]: *** [test/CMakeFiles/run_tests] Error 1
CMakeFiles/Makefile2:1277: recipe for target 'test/CMakeFiles/run_tests.dir/all' failed
make[1]: *** [test/CMakeFiles/run_tests.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

Hope you can make something useful out of it.

Best,
/edwillys

Hi!

That happens when the plugins cannot be found - not even the basic LV2 example ones. The plugins used for the tests are installed as separate packages. The two packages Sushiā€™s LV2 unit tests depend on are the following:

lv2-examples - at least version 1.16.2.
mda-lv2 - at least version 1.2.2 of drobillaā€™s port - not that from Mod Devices or others.

You can check if they are installed properly on your machine by typing:
ā€˜$ lv2lsā€™

The below should then be part of the listed plugin URIā€™s:

http://lv2plug.in/plugins/eg-amp
http://lv2plug.in/plugins/eg-fifths
http://lv2plug.in/plugins/eg-metro
http://lv2plug.in/plugins/eg-midigate
http://lv2plug.in/plugins/eg-params
http://lv2plug.in/plugins/eg-sampler
http://lv2plug.in/plugins/eg-scope#Mono
http://lv2plug.in/plugins/eg-scope#Stereo

(for the examples)
and:
http://drobilla.net/plugins/mda/JX10
(ā€¦)
For the drobilla MDA port.

If you built without LV2 support, the tests should not have been included to begin with so I expect that the default option of including LV2 was left on in your case.

the lv2ls command is in turn installed as part of the ā€œlilv-utilsā€ package, in case you hadnā€™t installed that.

Meanwhile, I see that there is one error in the last unit test - it gives a segmentation fault, which even if it is because it failed to load the plugin, should not be happening.

Of course let us know if it turns out the above are all in place on your machine, but you still get the errors!

Best,
Ilias of Elk.

I do have all of these plugins installed and they are listed on the output of lv2ls, so I still donā€™t get why those tests are failing.
My workaround was simply to disable the unit tests, as I mentioned in one of the posts above.

If they are listed with lv2ls thatā€™s a whole other issue, very good to know.
Perhaps a dependency version discrepancy. I will look into it!

Thank you!

Ilias of Elk

I have problems running sushi on my VM. This is /tmp/sushi.log:

[2020-04-23 00:18:26.651] [warning] #############################
[2020-04-23 00:18:26.651] [warning]    Started Sushi Logger!
[2020-04-23 00:18:26.651] [warning] #############################
[2020-04-23 00:18:26.651] [info] [main] Setting up Jack audio frontend
[2020-04-23 00:18:27.937] [info] [jsonconfig] Setting engine sample rate to 48000
[2020-04-23 00:18:27.937] [info] [engine] Track main successfully added to engine
[2020-04-23 00:18:27.937] [info] [engine] Connected channel 0 of track "main" to output 0
[2020-04-23 00:18:27.937] [info] [engine] Connected channel 1 of track "main" to output 1
[2020-04-23 00:18:27.938] [info] [vst2] Plugin supports soft bypass
[2020-04-23 00:18:27.938] [info] [jsonconfig] Successfully configured engine with tracks in JSON config file "/home/o>
[2020-04-23 00:18:27.938] [info] [midi dispatcher] Connected MIDI port "0" to track "main"
[2020-04-23 00:18:27.938] [info] [midi dispatcher] Connected program changes from MIDI port "0" to processor "jx10"
[2020-04-23 00:18:27.938] [info] [jsonconfig] Config file does not have CV/Gate definitions
[2020-04-23 00:18:27.938] [info] [jsonconfig] Config file does not have any Event definitions
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/OSC_Mix_
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/OSC Mix
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/OSC_Tune
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/OSC Tune
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/OSC_Fine
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/OSC Fine
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/Glide___
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/Glide
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/Gld_Rate
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/Gld Rate
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/Gld_Bend
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/Gld Bend
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/VCF_Freq
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/VCF Freq
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/VCF_Reso
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/VCF Reso
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/VCF_Env_
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/VCF Env
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/VCF_LFO_
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/VCF LFO
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/VCF_Vel_
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/VCF Vel
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/VCF_Att_
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/VCF Att
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/VCF_Dec_
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/VCF Dec
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/VCF_Sus_
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/VCF Sus
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/VCF_Rel_
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/VCF Rel
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/ENV_Att_
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/ENV Att
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/ENV_Dec_
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/ENV Dec
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/ENV_Sus_
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/ENV Sus
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/ENV_Rel_
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/ENV Rel
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/LFO_Rate
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/LFO Rate
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/Vibrato_
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/Vibrato
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/Noise___
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/Noise
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/Octave__
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/Octave
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/jx10/Tuning__
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter jx10/Tuning
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /program/jx10
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/main/gain
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter main/gain
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /parameter/main/pan
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc output from parameter main/pan
[2020-04-23 00:18:27.939] [info] [osc frontend] Added osc callback /keyboard_event/main
[2020-04-23 00:18:28.235] [info] [jack audio] Updated output latency: 0 samples, 0 ms
[2020-04-23 00:18:28.466] [info] [jack audio] Updated output latency: 0 samples, 0 ms
[2020-04-23 00:18:28.467] [warning] [jack audio] Failed to connect port sushi:audio_input_0, error 0.
[2020-04-23 00:18:28.467] [warning] [jack audio] Failed to connect port sushi:audio_input_1, error 1.
[2020-04-23 00:18:28.472] [info] [jack audio] Updated output latency: 2048 samples, 42.666 ms
[2020-04-23 00:18:34.144] [info] [main] Sushi exited normally.

This is the terminal output:

$ sushi -j --connect-ports -c /home/osboxes/elk/elk-examples/mda_jx10_vst2/config_play_vst2.json
SUSHI - Copyright 2017-2019 Elk, Stockholm
SUSHI is licensed under the Affero GPL 3.0. Source code is available at github.com/elk-audio
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jackdmp 1.9.12
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2017 Filipe Coelho.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
no message buffer overruns
no message buffer overruns
no message buffer overruns
JACK server starting in realtime mode with priority 10
self-connect-mode is "Don't restrict self connect requests"
audio_reservation_init
Acquire audio card Audio0
creating alsa driver ... hw:0|hw:0|1024|2|48000|0|0|nomon|swmeter|-|32bit
configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 16bit little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 16bit little-endian
ALSA: use 2 periods for playback
Destination port in attempted (dis)connection of sushi:audio_input_0 and system:capture_1 is not an input port
Destination port in attempted (dis)connection of sushi:audio_input_1 and system:capture_2 is not an input port

^CJackPosixProcessSync::LockedTimedWait error usec = 426660 err = Connection timed out
JackEngine::ClientDeactivate wait error ref = 2 name = sushi
JackTemporaryException : now quits...
Jack main caught signal 2
Released audio card Audio0
audio_reservation_finish

Nothing shows in Carla. I mean to test OSC. I also tried reinstalling all dependencies from the KXstudio repos with same luck.

Any help is appreciated.

Hi @toani,
seems like a JACK issue.

Could you confirm that you can run other JACK software on that same machine?

Iā€™d also recommend to start the JACK server using Cadence before starting SUSHI, so you can tweak better the parameters. While working on VMs with the virtual sound card driver, I often had to use a very large buffer (4096 or even more); a better alternative is to connect a simple USB 1.1 Audio Soundcard and redirect the USB device to the VM.

I started the Jack server with Cadence. Then, I imported a .wav to Qtractor. No sound comes out after trying every connection. Other players like Audacity do produce sound but nothing Jack based. Failed to connect errors went away though and it would seem as if everything is working (the system must not be properly setup).

Since all I want is testing OSC, Iā€™ll try running the Synth on the Elk board itself. But, I donā€™t have an external USB MIDI device (during the pandemic).

(Question off topic) Is there a software MIDI controller to test the Synth? Can you send me a reference?

Thanks!

PS: BTW. Getting this when using the VST3.

sudo ./Sushi-x86_64_0.10.3.AppImage -j --connect-ports -c /home/osboxes/elk/elk-examples/mda_jx10_vst3/config_play_vst3.json

[2020-04-24 12:27:14.731] [warning] #############################
[2020-04-24 12:27:14.731] [warning]    Started Sushi Logger!
[2020-04-24 12:27:14.731] [warning] #############################
[2020-04-24 12:27:14.738] [info] [main] Setting up Jack audio frontend
[2020-04-24 12:27:15.786] [info] [jsonconfig] Setting engine sample rate to 48000
[2020-04-24 12:27:15.787] [info] [engine] Track main successfully added to engine
[2020-04-24 12:27:15.788] [info] [engine] Connected channel 0 of track "main" to output 0
[2020-04-24 12:27:15.788] [info] [engine] Connected channel 1 of track "main" to output 1
[2020-04-24 12:27:15.789] [error] [vst3] Failed to load VST3 Module: /usr/lib/VST3/mda-vst3.vst3 is not a module directory.
[2020-04-24 12:27:15.789] [error] [engine] Failed to initialize plugin synth
[2020-04-24 12:27:15.789] [error] [jsonconfig] Invalid plugin uid mda JX10 in JSON config file

The vst3 was compiled and placed as /usr/lib/VST3/mda-vst3.vst3.

Hi!

(Question off topic) Is there a software MIDI controller to test the Synth? Can you send me a reference?

The simplest solution, if all you want to do is trigger any notes for testing purposes, is to take a look at our example configurations which are on your boardsā€™ image. For example ~/config_files/mda-vst3-configs/config_play_arp_mda_link.json, starts an arpeggiator on load, using our internal arpeggiator plugin.

While I am not aware of us having included a program on the elk-pi image which may generate notes directly, I do know that you can invoke note-on / off messages on Sushi using our OSC and gRPC APIā€™s.

To see an example of using the gRPC API, look at the python scripts for the example programs of the Faust workshop, minimal or full, they both do this identically. They send such messages over gRPC, in response to buttons being pressed on the control board. You could trigger those messages programatically in your python script.

Finally for the OSC API for sending note on/off messages, please refer to our online documentationā€™s relevant section.

Best,
Ilias of Elk

1 Like