"Safe" versions to use?

Hi folks,

Due to my own issues, I’ve been bitten a couple of times by differences between JUCE (7/develop) and Tracktion recently - and I thought I’d ask: besides the obvious (“use JUCE 6”), what is the recommended version of JUCE - and Tracktion - to use in building a new app, at the moment? Keep in mind we can track a little behind the develop- branches of both projects, if necessary - but we’d rather not do the JUCE6 → upgrade-later-to-JUCE7 dance, if it is at all possible.

So we’re using JUCE7/develop at the moment, but yesterday discovered - somehow - that Tracktion is now out of sync with JUCE7/develop - specifically the changes to audioDeviceIOCallback, which is replaced by audioDeviceIOCallbackWithContext - and I’m now left with trying to work out what is the ‘safest’ way to use both - while also getting some of the recent advances in bugfixes, but also having a stable build?

Any tips? I know, we should probably just be using JUCE6 for new apps, but some of the things that have been hitting develop- are pretty neat. If I could just understand what is necessary to keep Tracktion aligned with JUCE7/develop, I’d be a bit happier. Maybe you Tracktion devs have some clues about your tempo with regards to JUCE7 deprecations/updates?

Usually I would recommend using the latest of tracktion_engine/develop and juce/develop. The engine repo will tell you the particular commit we are using. We try to stay on the latest juce, unfortunately juce7 was released while we were trying to get Tracktion Waveform 12 free launched, so we paused updating juce while trying to get that release out the door. Now it’s out, we should be updating more regularly again. I’ve just pushed some changes so it will work with the latest juce 7 on develop. There were a number of const changes and I don’t want to wrap each on in an ifdef, so I think going forward juce6 support will be dropped and it will be juce7 only.

@dave96 is on holiday for the next week, he can comment more when he gets back.

2 Likes

Awesome - thanks for the tips about this, it settles my mind a little to understand the situation and know what your general policies are. I’ll try to tag along and keep up to date with you guys on /develop and hope to provide some feedback on progress as things move along on both sides.

I’m guessing Discord is the place to report breaking issues as the commits fly - I’ll try to participate there.

As Roland says we try to keep up to date with JUCE but as we release Waveform with the develop branch of tracktion_engine, we have to be a bit careful and that sometimes means being slightly off the tip.

The safest thing to do is just use the same commit as the tracktion_engine/modules/juce Git submodule is at (or the submodule directly) as that’s what the CI builds and all the tests are run against.


Regarding Discord, that’s a good place for general discussion and I try to dip in regularly but please bear in mind I can’t get notifications for when something is posted there (I think due to the size of the Discord) so responses won’t be immediate.

1 Like

Thanks for the tips Dave, I will be sure to follow your advice with regards to keeping up with tracktion_engine/modules/juce … I’ve since brought my project up to date with you guys and are building every day, at least, with the last 48 hours of changes you’ve committed - so thanks for having good practices and keeping us updated. I don’t mind a few hiccups here and there - I’m following your dev work pretty closely in lockstep after all - so its good to know what your expectations are.