Cabbage Logo
Back to Cabbage Site

Looking for some custom GUI examples

Hi - Cabbage is looking promising for us to port our Csound instruments to VSTs. However, before we spend hours digging in I am curious how customizable the UI is. Can you, for instance, create something skeuomorphic? Are there any examples of nice custom designed interfaces? Can it be as customizable as, say Kontakt, with the right design?

Thanks!

People have created skeuomorphic GUIs in the past. You can use a filmstrip type of approach.


You can also use SVG files. I’d say for the most part you should be able to create whatever look and feel you like. Let me know if you have any issues getting up and running.

Thanks a lot Rory - I’m really impressed with all of the work you have put into this. So much easier and intuitive than KSP.

I am familiar with knobman, so that helps a lot.

Two more questions.

  1. Any way to remove the “Cabbage” logo?
  2. Is there any way to change the gui fonts - meaning the VST GUI?

Thanks!

Thanks, although I’m not familiar with KSP, do you have a link?

Are you using Cabbage version 2? It doesn’t have any logo on the GUI. If you’re still using v1, then I suggest you head here and grab the new version. It has quite a few improvements on version 1.

You could create your labels as images or SVG using whatever font you likes, but changing the default font is not possible at present. At the moment, Cabbage ships with its own font, meaning it will display text without an issue even if the font is not present on the system running Cabbage. I’d be Ok with letting users set a particular font file, but I don’t like depending on system fonts as they change quite often.

Would a single font be Ok? I could look into adding a new identifier for this, but I think I would like to make it global, one font for all. Making each widget capable of using it’s own unique font would be a bit of a pain.

Thanks Rory - I think that is fine. Afterall, it’s the same in Kontakt KSP and obviously works fine for many including myself.

Downloading the latest version now.

Ah Kontakt KSP. Wow, in that case you’ve paid me a mighty nice compliment. Now I guess I’ll have to add some kind of font support :grin:

Well, that would be interesting - especially if fonts could be exported with the instrument and not required to already be installed on the end user’s system.

A few other suggestions - and not sure if it’s already possible - some things I love about CsoundQT is the manual integrated into the IDE, the ability to click on an opcode and jump right to it in the manual and the opcode autocomplete.

Jumping to the manual should work if you press Cmd+1 on OSX or F1 on Windows. But I recently made a change so I hope I didn’t screw things up. I never found Autocomplete useful for Csound things but I can look into it.

I just mean opcode autocomplete. Sometimes one forgets the correct name of an opcode (eg. lineseg or linseg?) and it saves time to have the valid name appear rather than looking it up.

I took a loo at adding custom fonts for GUIs and I think I have a found a solution. I have an autocomplete feature somewhat implemented. It still needs work, but it could be extended to searching the entire opcode base. I’d have to see how quickly it can do the search. The problem with JUCE, the C++ framework I use to write Cabbage. is that it doesn’t really have anything in the way of text editing tools. Unlike QT which ships with a fully featured code editor component. Any kind of code editing feature therefore has to be coded manually. I hope that someday JUCE will up its code editor and we’ll finally have access to code folding, line wraps, auto-complete, etc.

2 Likes

New version available now with experimental auto-complete. You need to enable it in the Settings. This version also features the new tracker identifiers too. Available from here.

:+1: downloaded. looking forward to checking it out. Thanks!

tracker identifiers?

Allowing for more customisation of rsliders. Were you looking for a tracker interface? If so check out the http://cabbageaudio.com/docs/event_sequencer/ and corresponding example. I’m not sure how many people are using it, it’s relatively untested, but fun all the same.