
Juce C++ framework reaches v4 with live-coding environment - geoffroy
http://www.juce.com/releases/projucer-juce-4
======
tomcam
JUCE is a very, very well-designed cross platform framework that was used very
successfully in the development of Tracktion, a competitor with programs like
ProTools and Garageband. The API is C++ based but carefully designed to shield
you from the weirdness of C++; if you needed to create a cross platform app
and learn C++ at the same time this would be the gentlest possible
introduction.

Jules, the creator and prime maintainer of JUCE, is indefatigable. I think
maybe he's triplets, but nice triplets. He answers questions on the forum
([http://www.juce.com/forum](http://www.juce.com/forum)) at all hours and with
extreme patience. There seems to be absolutely no difference between the way
he treats casual users vs. enterprise customers on the forum.

JUCE can be used to develop audio plugins, synthesizer programs, etc., but is
also a complete framework for GUI apps that have nothing to do with audio. It
has canvas drawing, 3D support, and forms support.

There's a ton of documentation on the site and the source code is a dream to
read. If you were creating an API for something you would be well served to
see how Jules did it.

I rank JUCE with web2py as one of the two most comprehensive, ridiculously
underrated open source products I've encountered.

~~~
GuiA
Max/MSP, one of the more popular visual programming languages out there, is
also written using JUCE.

[https://cycling74.com/forums/topic.php?id=11656](https://cycling74.com/forums/topic.php?id=11656)

------
callinyouin
I'm interested in writing a fairly bare-bones, standalone application for note
sequencing, patch selection, and controlling the master clock of external MIDI
synths and drum machines. Is this a suitable framework, or is there something
else that might be more appropriate? I feel like the current DAW offerings are
A) too complex/big for my needs, and B) focus a lot on MIDI in and not very
much on MIDI out. That said, I'm really new to this so I'd appreciate any
suggestions on existing software I might have missed.

Edit: As far as existing software is concerned, I'm on Linux and I'm not
interested in moving to Windows or OS X. I realize software for Linux in this
domain is somewhat limited.

~~~
tomcam
JUCE is perfectly aligned with your requirements.

------
dragly
It's great to see that the OSC module is being added to JUCE! In our lab we
are working on adding OSC support to OpenEphys (an electrophysiology software
that uses JUCE). Currently we need to bundle or statically link oscpack on Mac
and Windows, but with OSC support built into JUCE we won't have to deal with
that anymore.

By the way, does anyone know of a good comparison of OSC and ØMQ (ZMQ)? I'm
curious about when to use which of the two in terms of latency and ease of
use, apart from that OSC is built for audio while ØMQ appears to be more
general purpose.

------
djfm
This looks interesting but I'm having a hard time figuring out which problem
it solves, specifically. It seems to do lots of things: GUI, Audio, Project
Management - but I already know of tons of ways to do these things. Can
somebody explain who would need this and for what? Maybe I'm just not the
target audience, I don't mean to be disrespectful.

~~~
julesrms
(Author here)

There's a set of problems that tend to go together when you're doing audio
tech development: We have to build apps/plugins that run on many platforms and
plugin APIs (so managing many different compiler projects for the same
codebase is really helpful). We always tend to have complicated and custom
GUIs (hence all the GUI framework stuff). And there's a whole set of other
commonly needed library code that we provide.

Re: the live-coding stuff, initially we've found it really useful for GUI
design - isolating individual GUI classes and nudging their code around to get
the behaviour right, rather than having to repeat the tedious
edit->compile->run->navigate cycle. But it has a lot more potential uses that
we're just starting to explore, and hopefully as it becomes more solid, our
users will think of even more things it can do.

~~~
choppaface
julesrms, Interested in the live coding, but can't seem to find any detailed
info on your site. How does your live coding compare to, say, Cling (
[https://root.cern.ch/cling](https://root.cern.ch/cling) ) ?

~~~
julesrms
Cling is more of a REPL, whereas ours is more of an IDE-like environment. And
rather than just calling a function or expression, the Projucer invokes code
by instantiating one of your GUI component classes

------
CyberDildonics
I just downloaded this and tried it out. Does it not compile at all on
windows?

The interface is so clean and fast I really want to start using it. It really
seems like a great way to try out ideas quickly but still end up with native
executable. There isn't even an install to go through which I actually really
like.

~~~
julesrms
We're actually waiting for a few gremlins in Clang/LLVM's Windows support to
get straightened out before it can successfully compile on Windows. Fingers
crossed we should be able to release a working version in the next couple of
weeks..

