DSP563XX emulation plugins

Sorry for the late response guys, busy times…

Yeah I’m gonna modify the zynthian preset so that these are no longer built.

You need to instantiate the plugins once as that is when the preset files are generated. You can immediately remove them again and then add them once more so that the presets appear. A reboot is not required.

Banks A and B are RAM banks, they are not part of the firmware. In the DAW plugins they are duplicates of banks C and D just to have “something” in there, the plan is that a user can overwrite them and they are persisted as part of the DAW state. But for Z it doesn’t make sense to write them as their content would be identical to C/D.

By default, Osirus/OsTIrus run in “Single” mode, they only listen on channel 1. Multi mode can be activated by the UI or via MIDI sysex command.

Is this a raspi 5 or 4?

You don’t need VST2 support on the Z at all so no worries about that. I will downgrade this to just being an info as we build with the open source FST SDK if the Steinberg version is not available.

FYI we had to change that too. But I remounted it as 4GB tmpfs (we have the 8G Pi 5 version)

A preset that is saved contains the whole state of the synth, i.e. the multi configuration, all presets that are loaded etc.

2 Likes

Hi @zynthianers!

I just pushed to vangelis branch a set of updates that include the DSP56300 emulator binaries and the web configuration tool for managing the ROM files and regenerating the presets.

Also, i’ve fixed the engine so MIDI is translated internally to channel 1, so now the processor will work in any channel. The bad is that you can’t use it in multi-timbral mode, although i hope this is going to change very soon.

Finally, i’ve added some extra MIDI CC controllers to the zynthian UI defaults. This would give some control possibility until full access is implemented. The controller “names” are not correct. Please, @dsp56300, could you point me to a list with the default MIDI CC mapping? Is it different for each preset? It doesn’t seem like that…

Next steps:

  • Implement full access to control parameters
  • Multi-timbral mode

Enjoy!

1 Like

The Virus C MIDI mapping (Osirus):

Virus TI MIDI mapping (OsTIrus):

No the mapping is fixed

2 Likes

Nice! I configured a few as example but the list is long and my task should be completed. Perhaps some volunteer in the crew? Volunteers look at this file:

/zynthian-ui/zyngine/zynthian_engine_jalv.py

Yes. It’s still a dirty “hack” and it should be in a separated file, but it would bring us extra fun while awaiting the full access to parameters :wink:

Enjoy!

2 Likes

Hi @dsp56300 and @jofemodo!

Thanks for the very promising updates, and for having advanced further on the way of fully integrating Osirus and OsTIrus in the Z.

Indeed, following the procedure suggested by @highsiderr, I have been able to build a multitimbral OsTIrus snapshot based on a Multi preset created on VNC, which appears to be recalled upon reloading the snapshot, even if VNC is then switched off. For the time being, this is a viable workaround, for achieving multitimbrality in Zynthian without complete integration.
BTW @dsp56300, I haven’t found a specific option for saving Multis in the plugin’s GUI, but is seems that saving from Preset Browser with Multi activated does the trick… Is this correct?

This alone (without forgetting the new amazing graphical envelopes) is a for me a HUGE motivational encouragement to trying Vangelis on one of my Zynthians :wink:. Since I have configured my V 5.1 and custom Pi5 with parallel setups, I plan to devote my good ol’ V4 to testing Vangelis OS, even if it cannot sustain the DSP emulators in terms of CPU strength.

I am not sure if I can really help in any way with python code, but please tell me @jofemodo if there is something I could help with using my general IT knowledge.

Best regards to everybody! :smiley:

1 Like

Just use what you can of it and create. That is ultimately what this game is all about.

And don’t worry I will be along to demand anything produced …!

1 Like

It’s not difficult at all. Just continue the work i started:

For Osirus:

           'Osirus': {
                '_ctrls': {
                    'volume': [7, 98],
                    'panning': [10, 64],
                    'modulation wheel': [1, 0],
                    'sustain pedal': [64, 'off', ['off', 'on']],
                    'LFO1 osc1 amount': [74, 64],
                    'LFO1 symmetry': [71, 64],
                    'LFO1 CC72': [72, 64],
                    'LFO1 CC73': [73, 64]
                },
                'main': ['volume', 'panning', 'modulation wheel', 'sustain pedal'],
                'LFO1': ['LFO1 osc1 amount', 'LFO1 symmetry', 'LFO1 CC72', 'LFO1 CC73']
            },

