Access Virus C on Zynthian (DSP 56300 emulator)

Here’s what I’ve done to get it working.
Requires ssh access.

Installed from the base image here
https://os.zynthian.org/test/2024-05-22-zynthianos-bookworm-aarch64-oram-2405.zip
Updated the OS from a terminal. Updated Zynthian from the webconf interface.
Got it booting from an NVMe drive.

Installed all the plugin versions of the Osiris instrument, but have only been able to get the VST3 version working.
(“zynthian-ising” the LV2 version looks to require all the patches as ttl text files?
(If there’s a way to grab them from sysex exports, that should be possible?)

Copy the Instrument ROM file to the same directory as the plugin - /usr/local/lib/vst3/
Install Carla as the vst host
apt install -y carla

To get a a workable interface, what I’ve done is start up a vncserver session on remote display #2.
The reasoning for this is that:

a) If you start carla from an ssh session, you’ll get the Carla UI showing up over the Zynthian UI, without “window decorators”, so you can’t move or resize the windows. Then if you open up the instrument preferences, you can’t move that dialog to close it again!
b) If you have ZynAddSubFX instantiated, that starts it’s own vnc session on display #1

How I did this is based on something I set up for my home primary NAS - this has a secondary vncserver running as the same user as I would log into the desktop with, but using a different window manager as otherwise Nautilus (on Ubuntu) gets confused about multiple sessions.

Here, we have to run this extra vnc session as the root user (the default for Zynthian) as Carla needs to connect to the same Jackd instance, to be able to ‘plug in’ to the signal routing.

mkdir /root/.vnc
vim /root/.vnc/xstartup

press i to enter insert mode

NOTE: This will need changing to make it more user-friendly and not require typing in termal commands. Instead starting carla automatically
paste what is in the code box

#!/bin/sh -x
PS1='\u@\h:\w\$ '

