Tutorial thoughts

In a couple of weeks, when my exams are over, I’m going to dedicate some time back to the Juce tutorial and juce.haydxn.net.

Seeing how Juce has a habit of changing quite substantially, I have to update it quite a bit. I’m going to have a ‘compatible with Juce vX.xx’ mark on the tutorial to make sure that it doesn’t cause problems with newcomers facing code incompatibilities.

I do really like the .PDF form that I put it in originally, and I plan on keeping a version like that available for all times. However, I do also really like the idea of having the tutorial chapters for view on the website. It’s quite a lot of effort to coordinate them though, which is a shame.

What do you guys prefer? I guess I’m starting to feel that the website version of the tutorials is probably more hassle than it’s worth. The .pdf version seems to go down quite well, and I can always keep older versions archived too.

On top of that though, what do you feel about the direction it’s going in? Do you think I’m going about it in the right way (starting out with Components and application stuff then moving onto internal stuff)? What sort of things would you like to see covered next (once I’ve finished the chapter I stopped on of course!)?

There’s also stuff on particular types of Component. ListBox, TabbedComponent, etc… I think that there will be a few sections to the guide; the current ‘tutorial’ entry point to Juce, and a section covering ways of implementing the various classes. I think I’m one of the few hardcore jucers NOT to have tried anything involving audio yet! I imagine there’ll be a few disappointed people waiting for a chapter on that :hihi: - sorry! I’ll get to that when I have time. I also plan on having a section on creating plugins (quite important of course for many people).

The other thing is the ‘getting started with juce’ starter section- i.e., how to actually get it all working on your system. That’s going to be on the website, rather than in the .pdf. Does that sound sensible? I’ll need some help creating guides for other platforms though. I’m unable to describe the necessary steps for getting it to build on Mac/Linux, or other windows compiler options than VCe. Would anyone be willing to help out there? There are a few things in the WiKi, but if I’m honest I don’t feel they’re quite descriptive enough; if you’ve read the tutorial you’ll be familiar with my style, and I’d like everything to be as easy to follow as possible.

My main goal is to have a site that I can refer interested coders to, which will give them all the information they need to be able to start writing their programs. The tutorial alone isn’t enough (I’m bored of saying the same thing over and over again when explaining how to get into it :wink: ).

TBH i can’t really remember what the purpose of this post was now, but please let me know if you have any suggestions/comments/ideas, or are willing to help with the platform startup stuff. I can do VCe no problem.

Thanks for working on the tutorial again, haydxn. I was eagerly waiting for the new materials. Since I’m very new to C++ & JUCE, I’m not sure how meaningful what I say would be (I myself don’t know). But, based on my experience so far, here they are.

For me, the pdf format is more than adequate. I’d rather see you produce more of your nice tutorial material than spend more time to duplicate the tutorial on the web. Anybody viewing your site can just open up the pdf version with a link.

I think having a cookbook section and a mini-project section on your website would be a big help (for me that is). The cookbook section would be a great reference to quickly findout how to do some simple stuff that might take me a while to look up in a book. The mini-project would be like a cookbook but with a much bigger scope. I think your tutorial is in a style that’s somewhere in between. And I like it. :smiley:

While replying, I just thought of this…it might sound stupid…
Maybe, if there is a section on your site that “develops” the current JUCE demo step by step, that would just knock me out. Maybe that’s too much work on your side and too much to ask for. I don’t know.

Currently I’m trying to create an app where a user enters a few parameters and it displays some resulting values. It should be simple. But, I’m trying to do this in the JUCE demo’s widgets page (because I like the way the demo looks and want to impress my friend). I keep getting all mixed up with the button listener stuff. Somehow the demo structure looks different from your tutorial in my eyes. Maybe I’m biting more than I can chew.

Anyway, sorry for my babbling. Thanks again for sharing the tutorial with us.

Thanks for taking the time to reply :slight_smile:

I like the term you use there - ‘cookbook’… probably end up using that on the site, for an expanding section of focused ‘recipes’ :slight_smile: - which is something I will definitely be doing (e.g. How do I make a list box?). It might even be a good idea to have little screenshots of things as an alternative to questions… like a ‘how can i implement something like this…’ section.

