Cabbage Logo
Back to Cabbage Site

Problem displaying waveform with gentable and problem exporting in .vst

Hi everyone, I wanted to ask about two problems that I can’t solve:

the first:
I created a wavetable synth via ftmorf and poscil3, I scroll the wavetable reading index from a cabbage widget and view the morphed ftable via gentable. The display with gentable works perfectly in cabbage,

Schermata 2022-02-08 alle 14.33.19

but when the plugin is in a DAW it works only when the window is first opened, if I close and reopen the window the gentable is displayed like this:

Schermata 2022-02-08 alle 14.33.27

at the audio level, morphing continues to work.
In the code I have an instrument that is triggered in the i-statement via MIDI, the audio signal is inserted into a global audio variable (gaout ) and is received by an instrument (started by the score at time 0 for a week)

instr 29
adisplay = gaout * 0.3
display adisplay, .009, 0.01
dispfft adisplay, .009, 256
endin

Second problem:
For some time now (I don’t remember from which version onwards) I can no longer export my plugins in vst format. I’m on an Intel Mac running High Sierra and currently have the latest cabbage beta installed (2.8.97). I tried to install the latest release (2.80) and various betas back in time but the error is always this:

appendix: I tried to install the new release of CSound 6.17 but every time I run my synth Cabbage it crashes, with 6.16 it works perfectly… dunno

Best stick with 6.16 for now. I haven’t yet build with 6.17, there might be some API changes which cause some issues.

Are you updating the table in your code, by calling tableNumber()? I just tested the SimpleTable.csd file from the examples and it works fine when loaded as a plugin. I can close and reopen the editor without any issues. Would you mind testing that one?

First thing to do is check the Cabbage.app bundle - look into the Contents folder and you should see a load of plugin files called CabbagePlugin, CabbagePluginSynth, etc. If they aren’t there something is not right.

Secondly, can you try exporting to a user folder rather than a system folder, for example, i always export to ~/Library/Audio/Plugin-Ins/etc, trying to export to a system folder might not work as Cabbage may not have the required permissions to do this. I haven’t got any other reports about problems with exporting plugins. Might just be a permissions issue.

Hi Rory, thanks for the answer

You are right,noob error, the table number in the updating instrument was wrong. Now it’s fixed.

Inside the contents of the app bundle there are all the various plugins you say

yes, I noticed some time ago that it gave problems exporting to system folders. But I’m exporting to a folder on the desktop, the AU export works perfectly and works great on ableton. With .vst continues to give problems. same thing if I try to export with .vst3 extension.

Despite the error in the screenshot, the .vst file is created but the Resources folder is missing inside. Excluding the SynthResources, UDOs and Waves folders this is the contents of the .vst file.

I imagined, I tried because I was curious to implement something with the new opcodes hehe

The latest build doesn’t create a Resources folder by default. It’s no longer needed. But the UDOs and other folder should contain anything that was passed to the bundle() identifier? How are you doing that? Can you post the form line?

yes i use bundle()

form caption("KernelNet") size(1300, 600), openGL(1), pluginId("KK04") bundle("./SynthResources", "./KKWave.snaps", "./UDOs", "./Waves") guiMode("queue")

Odd, and nothing gets copied over? This sounds like you don’t have permission. Can you try exporting to your Documents folder?

I tried, same error in Cabbage, the .vst file is created but not read by any DAW unfortunately.

Meanwhile, I noticed a problem. exporting the AU with build 2.8.97, inserting it into a project, create a sound, save the project. when I reopen it loads the synth with the default values, not memorizing the latest changes. Exporting the AU with 2.8 the widget values remain stored in the project

It really appears to be some kind of permission issue, that’s why those files couldn’t be copied, and it’s also why you get that popup error. It’s also the reason why your VST is named CabbagePluginSynth rather than KK01. All of these are reasons why it won’t open. I just can’t think why this is. When you export the same synth as an AU, do the assets get copied over Ok?

I don’t know what to say, I tried to move the app, I tried to move the .csd files but it always gives me the same error, I am attaching the project, maybe you try if it works for you

https://drive.google.com/file/d/1Jeez30Bah_SEK71hgSOLAoZIellHig1N/view?usp=sharing

Thanks, I’ll try tomorrow :+1:

1 Like

Yeah, looks like something is not right with 2.8.97, I’ll take a look…

I have triggered a new beta build that should resolve this problem. It was a result of some work I did on the standalone export. Hopefully you get further with this now…

hi rory, sorry for the delay in replying. I tried to download the latest build from Azure but the installer for OSX is missing inside the zip there is the source for linux and windows installer

https://dev.azure.com/rorywalsh/cabbage/_build/results?buildId=2165&view=artifacts&pathAsName=false&type=publishedArtifacts
Schermata 2022-02-10 alle 12.39.11

Crap. Looks like something is going wrong in the Azure build. Let me take a look.

[edit] The packages software I use to create the installers was updated recently. The build script I use couldn’t find the new version and was failing. It should complete this time. New build triggered.

Thanks again Rory, I downloaded the new build! now it no longer gives the error when exporting. The .vst and .vst3 files are exported correctly only the DAW does not detect them. To avoid that it could be an error in my code I took a random example from the folder, built, but it is not recognized either

[edit] I tried to do an export in AU and it works perfectly only that it continues to have the problem that when I save the project in the DAW, it automatically loads the Synth with the Default values without memorizing the positions of the widgets when saving the project

Are you signing the plugins after you export them? Check out the sticky page on the forum about issues with MacOS. I will try to look into that session saving issue later today…

So the problem here is that you’re not using valid XML for your channel names. I had introduced warnings about this, but due to popular demand rolled back on them. Anyhow, the be-all and end-all is to make sure you only use valid XML attribute names.

  • Attribute names cannot contain spaces. An attribute could be called FirstName but not First Name.
  • Attribute names must begin with a letter (or the underscore). So, Four11 would be an acceptable attribute, whereas 411 would not.
  • Attribute values must be enclosed in quotation marks.
  • An element may have only one attribute of a given name.
  • Attribute content may not contain <, >, or &.

So in this case, remove the ‘_’ and things should be fine.

Thanks Rory
eliminating all the “_” did not solve the detection problem in the DAW but in the meantime, good to know, I fixed everything. I tried several times to do the codesign but it always gave me the same error that is:
/Users/francesco/Desktop/KK10.vst: replacing existing signature
/Users/francesco/Desktop/KK10.vst: resource fork, Finder information, or similar detritus not allowed

Typing the commands xattr -lr KK10.vst lists all the files with problems.
then typing xattr -cr KK10.vst and re-typing the command sudo codesign -s - KK10.vst --timestamp --deep --force is finally successful and now the plugin is displayed without problems by all the DAWs

I currently have High Sierra in my mac, if I want to distribute this plugin for newer OSX versions I have to pay 99 $ per year as described here, am I right?

Instead, to make an export compatible with the M1 chip, do I have to have one at hand, install cabbage and export the vst from there? Always keeping the speech of the Apple developer account etc.

Technically yes, but you can always get your users to sign the plugin manually on their end if they wish. I think local ad-hoc signing will work regardless of the OS.

The plugins you exports from your 1013 machine should work fine on an M1 machine, so long as they have a DAW that can handle x86_64 plugins. If you want to produce universal binaries for M1 machines, you will need to have one yourself so that you can create arm64 plugins.

maybe I could insert in the distribution package a script that executes the codesign command? it could be an idea?
Anyway thanks as always Rory for all the informations and support, I will test on M1