Any references to learn about juce (beside forum, official tutorials and documentation)


#7

Well - even if it is not current JUCE code it was a very good example to get going. :slight_smile:


#8

There is also a Youtube channel called “The Audio Programmer” initiated by @JoshuaHodge with tutorials…


#9

I remember powering through this on a flight when I was getting started: https://www.amazon.co.uk/Getting-Started-JUCE-Martin-Robinson/dp/1783283319

There’s also a bit on Juce in here:


#10

…and also several years of excellent videos on YouTube from the ADC event - you can find them collected in the JUCE channel. Watching those and studying the source to the examples and extras that ship with JUCE will repay you over and over.


#11

Oh right, totally forgot about that.
And adding Timur’s talk on youtube, held at the C++Con 2015. I think a part two of that exists as well…

So there is plenty, and TBH the forum search brings up a lot of similar collections.


#12

Do any music tech / comp-sci uni courses teach their DSP with a drop of Juce to illustrate some real world plumbing and make the labs a bit more fun? It’s the sort of thing I’d have loved to have taken an optional module on at university.


#13

Yes there are a few universities that teach with JUCE. We’re more aware of those in the UK (Queen Mary, Goldsmiths, Bristol, Portsmouth) but there are many more outside of the UK including Stanford, which has materials published online.


#14

Nice! There are a lot places to visit, I see, also some I did not find myself. Thanks to everybody!


#15

Yes, I first learned about JUCE through uni (UWE, Bristol) studying Music/Audio Tech. We mostly used Max/MSP for DSP theory but had a few optional modules in 3rd year for developing JUCE apps.


#16

Sounds cool. What kind of Juce apps did you see being developed on the course?


#17

For my final year project/dissertation I was developing some machine learning stuff following some of the talks at ADC 2016. There were others looking into machine learning too, a few guys developed some surround-sound stuff. I remember one guy was attempting to emulate the visuals people with Synesthesia experience when they hear certain sounds.
A lot of cool creative ideas but most of us hadn’t written a single line of code before starting uni so we were a bit lacking on the technical side. I don’t know how many people from my year are still actively using JUCE - maybe I’m the only one! :thinking:


#18

One thing I’m finding helpful in my experience with JUCE is that it’s really important to have a good handle on C++ as a language.

I know that sounds like stating the obvious, but so many things that I’ve been seeing in helping others through The Audio Programmer (and in my own experiences) is that many of the difficulties arise from not having a good understanding of the language and it’s data structures etc.

I’ve found this awesome course that had been really helpful for me, and I think if you’re committed to really learning how JUCE (and C++) really works you’ll find it to be a nice supplement.

It’s called Design Patterns for Data Structures (Pepperdine University) and it goes through many of the fundamentals of the C++ language- inheritance, pure virtual functions, object oriented design, algorithms, abstraction etc and takes you step by step through everything.

Available for free via ITunes U: https://itunes.apple.com/us/course/data-structures/id546468797

Hope this helps others as it has for me :grin:


#19

Thanks @JoshuaHodge! This really looks interesting.
I find myself in the same place as @CreativeSimon, as that I’m not only new to JUCE but also to C++. Creating AudioApps and Plugins is my main goal and drive to learn programming. And although I had a basic C/C++ course in university, I only started to code because I found out JUCE existed.
I think there are a lot of people new to the game, silently browsing the forum and looking for some examples of basic code, showing how some of the fundamentals are done that are not covered in the tutorials.

Two things that I would have loved to found about sooner:

  • in the JUCE folder where your Projucer is there’s a thing called DemoRunner and a folder called examples. Go through all the examples and look what the code is doing. Look up every JUCE class you don’t know in the online class index and every C++ you don’t understand in a basic C++ book. Thats the way I thumbled my way through…
  • DBG() is your best friend!

#20

@Wolfdad I probably heard about it already, but: What do you mean by DBG() ? :see_no_evil:


#21

DBG() is just a handy macro to output debugging messages with debug builds. I checked that only today because some people had mentioned it, I hadn’t even realized it’s a thing in JUCE. (I have just been using JUCE’s Logger directly.)


#22

Yeah, like @Xenakios said, it writes messages to your Console area in your IDE (in Xcode its in the bottom right for example) when you build in debug mode.
Using it in a way like

void prepareToPlay (int samplesPerBlockExpected, double sampleRate)
{
    DBG("now in prepareToPlay() with a sampleRate of " << sampleRate);
    transportSource.prepareToPlay (samplesPerBlockExpected, sampleRate);
};

or checking other values in your classes helped me a lot!


#23

Does DBG() have any advantages over std::cout, which is what I’ve been using for console logging?


#24

DBG will only print out things in debug builds while std::cout will also print in release builds. Furthermore, DBG directly accepts juce::String, which makes it handy for outputting strings from JUCE functions.


#25

Cool, I suspected as much. DBG sounds like a winner :slight_smile:


#26

I am also new to JUCE and currently in the process of learning so I thought I would share my 2 cents.

For JUCE itself, I am mostly using the official tutorials and some of the videos from @JoshuaHodge (mentioned above, see The Audio Programmer). I like books so I also looked at


but unfortunately it looks a bit dated (2013). I am not aware of many other (up-to-date) resources apart from those mentioned above.

Regarding C++, I should mention that I am an experienced developer in other languages, but relatively new to C++; as such, I have been looking for resources to help me get started quickly (without having to go through the basics again). With this in mind, I am currently looking at


which provides an overview of “modern” C++ for someone with prior programming experience (notice this is the brand new 2nd edition which should cover all the latest features).

I also really like this YouTube channel from TheChernoProject - it has great explanations of C++ topics, demonstrations etc. Every time I watch one of those videos I learn something (whether it’s a concept, some Visual Studio trick etc.)