Cabbage Logo
Back to Cabbage Site

Cabbage for Lissajous curves tool generator

Hi all,

and here’s a new simple tool. Hope you like it.
( for VA: )


Tonetta_Ivan - (35.6 KB)

Very nice. I’m looking through the code here. I would like to share a few additions :wink: But give me some time!

I’d be honored :blush:


I add a mechanism to record the output. I simply added some functionality that Iain had coded for one of his instruments. I also added a simple little arpeggiater and a few snapshots that use it. It’s very limited, but it can change tables and tempos between note. Older notes keep the older arpeggio and newer notes can use a new ones. It’s not much of an addition, I just wanted to hear was it sounded like. But being able to record the output was well worth it. I’ve got some nice takes already.

Hi Ruben,

What are the settings I need to make in VA to get it to display lissagous patterns?


Tell the truth Iain, you’re probably already thinking about implementing the curves in Cabbage right? :wink:

Funny you mention that, I had a stab at it a while back but I hit a brick wall. Maybe this solution using a purpose built app to do the analysis is more sensible.

Here’s the instrument I meant to post earlier. Tonetta_Ivan - (38.5 KB)

How ere you trying? If you send me the Csound code I can rewrite it as C++ and add a lissajous widget.

Well how about a widget that behaves somewhat like an analogue CRO screen. The user sends it coordinates via channels which turns that pixel ‘hot’ (colours it in with a dot). The user also sets a permanence time: how long an activated pixel remains hot before returning to its ‘cold’ state. It would be up to the user how to animate the coordinates.
Does this make sense? Does is sound like a plausible invention? Could be a cool toy…


the screenshot helps us… :blush:

you are really great! Thanks for updating the instrument! :smiley:

my old lissjous experiments, see at 41s… (the site electrorec is dead :wink: ):

Thanks, it’s looking good now!

So you would only need to be able to turn and off pixels? This could be done. We would just need to find a way to do it. We can start by trying the ident channel route with a new widget. If that isn’t fast enough we’ll explore other avenues.

Check this out. It runs pretty fast, but this is about as smooth as I can get the trail to be using an alpha fade out. The problem is the scope is jumping too far. I may try to interpolate the data to smoothen it out.

I was just about to have a crack at something like this. The alpha fade is nice, but it might end up necessary to go with a simple on/off for dots for the sake of efficiency. I was thinking that some sort of graphical interpolation would be necessary so that rather that each element being a dot, it is a line (curve?) connecting to the previous element.

I’ll take a another look a little later on today. Lines might work, but they may also seem a little choppy. If so, I will to draw the line in the time is takes between k-cycles. I’m painting a full black square on top of each frame with a set alpha fade. Over time these squares build up and fade out the older pixels. This is something the user could also have control over.

Now with lines. [btw, it would be nice to be able to place these on top of each other…]

Suddenly this widget seems like it could be a lot of fun.

Ok, while this has been fun, and we now may have some kind of simple scope device, it’s very crude. If we need a proper scope I think it needs to be written as a Cabbage widget that reads a block of audio samples in order to create the wave shape properly. But the current widget might be useful for very simple graphics. At least they look nice. One problem I have however is the repainting. Overlaying an alpha image on top of each previous one looks great, but I’m getting painting issues which you guys don’t see in the gif :wink:

Slightly related topic being discussed on this thread, click to navigate…

I added a Lissajous display to your instrument. It’s quite nice to have it in place rather than needing an external viewer. I’ll post the code once the new widget is ready to go. Thanks for bringing this to my attention, it proved a nice distraction from the less exciting issues on my todo list :wink: