Cabbage Logo
Back to Cabbage Site

New to Cabbage, and patcher problems

Hi,

I finally tried Cabbage again.

Last time (1 month ago) I thought it doesn’t work correctly, because with just .csd files it plays only the 2 first audio channels. Because since 2006 I work only with a minimum of 4 channels and sometimes with 8, this was not acceptable.

I finally understood that in order to use more than 2 channels it was necessary to connect them with the patcher, and in order to remember the connections, to save and reload a .cabbage file.

This doesn’t work immediately, until I understood that in order to work it was necessary to have a GUI, even if it is just an empty form that does nothing.

Now it works. It’s just annoying that I have to go each time to the menu and select Open Cabbage patch. It would be much easier to just click on the Cabbage file, or eventually to drag it to the cabbage window.

Now there is another problem:

When I move the folder containing the .csd and .cabbage files to another destination, the link between the 2 is broken. I get this strange message : « No Csound channels found in orchestra »…

After editing the .cabbage file, I found that the link to the .csd is an absolute path.
How can I then send my program to other people ? Their folders never start with the same user name!

Ok, I tried to export it to vst3, it works, and I can open it with Reaper and it shows the correct number of channels. I just don’t know how to play it. Does it need to be triggered by midi ?

I tried also CabbageLite, but it accepts only 2 channels in the same time, so it is useless for me. And iI don’t know why it is called « standalone », because I have to open the csound file in « Options » before using it instead of just selecting the .csd file and asking it to open with CabbageLite. And on my MacBook Pro, CabbageLite crashes all the time.

Is it possible to bypass the Juce patcher and send directly the audio data to a driver selected in options ? Or is there a way to take into account nchns and send to the correct channels accordly ?

Best,

Bernard

Had you asked us two months ago I could have saved you some frustratation. But I@m glad you’re asking now. So others don’t have to spend months pondering over how this whole thing is supposed to work :joy:

What do you mean you can’t click on the file and open it? This certainly works on Windows as long as you set the appropriate ‘open with’ settings. It used to work on OSX too, but mostly I work with Windows and Linux so I can’t testify to it still working there. I will check.

I agree that it must be a little frustrating to have to make those connections. I can probably make it so that if you set 4 channels in the Csound header section, Cabbage will automatically try to connect the output to the first four available channels. It’s tricky for me to work on as I don’t have a multi-out sound card. But I will try to borrow one.

Good point. If you ever get the feeling you are one of a small number of people actually using the Patcher in Cabbage you may be right! I will sort this so that The .csd are saved relative to the patch file. One will just need to ensure that they maintain the same folder hierarchy when they are moved around.

It depends, is it an instrument or an affect? Instrument need to be triggered by MIDI, while effect will start as soon as the track begins playing (if you use the appropriate score event in your Csound .csd file).

I thought I had made it work with multiple channels too? It’s called standalone because you can set it up to behave that way by passing arguments to it on startup. It doesn’t feature any GUI editor or patcher, it’s pretty bare-bones and included so that people can use Cabbage with their own text editors.

The entire system is based on a digital audio graph that is represented by the patcher. When working in stereo this is done automatically. You don’t need to make any connections in the patcher. I will look into making it behave the same for any number of channels. I think this would address most of your issues right?

That you for your quick answer! First of all, I want to say that I am very impressed by the huge work you did by making Cabbage!

What do you mean you can’t click on the file and open it?

I just downloaded the windows version, and yes, on Windows when I double-click the .csd file it opens it , but not on Mac OSX.

On Mac OSX, I can only drag it to the open Cabbage window.
(What would be nice of course, is to execute the file when double-clicking it as an option, like in CsoundQt)

Concerning the .Cabbage file, when I double-click it on windows, it opens the patcher file in the editor instead of executing it.

If you ever get the feeling you are one of a small number of people actually using the Patcher in Cabbage you may be right!

First of all, I used the patcher only to have my audio connections right.

If Cabbage is mainly used to make vst or au plugins, it is ok to use it just to test them. But it seems to be also an interested feature to write different csound programs and to connect them together. But we don’t have to, of course.

When working in stereo this is done automatically. You don’t need to make any connections in the patcher. I will look into making it behave the same for any number of channels. I think this would address most of your issues right?

That would be absolutely great! But don’t do it just for me! I’m not the only interested, I think. And I’m still not sure if I will use Cabbage rather than finding other solutions.

I have in a certain way the opposite problem in CsoundQT:
When I declare nchns=4 f.e, I cannot execute the file when the multi-channel sound card is not connected.

To test my programs just with my laptop,I wrote the following (suggested by Joachim):
if (nchnls > 2) then
giOutChn1 = 1
giOutChn2 = 2
giOutChn3 = 3
giOutChn4 = 4
else
giOutChn1 = 1
giOutChn2 = 2
giOutChn3 = 1
giOutChn4 = 2
endif
but I get this message: PortAudio: error: -9998: Invalid number of channels

Maybe you could also take care of such situations ?
With supercollider, I don’t have this problem, he just ignores the channels that are unavailable.

Maybe, most people use Cabbage to create plugins (what is great), but there are certainly others that use it to have a nice and usefull GUI for csound. And, when I see the messages on this forum, I can tell that there are many who need multi-channel audio I/O.

I think also that the installation and execution of a program should be so simple as possible, because it is not only the composer who will execute the program, for example in installations or on concerts where the composer is not there.

Greetings,

Bernard

Good to know. I’ll sort that.

Hmm, I see what you mean. But actually running a file when it opens might be a little much.

Exactly. So, if you didn’t have to make those connections the previous request wouldn’t be redundant :wink:

Ask and you shall receive it this project’s motto :joy: Seriously, regardless of whether you will end up using Cabbage in your projects or not I think this is a pretty good idea. I’m happy to add it.

I would look to follow the Supercollider model here.

For sure. Although I know of lots of composer using Cabbage who have never once exported a plugin, I know most users probably do work with Cabbage to create plugins.

I agree 100%. Right now it’s easy to create an installer that will bundle everything one needs for a performance/installation. The only problem for you is the multi-channel problem. Let’s sot that first :wink:

Can you try one of the these. Note the version number might be a bit messed up, but don’t worry about that for now. If you run a 4 channel instrument Cabbage will automatically try to connect the 4 channels to the first 4 channels on your sound card. Same with any number of channels for that matter. If the number of channels in the plugin doesn’t match the hardware Cabbage will just connect what it can and leave the rest. Try it out and let me know if we’re moving in the right direction. Note I haven’t looked at CabbageLite yet. If you want to distribute instruments as standalones we’ll need to make sure CabbageLite also works in the same way.

Multichannel seems to work correctly now with version 2.1.4.
Maybe more people should try to test it now.

Greetings,
Bernard