What channel config are you using?
With 48000 selected as sampling rate through cabbage commands (ctrl + shift + p) along with declaring “sr = 48000” in the file both give the following:
R: 48000
Buffer Size: 64
Input device: Apple Inc.: Cabbage3-AudioDriver
Number of input channels: 2
Output device: Apple Inc.: Cabbage3-AudioDriver
Number of output channels: 2 [CabbageAudioApp.cpp (730) initialiseAudio Thread ID: 0x202280f40]
Reading CSD file: …csd
–Csound version 7.0 (double samples) Mar 4 2026
[commit: 32fe6c37f4d382e1b25d4a5fccf0e0fccc3ffa85]
using libsndfile-1.2.2
sr = 44100.0,
kr = 689.062,
Fixed the audio driver issue - but sr issue still there.
When I use:
“channelConfig”: “1-2”,
…
nchnls = 2
nchnls_i = 1
I dont get robotic audio when using the default Apple drivers. But sr still 44100
Can you update this to use the new channel config object shown in the documentation I linked? I’ll take a look and see if I can figure out the SR issue. It’s strange. Can you check the output for errors?
Ah, I see the issue now. The fix I pushed wasn’t thorough enough. Just rebuilding and testing now before I trigger a new build. Btw, this fixes the SR/ksmps issue. The robotic sound you hear is because of a mistmatch between channels. I can easily reproduce here if I select a stereo input when I actually only have mono. But if I match my inputs correctly the robotic sound disappears. As recommended in the docs linked above, it’s best remove nchnls/nchnls_i from your Csound header and just let Cabbage manage them. ![]()
no robotic audio but it seems the sr = 44100 issue still persists.
When I load the checkbox widget example but change the channel config to match the new syntax + remove nchnls + change the sampling rate to 48000 with cabbage command + set sr = 48000 in the file (attached) I still get sr = 44100 in the console
checkbox2.csd (2.3 KB)
Can you confirm the version your using? You’ll be able to check it in the vscode extensions panel..
I’m on 1.0.183
Can you post the cabbage output so I can see if there is anything in that that might give us a clue..
checkboxDEBUG.zip (18.9 KB)
Can you copy and paste it here, sorry, I don’t have word…
DEBUG: Created numeric channel for non-automatable widget ‘formChannel’ with default value 0 [CabbageProcessor.cpp (550) addParametersForWidget Thread ID: 0x202280f40]
DEBUG: WidgetDescriptors::get - Searching for widget type: checkBox in 1 paths [CabbageUtils.h (473) get Thread ID: 0x202280f40]
DEBUG: WidgetDescriptors::get - Checking path: /Users/colmdelaney/.vscode/extensions/cabbageaudio.vscabbage-1.0.183-alpha/src/cabbage/widgets/checkBox.js [CabbageUtils.h (477) get Thread ID: 0x202280f40]
DEBUG: WidgetDescriptors::get - File exists! Loading… [CabbageUtils.h (480) get Thread ID: 0x202280f40]
DEBUG: Found widget descriptor for ‘checkBox’ in: /Users/colmdelaney/.vscode/extensions/cabbageaudio.vscabbage-1.0.183-alpha/src/cabbage/widgets [CabbageUtils.h (484) get Thread ID: 0x202280f40]
addParametersForWidget: type=checkBox, id=trigger, automatable=1, isNumericChannel=1
Creating parameter ‘trigger’: min=0, max=1, default=0, normalizedDefault=0, initial=0, inc=1, skew=1
DEBUG: Added parameter for channel ‘trigger’ with parameterIndex 0 and default value of : 0 [CabbageProcessor.cpp (472) addParametersForWidget Thread ID: 0x202280f40]
DEBUG: WidgetDescriptors::get - Searching for widget type: button in 1 paths [CabbageUtils.h (473) get Thread ID: 0x202280f40]
DEBUG: WidgetDescriptors::get - Checking path: /Users/colmdelaney/.vscode/extensions/cabbageaudio.vscabbage-1.0.183-alpha/src/cabbage/widgets/button.js [CabbageUtils.h (477) get Thread ID: 0x202280f40]
DEBUG: WidgetDescriptors::get - File exists! Loading… [CabbageUtils.h (480) get Thread ID: 0x202280f40]
DEBUG: Found widget descriptor for ‘button’ in: /Users/colmdelaney/.vscode/extensions/cabbageaudio.vscabbage-1.0.183-alpha/src/cabbage/widgets [CabbageUtils.h (484) get Thread ID: 0x202280f40]
addParametersForWidget: type=button, id=mute, automatable=1, isNumericChannel=1
Creating parameter ‘mute’: min=0, max=1, default=0, normalizedDefault=0, initial=0, inc=1, skew=1
DEBUG: Added parameter for channel ‘mute’ with parameterIndex 1 and default value of : 0 [CabbageProcessor.cpp (472) addParametersForWidget Thread ID: 0x202280f40]
DEBUG: WidgetDescriptors::get - Searching for widget type: button in 1 paths [CabbageUtils.h (473) get Thread ID: 0x202280f40]
DEBUG: WidgetDescriptors::get - Checking path: /Users/colmdelaney/.vscode/extensions/cabbageaudio.vscabbage-1.0.183-alpha/src/cabbage/widgets/button.js [CabbageUtils.h (477) get Thread ID: 0x202280f40]
DEBUG: WidgetDescriptors::get - File exists! Loading… [CabbageUtils.h (480) get Thread ID: 0x202280f40]
DEBUG: Found widget descriptor for ‘button’ in: /Users/colmdelaney/.vscode/extensions/cabbageaudio.vscabbage-1.0.183-alpha/src/cabbage/widgets [CabbageUtils.h (484) get Thread ID: 0x202280f40]
addParametersForWidget: type=button, id=toggleFreq, automatable=1, isNumericChannel=1
Creating parameter ‘toggleFreq’: min=0, max=1, default=0, normalizedDefault=0, initial=0, inc=1, skew=1
DEBUG: Added parameter for channel ‘toggleFreq’ with parameterIndex 2 and default value of : 0 [CabbageProcessor.cpp (472) addParametersForWidget Thread ID: 0x202280f40]
DEBUG: === Finished addParameters() === [CabbageProcessor.cpp (346) addParameters Thread ID: 0x202280f40]
DEBUG: getCsdFileAndPath: Using cached CSD path for CabbageApp: /Users/colmdelaney/Downloads/checkbox2.csd [CabbageUtils.cpp (779) getCsdFileAndPath Thread ID: 0x202280f40]
DEBUG: getCsdFileAndPath: Using cached CSD path for CabbageApp: /Users/colmdelaney/Downloads/checkbox2.csd [CabbageUtils.cpp (779) getCsdFileAndPath Thread ID: 0x202280f40]
DEBUG: Num widgets : 4 [CabbageAudioApp.cpp (615) createCabbageProcessor Thread ID: 0x202280f40]
DEBUG: Devices successfully added to settings file. [CabbageAudioApp.cpp (1226) addDevicesToSettings Thread ID: 0x202280f40]
DEBUG: Attempting to start audio with the following settings:
SR: 48000
Buffer Size: 64
Input device: Apple Inc.: External Microphone
Number of input channels: 1
Output device: Apple Inc.: External Headphones
Number of output channels: 2 [CabbageAudioApp.cpp (730) initialiseAudio Thread ID: 0x202280f40]
Reading CSD file: /Users/colmdelaney/Downloads/checkbox2.csd
–Csound version 7.0 (double samples) Mar 4 2026
[commit: 32fe6c37f4d382e1b25d4a5fccf0e0fccc3ffa85]
using libsndfile-1.2.2
sr = 44100.0,
kr = 1378.125,
ksmps = 32
0dBFS level = 1.0,
A4 tuning = 440.0
audio buffered in 128 sample-frame blocks
SECTION 1:
DEBUG: Cabbage processor created successfully [CabbageAudioApp.cpp (907) onIdle Thread ID: 0x202280f40]
DEBUG: setCabbageIsReady() called [CabbageProcessor.cpp (1097) setCabbageIsReady Thread ID: 0x202280f40]
Thanks @collie, I don’t see anything wrong there. Can you try setting the number of inputs to 2 in the channel config and see what happens?
I think I have it now. I fixed this in the other branch, but forgot to update this one. Leave it with me.
actually that last csd file was 2 inputs 2 outputs in the channel config:
{
“pluginId”: “CHKB”,
“channelConfig”: {
“inputs”: [“2”],
“outputs”: [“2”]
},
This fix is for the SR rate issue. I tested before pushing and it seems to have sorted it.

