[SOLUTION] to using Maximilian on Juce 6 + Visual Studio 2019 - The Audio Programmer Juce Tutorial 21

I encountered some issues recently when following along with Josh Hodge’s excellent Juce Tutorial series on The Audio Programmer YouTube channel. The suggested Maximilian library does not appear to play nice with VS 2019 without some fiddling. Following a bit of to and fro on The Audio Programmer Discord, we’ve come up with a solution that will help learners progress with this YouTube Video service.

YouTube link: https://youtu.be/wEDr-gJxc_I

The problem and solution are described in the README.md of a github repo created solely to demonstrate and explain this problem.

Thanks Stu for doing this!

There are actual compilation errors that I believe have been sitting on the Issues of the original Maximilian branch, may be we can do a pull request to fix it in the original depot as well.

1 Like

You read my mind. I’ll actually be taking a look at the source Maximilian repo this weekend. I am somewhat restricted in testing though (I only have access to a Windows Machine), and I have yet to use Maximilian in anger - but will be working through The Audio Programmer course on building synths this week so hopefully will have a better idea.

My current “how to” repo is really just to help students of The Audio Programmer get started on the synth building element of the course.

Very cool of you read and respond.

1 Like

It would be better if The Audio Programmer made new videos about the synth building, using the Juce DSP classes. Those old tutorials using Maximilian regularly pop up in discussions as having problems.

Still, it’s also worth noting that neither Maximilian nor Juce implement production quality oscillators. Both use simple approaches to the waveform generation that won’t produce high quality results.

1 Like

@xenakios - I agree. Much of the YouTube Juce tutorials content has been superceded, but they are one of the few sources of cohesive learning for Juce. As I understand it , Josh at The Audio Programmer has recently created a paid for course on Building Better Audio Plugins with Juce. I’m not sure if those cover high quality, efficient oscilators, but the content will be more up to date.

In the meantime, for those of us who can’t yet stretch to the cost of the paid for course, I think working through the free-to-view YouTube content and adding comments/linking to publicly accessible updated repos might be a step in the right direction.

Once again - thanks for your help earlier today in getting Maximilian, Juce 6 and Visual Studio 2019 playing nicely together. :smiley:

Hi Stu,

I’m new to JUCE and following the Audio Programmer tutorials and ran into some roadblocks setting up Maximilian. I was glad to see that you made a version for Visual Studio, but I ran into some issues with this as well. When I opened this project, many of the files showed up in red, and the Projucer is unable to open the project in Visual Studio. Here’s a screenshot to show what I mean:

I tried removing the problematic files. The result, of course, was that the compiler could not open the source files. To resolve this, I included a different copy of the Maximilian library, stored in my main Libraries folder, with “Include Directories” in the project properties in VS. Then the compiler recognized the source file “maximilian.h”, but I still got compiler errors for all the files in the “src/libs” folder within the project. So I deleted that whole folder from the project to see if it would compile. It did compile and built without errors!!! …until I added a “maxiOsc” object. LNK2019, “unresolved external symbol.”

I’ve been researching this error and it seems like it has to do with a library needing to be “linked” which usually involves .dll or .lib files. However, Maximilian has no such files. Do I need to somehow compile the Maximilian source code in order to link the library? Do I need to actually figure out how to use CMake? (I hope not…)

Sorry for the long-windedness of this reply, I am lost and would greatly appreciate any guidance you may be able to offer.