Cardinal (VCV Rack) plugin

I have compiled Cardinal and also patched it to enable some more advanced OSC interface. Our friend falkTX who maintains Cardinal is not keen on some of these changes and they are not robust yet so I submitted a PR upstream. I am using Cardinal (outside of Zynthian) on RPi4 as a PoC for a project. It mostly works on a 64-bit RPi. That project may inform our consideration of whether Cardinal fits well in Zynthian.

2 Likes

Unfortunately I havenā€™t been playing with Zynthian recently either, but I do have a recurring half-idea for a Cardinal-running module as well:

  • Raspberry pi (or orange pi) with Wifi, running a minimal system with buildroot, jack, jalv or modhost, and Cardinal
  • Custom ā€œhatā€ PCB with an I2S audio DAC, and a RP2040 (or similar) running a CV-to-MIDI (over serial on a high baud rate) and one or two push encoders (also through MIDI)
  • Mini I2C screen, e.g. one of those cheap OLED displays

This should give 2x audio in, 2x audio out, 2-4 CV in at reasonable almost-audio speed, and no ridiculous costs in components. Well, beyond the time spent creating the schematic, PCB, and getting the software to play together :slight_smile:

Any updates on this?
I was recently discussing this with someone who wanted to use some of the Mutable Instruments equivalent modules in Zynthian.

Hey @riban - do you happen to know if those Pull Requests were accepted?

The PR was rejected. Upstream is not interested in making Cardinal work headless. They consider it as a GUI application. I have tried to abstract the core (non-gui) elements but it is challenging because of the heavy GUI integration. (That was for another project but the learning does support upstream preference to only support GUI use.)

I am still sceptical how well this fits into zynthian. We could add it as a special engine (like mod-ui) with limited zynthian UI integration and depend on native web-based configuration. This requires significant effort so, before embarking on such a task, we should test the validity of adding it. (I am not a fan of mod-ui in zynthian because it doesnā€™t offer much more than a pretty UI over what zynthian offers natively.) We donā€™t want to add the burden of supporting a fork if there is limited benefit to just a few users.

3 Likes

Pity. It would have been nice if patches could be loaded into it a la PureData.

Speaking of PD, I see that at least some of the modules we were discussion are available as PD externalsā€¦

Iā€™m working on a PD version of Mutable Instruments Plaits and will post it when completed.

6 Likes

Hi @rosum,

I did this once with 0-coast, and the possibility to change the patch with virtual cables on the fly. It was quite functional, but a bit CPU heavy in the end.
If youā€™d need help with the zynthian integration (json file to get the controls usable in the UI), donā€™t hesitate ā€¦

Another approach would be to use the DSP code and build a lv2 plugin for this using the DISTRHO framework. Then you could have multiple instances of plaits running in zynthian. If Iā€™d only had the time for this ā€¦ :thinking:

Good luck

BTW - I didnā€™t want to capture this topicā€¦

Oh, thatā€™s a good idea. Iā€™d really like the physical modelling modules like Elements and Rings as lv2 plugins.
Itā€™s just a pity I hate C++ with the heat of a thousand fiery suns. :fire:

1 Like

That is really hilarious @Kirtai :smile:

What is the origin of such uncompromising hate, for the good olā€™ father of all current programming languages? Just curious: you certainly have well-founded reasons based on disappointing experiences!

Most of my programming has been done in Lisp and Smalltalk :laughing:

1 Like

After a short research I found i.e. this lv2 mutable instruments clone source:

I tried to compile on my desktop. After a second make call it compiles, the lv2 plugins showed up in carla, but I didnā€™t manage to get any sound, i.e. by using the ā€œpoly macro oscā€.
Also, because of being a eurorack module it has a lot of CV in- and outputs.

Another idea would be to compile the puredata libraries of the MI clones on zynthian, and then use pd to get access to them.

If Iā€™d had the time ā€¦ a pityā€¦
Regards

Is it, perhaps, becoming a little rusty in itā€™s old age. . . ?

Python is as far as a disinterested user should go.

Down there be dragonsā€¦ & PD Peopleā€¦

Good isnā€™t it?

No love for ZZT-OOP?

EDIT: I was joking, but then I realized my introduction to making electronic music was trying to make PC speaker covers of Metallica riffs in ZZT-OOP when I was like 11. Itā€™s been downhill from there.