And for OsTIrus

            'OsTIrus': {
                '_ctrls': {
                    'volume': [7, 98],
                    'panning': [10, 64],
                    'modulation wheel': [1, 0],
                    'sustain pedal': [64, 'off', ['off', 'on']],
                    'LFO1 osc1': [74, 64],
                    'LFO1 waveform contour': [71, 64],
                    'LFO1 keyfollow': [72, 0],
                    'LFO1 trigger phase': [73, 0],
                    'LFO2 osc1': [86, 64],
                    'LFO2 waveform contour': [83, 64],
                    'LFO2 keyfollow': [84, 0],
                    'LFO2 trigger phase': [85, 0],
                    'portamento time': [5, 0],
                    'noise osc volume': [37, 0]
                },
                'main': ['volume', 'panning', 'modulation wheel', 'sustain pedal'],
                'LFO1': ['LFO1 osc1', 'LFO1 waveform contour', 'LFO1 keyfollow', 'LFO1 trigger phase'],
                'LFO2': ['LFO2 osc shape 1+2', 'LFO2 waveform contour', 'LFO2 keyfollow', 'LFO2 trigger phase'],
                'Miscelanea': ['portamento time', 'noise osc volume']
            }

We need to complete the dictionary of controllers “_ctrls”. The first number is the CC number and the second one, the default value. Note that we have no value feedback from the plugin yet.
When this is done, create the screen groups with 4 controllers each (maximum, they could have 2 or 3).

It’s a boring task but it would bring you big pleasure when it’s done. And you would have the privilege of grouping the parameters as you like :wink:

The full MIDI mappings for Osirus and OsTIrus have been shared by @dsp56300 in a reply above.

Regards,

3 Likes

Ok, thank you @jofemodo, this is perfectly doable, and I can certainly contribute to the task while listening to some good music in my studio during spare time!

I will adopt common criteria of synthesis signal chain, for grouping each set of four controllers to be managed by the four encoders (or less when required). You will then be able to rearrange them in a different fashion if you prefer.

Best regards :slight_smile:

5 Likes

Yeahhh!

1 Like

I had some spare time today, so I worked on the dictionary of controllers for OsTirus. Most of this file was AI generated. I own a Virus TI but I don’t have the TI engine installed on Zynthian, so I couldn’t test it to see if it loads properly. I asked the AI to set all parameter values to 0. The ‘main’ group was taken from @jofemodo example and those have the values set to those shown in the example. The AI was instructed to list the parameters in the order they appeared in the OsTirus MIDI mappings shared by @dsp56300 . Hopefully, there are not many errors and someone will find this useful.
OsTirus parameters.txt (6.9 KB)

Hi @ronsum!

Thanks, this is an interesting example of AI assistance for the human user! :slight_smile:

I already undertook the task yesterday evening, starting from oscillators and so on, but if you don’t mind I will take this automatically generated dictionary and format it in py, according to the required syntax (screen controllers must have the same name used in the CC dictionary) and adopting a grouping rationale for the sequence of controller screens.

Just, please notify here today if you are already performing yourself this task, for us not to waste time doing the same work in two people! :wink:

Best regards

Hello, my Zynthian Ui hangs when I load Ostirus and select a preset.
With Osirus everything works normally.
To check if it is due to the previous installation, I have installed a new image and installed Osirus and Ostirus as instructed by the Zynthian development team.

-sounds can be heard and played.
-Plugin Access via VNC engine possible.
-Zynthian UI hangs.

The Zynthian UI remains hang again even with the new image installed.

Could you be more verbose?
You only have to change to vangelis branch and update. Then, you upload your ROM file from the webconf. Nothing more.

If previously you installed the plugins by hand, it should work too. I tested this case.
Could you send a screenshot from your webconf dashboard?

Regards,

That’s exactly what I did .

-Last Stable image downloaded
-Wrote new image to sd card
-first start
-Changed repositories
-Upgrade to Vangelis
-restart
-Install and activate Osirus / Ostirus via Webconf
-upload firmware via Webconf

Do you mean enable, right?
There is nothing to install.

yes.

It works for me. You should take a look to the UI logs to see the errors.

Regards,

1 Like

Something is wrong with the read and write permissions.
I will try another card tomorrow, maybe it will solve the problem.
I don’t have time to test it today.

New SD same problem.
Short video…
Must be at work now

I can’t reproduce the issue, but if the UI gets frozen like this, for sure it’s logging some error, so please, send the UI logs.

Regards