Cabbage Logo
Back to Cabbage Site

Gentable not updating when exported as vst

Hello, I’ve made a midi step sequencer that works as expected in Cabbage but seems to have problems when exported as vst (in ardour or qtractor).
This is the csd with a subfolder containing presets files TPZ_5LimbsDrumSeq.zip (8.8 KB)

Seems that when updating preset (some ftables are loaded from text files) the gentable widgets are not updated. Could it be that I’m still using IdentChannel to communicate from csound to GUI? Are midi effects not supported? Anything else I should look after?

I’m using cabbage 2.7 built from sources yesterday on a Debian 10 machine.
Ciao
Stefano

They are. But I’ve never tried them on Linux. I’m just going to test your plugin in the debugger…

I’m testing this here and I get a crash on start. If I comment out instr 1 it passes validation. What version of Csound have you been developing with :thinking: I’m using 6.16.1

–Csound version 6.17 (double samples) Jul 6 2021

Ok, looks like you are using a newer version than me. Let me try it out with the Cabbage host and see if I can get any better errors there…

I know there is an error sayin that can not open a file at startup:

INIT ERROR in instr 16 (opcode fini) line 157: errore in apertura file ‘000_empty.pres’

but it didn’t block running it

Yeah, that’s it. I get a performKsmps()crash from the Csound library. But Csound shouldn’t crash? I imagine this is the reason why the gentables don’t update, because Csound is not running :thinking:

I think csound is running since there are images (gray rectangles above the gentables) moving according to csound counter.
I’ve removed the error above by adding 1 second delay in the initial call of instr 11 (line 424);
event_i "i", 11, 1, -1;presetmanager
so the array containing filenames/presets is filled (with instr 10) before calling the first file/preset via instr 11.
Unfortunately this does not solve the issue when exporting to vst.

Thanks. I tried that but I’m afraid it appears that’s not the problem. I still get a crash in the Csound library :thinking:

[edit] I’m going to test on Windows now…

It works for me fine on Windows, but I did need to modify the path to the presets and make a slight change to the listbox class. Pull again from develop, although I don’t think that was the issue. I really need to set up a debug build for Csound on MacOS. It crashes bad there.

I will have to test this on Linux myself. I’m not sure when I’ll get a chance, hopefully today at some point, but I can’t promise. :grimacing:

I just tested here on Linux and it runs fine with the latest dev tip. I tested in Reaper and Bitwig. :thinking:

I just tested with Ardour, and it’s not working there. Just downloading their debug version…

Just to confirm that on ardour (just built cabbage develop branch) still doesn’t work

[edit] Tested also with Tracktion7, same wrong behaviour as ardour

It seems that you are constantly updating the tables? If I mod this instrument here by commenting out the first call to event, it seems to work fine. Should you not also be guarding this with a changed?:

instr 15 ;change preset depending on mode
   kmode chnget "changePresetMode"
   
   if kmode == 1 then;free
        ;//event "i", 16, 0, .1
        turnoff
   elseif kmode == 2 then;best loop1
        if changed(gkpattern1beat) == 1 then
            event "i", 16, 0, .1
            turnoff
        endif
   elseif kmode == 3 then;end loop1
        if gkpattern1loop == 1 && changed(gkpattern1loop) == 1 then
            event "i", 16, 0, .1
            turnoff
        endif
    endif
endin

Strange!
After the line you commented there is a turnoff so once instr 16 is triggered instr 15 should kill itself immediately.
For your info Instrument 15 has the if condition to allow change preset instantly (the one you commented out), at the next step (quantized) or at the end of the loop.
I’ve tried to comment the event line but without success, maybe could be the version of ardour I’m using (5.12.0-3 from debian repository that i think is quite old) :thinking:

I updated and testing with 6.8.8. So I’m on the latest version. I also tested with 6.0 and it worked there too… :thinking: