Score & function table / breakpoint writing



Just joined forum. User of Csound & Python, looking for GUI creation options & toolkits.

Toying with embracing C programming as a way forward, & Juce as a possible & manageable road into this world.

My interests for developing GUI elements are not so much focussed on real time interactivity (buttons, knobs, sliders etc)

But on score writing - so think:

  • piano rolls & varaitions thereon
  • drawing & displaying trajectories - breakpoints function editors, with curves, etc etc
  • direct access to function tables / arrays with the mouse to create spectral filter table values for phase vocoding, keyscaling parameter values etc etc…
  • some of the more usual “colour coding” & direct drawing / mouse interactivity etc etc…

What i percieve to be a basically “vector” style within the Juce demo appeals to me very much, in terms of superposition / opacity & general appropriateness to displaying the types of “score” elements i’m envisaging

but i havent seen any evidence really that Juce is going to offer me an accessible inroad into my wishlist above.

As my primary focus is the creation of text based data & sco for Csound, even the audio engine capabilities are something i could overlook as part of my initail dabblings with C/C++ Juce / gui coding (I don’t even have a C development environment installed yet - was thinking MSVC but didn’t see that listed as a supported environment?)

So I’m hoping some of you with more experience & GUI development knowledge can help me, mainly in

  • Identifying the appropraiteness of Juce in addressing the types of things on my wish list - or failing this, advice me of something else that may be better or more suitable.

As a Python user working primarily with text based score, I’m almost thinking i could work with elemnts of Matplotlib to simply display generated / text data as a visual “reference”

But i would very much like to work with a handful of GUI elements to help design & create scores (&/or algorithms for scores) in an interactive way, but that moved beyond simple FLTK et al…

Cairo is something else ive heard about that interested me, & possibly therefore exploring the some kind of PyGTK/ Cairo type environment - less “hardcore”, but my demands ultimately are meagre in terms of “optimisation” etc etc…

All opinions & thoughts welcomed

best wishes


Adelaide - Australia


Creating music engraving (I assume that’s what you mean by scores, and not just piano roll blobs?) is a pet project of mine too… I’ve got quite a long way with it, and hopefully this year will be have time to refine it into a usable bunch of classes. It’s an unbelievably difficult problem though! Incredibly hard to get the architecture right, and I’ve refactored my code quite a few times so far.

As for suitability, I can’t say what’s best for you, but you’re unlikely to find any other UI toolkit that’d offer anything more specific for your needs. Juce is probably the most audio-oriented UI toolkit around. If you’re writing specialised stuff like this, you’ll need to write a lot of custom code no matter what you use.


Thanks Jules,

Engraving is something i’d considered, & if classes become available, & i become c literate, i’d be very keen to experiment with their application (particularly if zoomable & vector based! whoah nellie! ; )

I am thinking blobs, but i have my own custom Python based .txt tracker essentially.

The nature of a lot of my csound instrument design is to initialise variables, but then control them from globals (at control rate or audio rate)

So my “dream” is kind of a reverse of the usual piano roll / controller lanes paradigm. & in some ways a wee bit like Melodyne or something. I’d like to have blobs on piano rolls, but where you double click the blob, & expose all the controller messages but exclusively for the active note/ period under examination. Like melodyne, my pitch values are also “a global trajectory” thus taking care of ties / legato/ glissando etc - the “note” is essentially just an “active” space.

When I “move” my notes around, all the controllers move with them, despite being executed as independant, global variables (allowing for multibrkpt enveloping of parameters without cutoff limit to number of brkpts…)

a lot of my ideas & development is more on the “ambient / experimental” side. Feldman is a big influence. So i’d like to retain bar markers & timeline references etc, but in an optionally more arbitrary, “non gridded” way.

This & something like Max’s multislider are basically my GUI toolkit wishlist for the moment.

Did you have any advice as to the Free / accessible versions of MSVC as a suitable compiler? I’m interested in exploring this as it was recently used to compile Csound by one of its developers for the first time, & recommended by that particular Csound developer as a good entry level compiler.

I realise i’m getting off topic, but would GTK+ also be compatible with that compiler environment? Is it possible to “mix” elements? or is GTK + limited to use with MinSYS / MinGW / “open Source” compiling tools (excuse my inaccuracies - i’m still living in the world of heresay on this many of these topics at the moment…)

Thanks for your input & advice




Visual C++ Express will do you just fine. I believe Jules uses it himself in the main.