Morning, after json file fix compile instrument shows up interface, edit mode seems ok too.
Cabbage3 alpha release
Awesome stuff, really excited to see where this will lead to!
Some fixes in:
- Automation is now working in the host.
- cabbageSet now has an array variant so it’s easier to send large chunks of values to the web UI
- plugins now have a file logger - this is enabled by default. the log file will appear in the same directory as the .csd file
- skew has been fixed for rotarySlider (thanks to @Kzz)
- added support for alpha colour when using hex values
- updated function table loading with
genTable
to handle differences in soundfile’s SR and the current SR.
I got back to testing now. Updated to newest version, tried changing this value, and the reset command, but the UI still does not show up when I compile the button.csd demo. Any ideas?
Terminal when compiling:
Cabbage VERBOSE: Invalid widget JS files path:formCabbageUtils.h (524) cabbage::WidgetDescriptors::get [Thread ID: 17028]
Cabbage VERBOSE: Invalid widget JS files path:buttonCabbageUtils.h (524) cabbage::WidgetDescriptors::get [Thread ID: 17028]
Cabbage VERBOSE: Invalid widget JS files path:buttonCabbageUtils.h (524) cabbage::WidgetDescriptors::get [Thread ID: 17028]
Cabbage VERBOSE: Invalid widget JS files path:buttonCabbageUtils.h (524) cabbage::WidgetDescriptors::get [Thread ID: 17028]
Cabbage VERBOSE: Resetting csound ...
csound = 0x0000027807B1FC20Cabbage.cpp (110) cabbage::Engine::setupCsound [Thread ID: 17028]
Cabbage VERBOSE: Invalid widget JS files path:formCabbageUtils.h (524) cabbage::WidgetDescriptors::get [Thread ID: 17028]
Cabbage VERBOSE: Invalid widget JS files path:buttonCabbageUtils.h (524) cabbage::WidgetDescriptors::get [Thread ID: 17028]
Cabbage VERBOSE: Invalid widget JS files path:buttonCabbageUtils.h (524) cabbage::WidgetDescriptors::get [Thread ID: 17028]
Cabbage VERBOSE: Invalid widget JS files path:buttonCabbageUtils.h (524) cabbage::WidgetDescriptors::get [Thread ID: 17028]
Cabbage VERBOSE: IPlugAPPHost::IPlugAPPHostCabbageAPP_host.cpp (42) iplug::IPlugAPPHost::IPlugAPPHost [Thread ID: 17028]
Cabbage VERBOSE:
RtAudio Version 6.0.1CabbageAPP_host.cpp (659) iplug::IPlugAPPHost::ProbeAudioIO [Thread ID: 17028]
Cabbage VERBOSE: Assigning called host callback function.CabbageAPP_host.cpp (136) iplug::IPlugAPPHost::InitProcessor [Thread ID: 17028]
Cabbage VERBOSE: couldn't find previous audio device, reseting to default
CabbageAPP_host.cpp (841) iplug::IPlugAPPHost::TryToChangeAudio [Thread ID: 17028]
Cabbage VERBOSE: Connection establishedCabbageAPP_host.cpp (302) iplug::IPlugAPPHost::InitWebSocket::<lambda_ddfdeebc9f530e70268af0a44e0aa13b>::operator () [Thread ID: 16248]
Cabbage VERBOSE: Interface has loaded.CabbageProcessor.cpp (151) CabbageProcessor::interfaceHasLoaded [Thread ID: 16248]
Cabbage VERBOSE: Attempting to start audio with the following settings:
SR: 44100
Buffer Size: 512
Input device: Primary Sound Capture Driver
Number of channels: 2
Output device: Primary Sound Driver
Number of channels: 2CabbageAPP_host.cpp (1005) iplug::IPlugAPPHost::InitAudio [Thread ID: 17028]
Cabbage INFO: WARNING:
Cabbage INFO: could not open library 'C:\Program Files\Csound7\plugins64\\osc.dll' (-1)
Cabbage INFO:
Cabbage INFO: UnifiedCSD: c:\Users\Dale\Documents\Work\Cabbage 3\button.csd
Cabbage INFO: rtaudio: PortAudio module enabled ...
Cabbage INFO: using callback interface
Cabbage INFO: --Csound version 7.0 (double samples) Jan 8 2025[commit: 054f3b50878e6456165a3f338761dfe4a9aae6d1]
Cabbage INFO: libsndfile-1.2.2
Cabbage INFO: sr = 48000.0,
Cabbage INFO: kr = 1500.000,
Cabbage INFO: ksmps = 32
Cabbage INFO: 0dBFS level = 1.0,
Cabbage INFO: A4 tuning = 440.0
Cabbage INFO: audio buffered in 4096 sample-frame blocks
Cabbage INFO: SECTION 1:
When you open the settings.json file what do you see? If the path still isn’t there, use the Set Cabbage Source Path command and select the src folder from the extension installation directory as described above. I’m stumped as to why it’s not working. But I’m knee deep in trying to get some kind of workable Linux build at the moment. People warned me it wouldn’t be easy, or even possible. We’ll know shortly if that’s the case.
I will test that this evening
Since so, and i never used VS Code but i heard of it, did you develop a LSP Extension for Csound and VS Code? I heard, VS Code runs mainly on LSP Extensions.
Hi @ph_ne, I’m afraid I haven’t got that far yet. The Csound extension is just a set of utility commands and a syntax highlighter for the Csound language. Nothing near as useful as a full LSP - but enough to use Csound nicely from within VS-Code. The same thing is true of the Cabbage extension. For now it’s merely a system for building and exporting plugins. Steven Yi (original author of the Csound extension) and I have discussed LSPs, but to be honest, I’ve no idea how to create/write one. If it’s something you’ve done before, or have an interest in doing, please go ahead and take a look at the extension source code for Csound.
Let me know how it goes.
I tested now. Neither of the commands “Set Cabbage source path” or “Reset CabbageApp (not vscode) settings file” do anything for me. I can delete the settings.json, and when compiling it will generate it, but none of the commands change the settings.json file for me on Windows 10 (reset will not reset it back to the default values either).
So I tried setting the src manually like this:
"jsSourceDir": "C:/Users/Dale/.vscode/extensions/cabbageaudio.vscabbage-1.0.23-alpha/src",
Then I restarted vscode, and suddenly compiling the instrument worked!
Great, you’re up and running. I just wish I knew how to fix that silly problem. I will return to it shortly. I’ll let you know if I come up with anything.
Maybe this would be a nice project. I merely use Csound in Emacs and also do all my other code work there. Recently i found the LSP mode very usefull and i hoped, that u already implemented one, so that i can use it in Emacs. But i also have no clue how to develop a LSP.
That makes 2 of us
Hello, first of all, congratulations on the work and progress of version 3. I have installed everything and set up the “path to JS source” option. Up to this point, everything seems fine, but apparently, there is some conflict with my drivers. I can change the sample rate to 48000, but the buffer size always remains at 512. Even though I tried changing it from “palette,” it shows as changed in Cabbage’s “settings,” but when I try to compile, it still appears as 512. I set the buffer on the interface to 512 to match the option, but I keep seeing this message in the console:
Cabbage VERBOSE: Resetting csound …
csound = 0x0000017E48881DB0Cabbage.cpp (110) cabbage::Engine::setupCsound [Thread ID: 11280]
Cabbage VERBOSE: IPlugAPPHost::IPlugAPPHostCabbageAPP_host.cpp (42) iplug::IPlugAPPHost::IPlugAPPHost [Thread ID: 11280]
Cabbage VERBOSE: RtAudio Version 6.0.1CabbageAPP_host.cpp (659) iplug::IPlugAPPHost::ProbeAudioIO [Thread ID: 11280]
Cabbage VERBOSE: Assigning called host callback function.CabbageAPP_host.cpp (136) iplug::IPlugAPPHost::InitProcessor [Thread ID: 11280]
Cabbage VERBOSE: Connection establishedCabbageAPP_host.cpp (302) iplug::IPlugAPPHost::InitWebSocket::<lambda_ddfdeebc9f530e70268af0a44e0aa13b>::operator () [Thread ID: 1272]
Cabbage VERBOSE: Interface has loaded.CabbageProcessor.cpp (151) CabbageProcessor::interfaceHasLoaded [Thread ID: 1272]
Cabbage VERBOSE: Attempting to start audio with the following settings:
SR: 48000
Buffer Size: 512
Input device: Primary Sound Capture Driver
Number of channels: 2
Output device: Speakers (MOTU Pro Audio)
Number of channels: 2CabbageAPP_host.cpp (1005) iplug::IPlugAPPHost::InitAudio [Thread ID: 11280]
Process exited with code 3221225477 and signal null
Is there anything I could do to solve it? I know my drivers work ok, with Cabbage 2 they work fine.
First of all thank you vry much for giving it a try out I will look into that isue. Can I ask what platform you are on?
This is fixed now. A new build is underway and should appear in the github releases page shortly. Thanks for reporting this. One thing I just noticed is I don’t have access to the audio drivers on Windows. For now you can change the driver to 1 in the settings file if you need ASIO, but I will look at adding this option to the vscode commands
Another new build triggered now for selection of audio drivers. This is on Windows for now as I am not near a Mac, but I will add something similar to the Mac build when I get a chance.
I am on Windows 10 and have tried the new build. Now I get a message saying that the binary cannot be found:
Cabbage extension is now active!
Found a free port: 9991
Saving file: d:\button.csd
ERROR: No Cabbage binary found. Please set the binary path from the command palette.
In the Cabbage settings, the “Path to Cabbage binary” field is empty, and I don’t know what to enter there. It was empty before as well.
Let me take a look…
[edit] yeah, botched build. I’ve triggered another one…
Now it has worked! I think this is already a big step forward. I have confirmed that the “button” example works and produces sound.
What stands out to me is that nothing appears in the “output” console, just a black screen. So, I don’t really know what sr, buffer, or configuration it is actually running with, but at least it works and produces sound.
Regarding the audio functionality, something that I think would be good to implement (which was available in Cabbage 2) is the option to select the output channels of the audio interface from the settings. Right now, the sound is routed by default to channels 1/2, and it’s not possible to choose 3/4, 5/6, etc., which is useful in Cabbage 2 in certain situations.
I have also noticed some inconsistency in recognizing MIDI controllers—at least that happens with mine. I turned on my Korg Wavestate to test it, and while it appeared in the list once, most of the time it does not show up in the selection list.
I will keep testing