@daniel I have approached JUCE before once, and tried going through the tutorials and was able to successfully get this same tutorial completed. I am not sure what has changed since that prior version. I do see that there are a couple words in a small one line sentence above that block of code that mentions the inheritance. as I mentioned in one of my responses to my own post, I think a simple solution could be to HIGHLIGHT with a color text background the changes that you want to draw attention to… much like DIFF Checking, its hard to sometimes see with the naked eye immediately what is different in a block of code, especially when you provide the whole block again with one obvious new line… and in the prior section of the tutorial the changes were supplied as “add this line” and a … where the prior code would be and just the new line to draw focus to it… so there is a clear lack of uniformity to the way information is presented.
because everyone has different varying levels of understanding, styles and techniques they use in programming, they may draw different conclusions from the errors presented. I had no idea that the lack of those two words at the top of the class could be the source for the error that I received, and so my natural assumption to form based on my knowledge was to follow the error’s implication that the function should require a Virtual Void since it said “only virtual member functions can be marked ‘override’”
JUCE is overall impressive and full featured, and a clear route toward cross platform audio and visual application development, but since it’s so feature rich and making use of newer C++ features, it’s hard to know where to start other than the tutorials.
The obvious place to start as a new user is from the first tutorial, and the non-linearity can actually function as a potentially huge distraction from getting anything completed. When the tutorials tell me mid way through to go to another tutorial, and I am almost done with this one, what do I do? Go start up another tutorial and then go down each tutorial it suggests and end up with 5 half finished tutorials? I can’t imagine that ever panning out. What I think makes more sense is instead of branching off tutorials falling through a giant wormhole and never getting anything working, to add link to bits of relevant API Documentation, where the API doc has small examples of working code.
This is something I think works extremely well in the structure of learning MAX/MSP and how they allow non-linear learning. In MAX, at any time I wonder what a node does, I can option click it and get a full working example patch or patches that document the ways to use that node. this way you can fill in your gaps in understanding of that specific object and immediately chose to return to the main patch or tutorial… and you are never at a loss for immediate filling in of gaps in knowledge.
What I propose as a possibility, is that if the JUCE code editor featured a right click dropdown option that linked to the API doc for that object, with example of its use and what it needs to work, that would be pretty helpful. Possibly also links in the API doc to relevant tutorials.
In general I think non-linear learning is the way to go, but not as much non-linear tutorials. The reward of completing a tutorial that validates the learning process is the completion of a functional working example. I also think it is worth referencing that thebookofshaders.com site, they introduce the most bare bones simple example in the beginning and every concept is introduced in a way that encourages experimentation and exploration. The same is true of MAX. These methods give a bit more of a guided understanding of how to make use of the concepts provided beyond their scope, rather than blocks of code that risk not working if you manually copy them… based on my re-examination of these first tutorials, I feel even more encouraged to copy paste the blocks of text than to explore or do anything that would remotely help with direct retention of information. The current style of learning may work ok for wrote memorization, but not for understanding and creativity.
@daniel Nice book, I also like the Tibetan Book of the Dead translated by my dads friend Robert Thurman https://www.amazon.com/Tibetan-Book-Dead-Liberation-Understanding/dp/0553370901