A larger project is also definitely something I want to do; I feel it’s very important to also establish concepts and strategies for building a ‘full program’ rather than just a little test app; these are things that I’m still trying to get to grips with (and also the reason for the DocAppGui framework i’m developing) and it would be good for newcomers to have some suggestions in practise at how to put it all together. I’m not sure quite what to do for that tho! My main interest is in MIDI handling stuff, but I want to think of something that is as general in appeal as possible… I want the readers to WANT to make it…

That’s a good idea for brainstorming actually… please, make your suggestions everyone, what sort of basic tutorial app project do you think would be good? Nothing too complex!

As for the difference in style between the tutorial and demo app- i’ll have a look into it, as you’re probably aware it’s been a fair few months since I wrote any of the tutorial :frowning: uni is almost over though, which is why I’m eager to get back into it.

oh, i’d also like to do a section on using the jucer to make things too. Here’s a question: Do you think it would be wise to START the tutorial with the Jucer? I can see merits to either way… perhaps I could give the reader an option…

Your idea of screenshots is really good. This “visual index” to the cookbook should speed up the question scanning process and also attract more casual browsers to JUCE’s potential! It may make me wanna do every one of them :smiley:

For me, I WANT to make these sometime.

  • Tic-tac-toe game with midi sound effect for each turn, winning, and losing moves.
  • Game of Simon with midi sound and “lighting effect” on the buttons.
  • Piano keyboard that plays appropriate midi sound. If possible, also display the music notation.
  • Typing tutor for kids.
  • A simple midi ringtone generation app for cellphones. Is that hard to make?

I’m constantly fighting with myself by jumping to do some big project and trying to get myself to learn the fundamentals first. So, I’m not sure what to say about Jucer. I already feel “spoiled” by using JUCE :smiley: But then, maybe I can learn it backwards. By studying what the Jucer outputs. My brain is wired heavily toward learn-by-example style, so that may work out well.

I think your idea of giving the student an option is good, although that might be a lot more work for you.

Maybe you could do the tutorial in something like DocBook that outputs to both html and pdf?

That’s pretty interesting, never heard of that before.

I do quite like editing it all in OpenOffice Writer though, I like the way it works and the way it exports to .pdf is neat. Not sure I’d enjoy editing it in XML form, but then who knows…

I’ll have an experiment when I get started back on it. Thanks for the suggestion :slight_smile:

Well it looks like you can still use OpenOffice: http://xml.openoffice.org/xmerge/docbook/UserGuide.html

i used your tutorial and found it very helpful to get an understanding of the basic concepts behind juce.

what would be nice is a pratical example of “how it all comes together”. the demo app is great for showing widgets and such, but the widgets are for the most part just eyecandy because they’re not plugged into anything. it would be nice to see how people use juce to actually do things. perhaps exploring a couple different techniques (should a couple different techniques actually exist).

Firstly I’d like to thank you for the tutorial!
It’s great!
For me the PDF - format is well. It’s good for reading on the computer-screen as well as for printing it out.
I’d prefer to have small, usefull programs described in the tutorial than a to big app.
Would like to have sections about this stuff:

  • Threads
  • MIDI (for example a MIDI-Plugin)
  • audio Plug-Ins

    Doesn’t matter what you decide to write about in the tutorial… I’m looking forward to read new stuff about Juce!

Cheers Luke

have you actually tried using docbook? i spent literally my whole night trying to set up a system of editing -> exporting a PDF, and as nice an idea as it is, the PDF using the default XSLT stylesheet is so much uglier than i’d have thru direct editing. you’d think that there would be a set of ready-made PDF ‘template’ customisations, but i’m buggered if i can find anything…

i think it may have all just been a big fancy pointless waste of time


I’d like to see an example audioplugin that shows to actually use the GUI widgets rather than just define and draw them e.g. how to use comboboxes to select from different cases. I would also like an example of how the midi buffer works to do a midi plugin please :smiley:

definitely planned. midiplugins are sort-of what i do best at the moment :hihi: so there’ll be a nice example i’m sure.

i’m currently trying to make sure that i have a good solid template/plan for the tutorial before i get back into writing the chapters, as it makes my life a whole lot easier.