Are the demo examples supposed to compile "out of the box"?


#1

I thought it was time to check out some of the new? demo examples such as the Arpeggiator plugin so I downloaded the current developer edition from github.

I kinda expected all I had to do was to look up the appropriate build such as visualstudio2015/arpeggiator.sln and run that just as before. However, the result was not an arpeggiator but merely loads of include errors such as

fatal error C1083: Cannot open include file: ‘juce_audio_devices/juce_audio_devices.cpp’

emanating from file contents such as

include <juce_audio_devices/juce_audio_devices.cpp>

Am I supposed to set up any global include path directives inside (or outside) visual studio or do the samples need to reside in any special location?

I guess I could resolve this myself in one way or another but I suspect I’m not the only one having this problem and considering that running samples might be the first close encounter with Juce for many, I thought I might as well raise this question…


#2

They definitely should all compile out of the box! We have a lot of examples though, could be that some of them need testing…


#3

Sorry, the compiler errors I mentioned was due to my removal of juce/modules dir…

Apart from this there are some more steps neccessary to compile the arpeggiator (assuming vs2015):

  1. Create directory c:\SDKs (if you name it something else you’ll have to update rel section of the property pages)

  2. Download VST 3.x.x plug-ins sdk from http://www.steinberg.net/en/company/developers.html and put it in c:\SDKs.

  3. Either download some aax stuff i don’t know about and put it in c:\sdk:s or right click juce_audio_plugin_client_AAX and exclude it from build. If you skip the aax stuff you also have to modify the post build steps by removing all lines containing aax, leaving only
    copy /Y “(OutDir)\$(TargetFileName)" "(OutDir)$(TargetName).vst3”

To keep up with the current state of art, you might as well crank up the Platform version from 8.1 to 10.something as well as change the configuration from win32 to x64…

Unfortunately when scanning for plugins with the plugin host there’s an assert at line 292 in juce_VST_wrapper.cpp because

bool success = setBusArrangementFromTotalChannelNum (maxNumInChannels, maxNumOutChannels);

actually is no success. (maxNumInChannels = maxNumInChannels = 0)

// please file a bug if you hit this assertion! it says, which I do hereby.

I guess it has something to do with the newly revised bus concept which I’m not familiar with so I’ll leave it there for someone more knowledgeable to look into.


#4

Which sample plug-in is giving this assertion? Are you sure you re-built the infringing plug-in with the latest version of JUCE.


#5

The arpeggiator. Testet in plugin host. Downloaded developer branch yesterday evening from Github. Tried both 32 and 64 bit. Same resultat. Only change i did was to skip the aax stuff. Could that be the reason for failure?


#6

Should really be working. You are on develop right?


#7

Ähumm, I fear I might have reached my (in)competence level, at least regarding git…

I go https://github.com/julianstorer/JUCE, switch to Branch:develop, click Clone or download, copy the suggested link into my command prompt git clone.

However if I switch back to master (on the github web site) I see now I’ll get exactly the same download link. Shouldn’t there be a different link for master and develop?


#8

At the command line in the JUCE directory you need to change the current branch.

Type:

git checkout develop

This will change the active branch and you will see the changes.

EDIT: FYI when you copy the link from clone on Github you are copying a link to the full repository rather than an individual branch I believe. Changing the branch on Github just allows you to view the code state for that branch and see that branches commit history etc etc.


#9

After cloning you need to switch to the develop branch

git clone https://github.com/julianstorer/JUCE.git
git checkout -b develop origin/develop

Edited to use https github link for users who don’t have an ssh key setup with github


#10

This gives error

Please make sure you have the correct access rights and the repository exists.

Seems to work fine. But the cloned juce is over 1 GB. Do I have to download all this to get to the developer branch?

Can I see in the source code if I’m working with the developer branch or do I have to do git checkout develop/master to be sure which branch I’m on?

The arpeggiator works as expected now by the way. Except maybe for the four green outgrowths when tested in Plugin host. Looks like audio in/outputs, but isn’t the arpeggiator supposed to be a midi only plugin?


#11

The command should be:

git clone https://github.com/julianstorer/JUCE.git

Think without the colon.

You need to pull the full repository yes. Both master and develop branches.

If you really want to try cloning a single branch look at this thread (thought I’m not sure it’s worth the hassle)

You will see the source for the current active branch. So if you clone the repo and then type git checkout develop whilst in the JUCE directory you sill see the source code as is on the develop branch. i.e. the additional / differing code that is not on the master branch. If you were to then git checkout master and look through the source again you would see the code as is on the master branch.

Hopefully that makes sense. Probably worth doing a quick study up on Git itself. The official tutorials are pretty much all you need to get up to speed for basic development.

https://git-scm.com/docs/gittutorial

I remember banging my head against Git in earlier newbie days and until I took the time to quickly smart up on Git it caused me various pains in the a**.

Josh


#12

Thanks Josh.

You say “the additional / differing code that is not on the master branch”. Just to be clear; If I do git checkout master after I’ve done git checkout develop I’m back on the master branch, that is the content of e.g. /modules is the current official juce release? And then if I do git checkout develop again, /modules now consist of the develop branch again?

I tried some git manuals a while ago but soon realised I’d rather learn something more ligh-weight like… quantum meachanics or so. I’m totally ok with downloading some gigabytes once in a while and doing checkout develop


#13

You say “the additional / differing code that is not on the master branch”. Just to be clear; If I do git checkout master after I’ve done git checkout develop I’m back on the master branch, that is the content of e.g. /modules is the current official juce release? And then if I do git checkout develop again, /modules now consist of the develop branch again?

Yep. Correct.

I tried some git manuals a while ago but soon realised I’d rather learn something more ligh-weight like… quantum meachanics or so. I’m totally ok with downloading some gigabytes once in a while and doing checkout develop

Haha. Go on…It’ll become your friend…honestly :wink:


#14

Well, with friends like that, I won’t need no enemies…


#15

Trust in me…

SCNR


#16

Forum gold.