[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid blue
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop Clara" &
export DISPLAY=:2
/bin/sh /etc/X11/Xtigervnc-session
x-window-manager&
/usr/bin/xfce4-panel --display=:2&
# wmaker -display :2
/usr/bin/carla

save and exit the above - press escape, then :wq
make executable
chmod +x /root/.vnc/xstartup

To start the vncserver (more easily):
vim /usr/local/bin/startvnc
press i again to enter insert mode. paste what is in the box below

#!/bin/sh
vncserver -geometry 1920x1080 -depth 16 -localhost no :2

press escape then :wq
to save and exit.
then
chmod +x /usr/local/bin/startvnc
to make it executable
execute that script to start the vncserver on display #2
/usr/local/bin/startvnc

This will probably prompt you to set a password, so do that.
Connect from another machine using your vnc client
zynthian.local:2

Hopefully, this should bring up a remote desktop with a terminal already started.
The following will be made automatic when I’ve got a bit more time to figure out how Zynthian is built differently from a desktop linux install.
in that terminal, type

export DISPLAY=:2
carla

This should then start the clara session.

Ensure the engine is started (press F5?)
Scan plugins
plugin menu > Add plugin ➝ refresh
Add the Osiris vst3 plugin to the ‘rack’
Make sure the power button on the ‘rack’ is green! Otherwise you won’t get any sound.
Click on the patchbay tab.
Connect up the events-in block to whatever channel you want on the “ZynMidiRouter”.
Connect up the Osiris outputs to either “ZynMixer” or “System” to get audio out of the thing.
I’m not sure which is the ‘correct’ option here?..

Then, hopefully, with the Osiris instrument highlighted in the patchbay display, clicking on the keyboard at the bottom of he screen should get you some sounds!

If you go back to the ‘Rack’ tab, clicking on the cog icon gets you the Instrument GUI.
Clicking on the spanner icon there will bring up the Edit/Parameters dialog. This will allow you to set up midi controller assignments.
Don’t forget to save this as a Carla setup file, as then later you can use that as a parameter to auto-load it when starting the application.
That’s pretty much it.

If there’s a more “official” way to get Carla running or to integrate VST instruments, I’d be happy to listen.

Good luck!

2 Likes

Thanks @gadg3ts, this is a really impressive report on your procedure! :clap: :clap:

I will try to replicate your steps, however you clearly demonstrate a pretty agile degree of CLI interface command.

By installing the VST3 aarch64 plugin do you maybe mean reaching the usr/local/lib/vst3 directory via SSH, copying manually the plugin file in the folder (where obviously the BIN firmware file is also required to go)?

The .deb package (DSP56300Emu-1.3.14-Linux_aarch64-Osirus-VST3.deb) installs the plugin to /usr/local/lib/vst3/Osirus.vst3
The firmware file goes next to that.
So something like /usr/local/lib/vst3/access_virus_firmware.bin

copy the .deb/firmware files to the Zynthian box using whatever method you can (WinSCP works for windows), and install the plugin using
dpkg -i DSP56300Emu-1.3.14-Linux_aarch64-Osirus-VST3.deb
If the firmware file isn’t in the correct location when you open the plugin, that will complain.
Does that make sense?

Linux has been my day job since about 1997.
My first sampler/sequencer was the “RAM Electronics Music Machine” for the Spectrum, maybe about 1984? and I still have both of those things :smiley:
Zynthian I found a couple of months ago when I was looking for a cheaper alternative to the 1010Music Blackbox for playing longer samples.

4 Likes

Ahhh, then we are about of the same league! Thank you fur the added and thorough explanation :grinning:

I was pondering just this week how long I should keep the hoards of stuff I built or accumulated in the 1980’s. It sits in sheds, garages, lofts, etc. unloved and half forgotten and I know it will never be useful but nostalgia is powerful. The process of sorting through this collection of junk during the next house move can prove cathartic so it may survive a few more years…

1 Like

A bit OT for the thread, but…
A few years ago I got rid a load of old mini-tower cases and monitors. They had to be disposed of by a proper IT disposal company as the circuit boards may contain “hazardous substances”.
For everything else there’s Ebay!
Let your junk and clutter be someone elses! :smiley:

Just a bit of an update.
I’ve managed to get the vncserver to run on startup & also have carla auto-running in that session.

Updated /root/.vnc/xstartup

#!/bin/sh -x
PS1='\u@\h:\w\$ '
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
export DISPLAY=:2
xsetroot -solid blue
x-window-manager &
/usr/bin/xfce4-panel --display=:2 &
/usr/bin/carla /root/default.carxp

Where /root/default.carxp is the carla project file you saved earlier with your selected instruments already loaded.

As there is only one command in the /usr/local/bin/startvnc script, we can roll that into /etc/rc.local
(and so…)

To get this to run automatically on boot, you need to enable the execution of /etc/rc.local as per these instructions:

and then the /etc/rc.local file should contain

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi
export HOME=/root
vncserver -geometry 1920x1080 -depth 16 -localhost no :2 &
exit 0

Although you could shorten that to

#!/bin/sh -e
export HOME=/root
vncserver -geometry 1920x1080 -depth 16 -localhost no :2 &
exit 0

So once that is all started you can connect with your vnc client to (for example):
zynthian.local:2

1 Like

I remain confused as to why you don’t enable and use the VNC servers already configured in zynthian.

Hi @gadg3ts !

Why not focusing on having a working LV2 plugin? This would allow easy integration with zynthian-ui, VNC and all.

Regards,

Because (as far as I an see) they don’t start with window decorators and so you can’t then move the windows.

The “engines” VNC session runs a desktop with decorators, menu bar, launchers, etc. (It even has virtual desktops which I intended to disable but forgot!)

I will be trying to make that happen once I have read how the LV2 plugins work. :smiley:
Is there any existing documentation on how to (automatically) create the ttf file patch lists etc?
I did have a look at how Dexed is configured for this, but currently it doesn’t make a lot of sense.

Aha!
I did not know this, I’m still new. :smiley:
Is that on the same session that mod-ui uses?

No. Mod-ui creates its own web server and does not present a desktop via VNC. In webconf you can enable VNC after which you can access VNC via a VNC client or web browser.

Right. Yes.
But that vnc display is equivalent to :0 on port 5900 which is the same as the primary display?
If I then ssh in and set DISPLAY=:0 and start carla, that interface (also) appears on the device screen, which isn’t what I want in this case.
Mainly because it’s really small…
Having the vncserver independent of that (on display :2) means you can have it whatever size you wish.
Does that make sense?

Enabling VNC in zynthian provides two VNC servers. The first mirrors the main UI on :0. The second is a desktop on :1.

Aha. I appear to be missing that.
Is there some terminal magic I can run to enable it?
Or should I flash the system with the latest release image?

No, it has been standard for many years. Enable VNC in webconf. Reboot. Access desktop via VNC or web browser. There will be a link in webconf menu.

You can also enable VNC from admin view and don’t need to reboot.

Regards

1 Like

OK.
My pi4 machine had the :1 vnc display active, but on the pi5 machine I had to recreate the /root/.vnc/passwd file for that to work.
So now (for the present time) I can run carla on that screen for the instruments (and not have to reinvent the wheel!)

Moving forward, to get these 56300 instruments working ‘natively’, is it going to be worth me trying to unpack the sysex patch files from the instruments into the turtlescript format?
For example, one of the Dexed presets as per:
/zynthian/zynthian-data/presets/lv2/dexed_DX7II_FD-Voice32-A.presets.lv2/DX7II_FD-Voice32-A_Trumpet_B.ttl
has all the voice parameters for that instrument.
Unless this sort of convertor already exists somewhere?..