Cabbage Logo
Back to Cabbage Site

Touchpad gestures

Are there any reserved channels for touchpad gestures?

No, but I know people with Windows 10 touchscreen laptops that have been able to control Cabbage instruments without any problems. I’m not sure this is still the case though. Have you tried?

I’m on OSX. Just though I’d be nice for my zooming functions
I guess I’ll just help myself with a “KEY_PRESSED while draging” alternative to my right mouse button drag up and down zoom.

Sorry, I understood touchscreen. I’m not sure about touchpads. I guess it should behave like it does for any application? Are you trying to implement a zoom in/out feature? That sounds like a world of pain :rofl:

Oh yeah, it was a bit painful. But now I have a scrollbar on my soundfilers. I can touch on both ends and “resize” it hence zoom or drag to pan through the sample, double click it to reset zoom. Plus I can right-click on the waveform to make it zoom: drag up and down for zoom, left and right for pan while zooming. Works surprisingly super smooth, as chnset-ing can be difficult generally. I’m using quite some instrument delayed stuff for GUI, to make it actually. I do a lot of things at once and it seems some of it is too much. Took me a while to find out, that I’m blasting the capabilities here, because my first assumption always is that I’m not doing it right as the noob I am. But the zoom on soundfilers work super smooth, which is great because delaying here would be not feeling good. My compliments to the creator!
Anyway, I guess at some point I might look into educating myself in low level coding. I wasn’t aware that my ideas require quite some resources. Even had to go ksmps = 1 on one instrument to make my base processing work after trying a lot of different methods and opcodes. Actually I started globally there and changed to a local k-rate to save resources for all the GUI and control stuff as far as I could. Did you know that all time based opcodes, … actually not sure if all of them, just assuming…, are behaving differently in instruments that have a lower local k-rate? It seems like they still getting their time base from the global k-rate. In my case I’m using the lag opcode. So to get the same results I had originally with my global ksmps at 1, I had to multiply all times by my new global k-rate.
Anyway, I’m sure you heard it all.
Totally different general Question. Can you give any recommendations for resources/books/methods to learn C++? Or would you recommend a different language?
Thanks for reading this far! Getting chatty sometimes

Good that you are using different ksmps, this is a good idea when things get hairy!

It depends on what you want to learn really. Victor Lazarinni, one of the main Csound developers published a book last year on DSP in C++. He kind of develops an entire C++ library in it, which is also freely available without buying the book! There is also the Audio Programming book from MIT. That’s kind of a collection of chapters on various aspects of programming audio. The JUCE library, which I use for Cabbage is, in my opinion, a very well written framework that you will learn a lot from, just by going over the examples and working your way through different things. Lots of people use QT too, that’s got a huge community, and lots of learning resources, but is a little less audio focused. The great things about JUCE, if you are coming from an audio perspective is that it wraps all the major plugin formats, so you only have to write one body of code, rather than different code for each platform.

Finally, I should also mention Oli Larkin’s IPlug. Much like JUCE but nowhere near as extensive in terms fo classes. On the other it has much friendlier license that JUCE. JUCE has a GPL version you can use for free, but if you want to close source anything you need to pay a license fee.

Thanks! That’s lots of valuable information. I’ll have a curious look. I’m actually talking really beginner stuff. I think before I can read through libraries I’ll have to get my basic understanding of C++ syntax and object based programming to some level.