Cabbage Logo
Back to Cabbage Site

Cabbage 3 - latest rewrite

I’ve rewritten Cabbage 3 for the second time, in the hope of creating a better version of the software. I’ve dropped iPlug as the main plugin framework in favour of my own, which is based on the CLAP plugin format. Cabbage still supports the same plugin formats, but can now target CLAP, although this has yet to be enabled. For the end user, only one thing will be different from the first alpha of Cabbage 3: Cabbage doesn’t launch each time you run an instrument. You must instead start the Cabbage server when you wish to use Cabbage. To do so you just click here within vscode:

image

With the server running, any .csd file you save with a valid Cabbage section will open the instrument’s UI in a new tab. This solution also means we should be able to avoid issues with websocket connections that plagued the first alpha releases. @Lovre, @hdale94, @Alejo, would you mind taking this for a spin?

p.s. You should update your settings when you first install to ensure all path fields are empty. This build should be clever enough to work out all the paths. :+1:

2 Likes

Hi there!
I was just wondering what the current status of Cabbage 3 is. I’ve been working quite a bit lately on a project that’s already fairly advanced using Cabbage 2, so I thought I’d drop by to see what’s new. I’ll try out this new version of Cabbage 3 when I get a chance to see how it feels and give some feedback.

I’d say if you want to develop your own UIs then take a look at Cabbage 3. But if you’re happy with the current UI options, stick with Cabbage 2 for now. :+1: But, also, I would greatly appreciate you trying to simply install Cabbage 3 every now and then, just so I can get some feedback as I write it :slight_smile:

For now, I’m not planning to make the switch until it’s more stable, but I’m definitely curious. The integration with VS Code seems interesting—if everything works smoothly. I’ll give it a try this weekend and let you know how it goes.

1 Like

It works and sound on my laptop, but not on my PC. I think I made the mistake of deleting the old version on my PC and then installing it, and then I lost the correct configuration I had, which I had a hard time getting to before. In my PC with Windows 10 I see drivers that don’t seem to be ASIO, and the instrument compiles, but I get no sound and some Wasapi audio error. When I select the ASIO option, it still shows the same drivers.
I can try some things on my laptop, but it’s more limited; for some reason, Cabbage 3 seems to work better with it. I tried to export vst3 in the notebook where it is working and it gives me this error …Could not find win64 directory

You should be able to delete your config file and start again. That should create a new file. Cabbage is a little better at finding things now so you shouldn’t have to set any paths. I’ll do some work here this morning on the export stuff and see if I can recreate.

Hi Rory, sorry I was swamped recently but I still play with Cabbage in my free time!

I will try Cabbage3 very soon. I am going to write a new plugin soon, do you think it would be a good idea to do it with Cabbage3?

Thanks!

I think if you want to create a special UI, then give it a go :slight_smile:

I have deleted the settings.json file, when I re-enter Vs Studio Code, no driver appears to choose from in the “Select Audio Output Device” option and nothing appears in “Select Audio Driver” either. The settings.json file now appears almost empty:
{
“currentConfig”: {
“audio”: {},
“jsSourceDir”: “c:/Users/ALE/.vscode/extensions/cabbageaudio.vscabbage-1.0.46-alpha/src”,
“midi”: {}
},
“systemAudioMidiIOListing”: {
“audioDrivers”: “”,
“audioInputDevices”: {},
“audioOutputDevices”: {},
“midiInputDevices”: {},
“midiOutputDevices”: {}
}
}

It seems as if deleting it created a new settings.json that didn’t detect any hardware.

Ah, can you try something. Can you try opening the CabbageApp file in teh csvode extensions folder? Running that once should populate the settings file.

When running CabbageApp.exe it shows the following error:

Lattice INFO: Attempting to connect to WebSocket at ws://localhost:9991
Lattice DEBUG: Connection error: Unable to connect to localhost on port 9991, error: Connect error: No error [CabbageAudioApp.cpp (360) CabbageAudioApp::initialiseWebSocketConnection::<lambda_1>::operator () Thread ID: 15208].

Then when I enter Vs Studio everything remains the same

That’s to be expected when its run outside of vscode. But do you see anything written to settings.json after you manually start the app?

The same as before:
{
“currentConfig”: {
“audio”: {},
“jsSourceDir”: “c:/Users/ALE/.vscode/extensions/cabbageaudio.vscabbage-1.0.46-alpha/src”,
“midi”: {}
},
“systemAudioMidiIOListing”: {
“audioDrivers”: “”,
“audioInputDevices”: {},
“audioOutputDevices”: {},
“midiInputDevices”: {},
“midiOutputDevices”: {}
}
}

Thanks, that’s a new, unwelcome development. I’ll try to get it sorted asap :+1:

@Alejo There is a new version now. This one should write the audio devices to the settings file when the Cabbage server is started :+1: Can you let me know?

Some audio drivers have appeared, and I have the impression they’re Windows drivers, not ASIO. When I click “Select Audio Driver,” I don’t see any options and get the message “No driver selected.” When I click “Select Audio Output Device,” I do see the two drivers listed in settings.json, but they don’t produce any sound. When compiling the instrument, I see the interface but there is no sound, and I see this in the console: Lattice DEBUG: Attempting to initialize audio with the following configuration:
SR: 48000
Buffer size: 256
Input device: Built-in input
Number of input channels: 2
Output device: Speakers (MOTU Pro Audio)
Number of output channels: 2 [CabbageAudioApp.cpp (516) CabbageAudioApp::initializeAudio Thread ID: 3104]

Lattice DEBUG: RtApiWasapi::wasapiThread: Unable to initialize audio capture client. [CabbageAudioApp.cpp (545) CabbageAudioApp::errorCallback Thread ID: 11744]

Lattice DEBUG: {“command”:“initializeWidgets”,“text”:""} [CabbageAudioApp.cpp (235) CabbageAudioApp::initializeWebSocketConnection::<lambda_1>::operator() Thread ID: 3104]

This is settings.json:
{
“currentConfig”: {
“audio”: {
“bufferSize”: 256,
“outputDevice”: “Speakers (MOTU Pro Audio)”,
“sr”: 48000
},
“jsSourceDir”: “c:/Users/ALE/.vscode/extensions/cabbageaudio.vscabbage-1.0.47-alpha/src”,
“midi”: {}
},
“systemAudioMidiIOListing”: {
“audioDrivers”: “”,
“audioInputDevices”: {
“In 1-2 (MOTU Pro Audio)”: {
“deviceId”: 131,
“numChannels”: 2
},
“In 1-24 (MOTU Pro Audio)”: {
“deviceId”: 132,
“numChannels”: 24
}
},
“audioOutputDevices”: {
“Out 1-24 (MOTU Pro Audio)”: {
“deviceId”: 129,
“numChannels”: 24,
“sampleRates”: [
4000,
5512,
8000,
9600,
11025,
16000,
22050,
32000,
44100,
48000,
88200,
96000,
176400,
192000
]
},
“Speakers (MOTU Pro Audio)”: {
“deviceId”: 130,
“numChannels”: 2,
“sampleRates”: [
4000,
5512,
8000,
9600,
11025,
16000,
22050,
32000,
44100,
48000,
88200,
96000,
176400,
192000
]
}
},
“midiInputDevices”: {},
“midiOutputDevices”: {}
}
}

I remember in settings.json of a previous version there was a 0 and a 1 to select if the drivers were Asio, I don’t see that here.

You’re right. Something is amiss here. I’ll test on Windows this morning and get back to you.

Turns put I never pushed those changes to the repo. :see_no_evil: I have done now, new build underway.

Will you release version 1.0.48 to fix that? I checked, but I only see 1.0.47.

I’ve installed it and it just works :sunglasses: Good job @rorywalsh :beers:

1 Like