Cinder

 

http://libcinder.org/

http://www.juce.com/

Yeah, thanks a lot hugh, why not just post a link to my competitors on my own website, huh? tsk..

I will say that those Cinder guys kick my ass when it comes to marketing. Not surprising since they're actually an advertising company.

Not sure what the library's like, but if anyone does use it and finds anything which juce is lacking, I'd be very keen to hear what I can add to keep my competitive edge!

It uses boost, that's a big NO-NO

the only thing i saw that might be useful to me right now is the serial port stuff, because i got into Arduino and want to build a custom control surface for my program, all those knobs and buttons are big in the music community.

 

ps.

hey hugh, how come some of your posts are rendered images?

But aren't searchable... (@Hugh)

 

Rail

 

 

Hey atom,
could you maybe explain why Boost is a “big NO-NO”?
I would certainly disagree with that as a per se dismissal.

Btw, it actually is possible to combine forces of juce and Cinder to create some pretty amazing things :).

Image replys do not sit well with readers with small screen real estate; plus, they waste bandwidth and create unnecessary traffic.

I can see your point, and it's something worth exploring in concept - however, people trying to read the forum on their iPhones or Androids are still pretty dead in the water with images of fixed sizes optimized for desktop browsers.

needed to be just a bit narrower!

How do we quote or copy only part of your post?

Rail

I think Cinder and openFrameworks are meant to be used for creating (interactive) visual art - called "creative coding" by some - but are not well suited for creating fully fledged applications, like JUCE. On the other hand, JUCE is quite capable of creating visual art.

Some month ago, I spent a few hours with openFrameworks. What I remember:
In openFrameworks, a project created by the projectGenerator (the Introjucer of openFrameworks) consists of a painting member function and a timer callback member function. A similar starting point can be achieved in JUCE if you inherit your mainComponent from the Timer class. I took a look at the official introductional tutorials and was quite surprised: They use global variables to pass information between the callback function and the painting function, instead of member variables. I think that's quite misleading for new programmers.

 

That's exactly my problem. I had a Visuals-Gig and did my Visuals with Cinder. That programm was very alpha, not that flexible and I used SuperCollider to work with MIDI input. Then I discovered JUCE and was like "jesus, all the stuff i need!". I am right now trying to understand JUCE. I also bought the "Getting started with JUCE" Book which is kind of a waste of money.

I am not the best C++ Programmer!

My big Problem is, that I found the structure of cinder quite compelling and got used to it (update() and draw() function). Now I have no clue how to implement something like this in JUCE (a cyclic function call with a fixed framerate).

Another thing with JUCE is the lack of tutorials.

when Juce 'clicks' for you, you won't look back.

 

It was daunting for me too, and really not that long ago --  I just checked my Amazon account and I ordered the book in early April.  I can't say it's been massively helpful but it was useful.  My first stumbling block coming into Juce was that I wanted some nifty custom controls, without which I couldn't even get my project off the ground, but after a bit of tinkering and an introJucer generated project I got it all up and running exactly as I wanted, and looking back it's the most logical and clean set of steps I could imagine.

 

I'm not the best C++ programmer either, which is all the more reason to use a solid, well written codebase and to learn from those that are.  I know my project is better off all round just for being influenced by Juce's structure and coding standards and knowing I've started from such a solid foundation gives me a lot of confidence going forwards.

 

All my project is managed by the introJucer so when I need a new dialog or want to tweak the design I just fire it up, work with the visual design tools, save it, then go back into Visual Studio and write some code (usually not that much code, certainly not when compared to what the introJucer has done!)   I've got at least a dozen individual dialogs so far, and with their tab contents around another 8, and managing them has been a breeze.  Restructuring the project a couple of weeks ago was a long overdue task (>100 source files in the route folder was keeping me awake at night) but one that went off without a fuss.

 

With a combination of the online docs and the demo app (and all its source code) it's amazed me just how little I've had to ask on here.  I'm sure the strength of the samples and documentation make this forum a lot quieter place than it would otherwise be, so the post count isn't representative of the number of users, as it probably is on many other programming forums.