Tracktion Engine now Open Source!

Actually the PitchAndTimeDemo sometimes fails to render the pitch and time changes too and I am getting jasserts fired when debugging in bool AudioFile::deleteFile() const. (I suppose the stuff generally speaking works since the code is used in Waveform but maybe there’s some problem in the demo application code.)

Yes, the channel matrixing and panning stuff is annoying and users will never be completely happy especially with the panning. It would be best to allow using a custom object for the panning and maybe provide just a really simple default implementation so that some testing can be done immediately.

It could be, I wrote it very quickly.
Is this on Windows by any chance? Windows likes to hang on to file handles and won’t let you delete them if it’s open. I think I can remedy this with a call to SmartThumbnail::releaseFile, I’ll take a look.

The pitch and time processing failing I’ve confirmed on Windows, I can’t remember if it did that on macOs. When I added my reversing code, that fails both on Windows and macOs.

I’ve fixed the assert and clearing the isReversed flag. However, I’m not seeing the failures in changing the pitch or tempo? Does it happen fairly consistently or only with certain files or tempo/pitch values?

Can someone please enable the metronome in the StepSequencerDemo (edit.clickTrackEnabled = true;) and set the BPM to 96 and let me know your findings? I’m getting a double tick when looping.

Yes, double click at step 15.

It looks like the error start to separate at 90BPM and then by the time it gets to 96 it’s pretty much a fully noticeable.

EDIT: It seems the timing for everything is messed up in that example, funny I didn’t notice until you mentioned, then hearing it, wow how could you miss it.

Thanks for confirming. I noticed it too and wanted to see if it was in the engine timing so I enabled the metronome.

I’d need to recheck with the original code, I’ve already done extensive changes to both the engine and the PitchAndTimeDemo code. What did you do to fix the reversing issue? (edit : Ah ok, so you have access to the main repo and the changes are in the develop branch…The stuff seems to be working OK now after some quick tests with the new code!)

I have fixed the StepSequencerDemo and pushed a change to the develop branch.

2 Likes

Nice, works perfect here now.

@RolandMR So do you work on Tracktion Engine and/or Waveform? EDIT - just looked at your web site, question answered.

Yup.

4 Likes

Is there a sample edit file that is used for the PlaybackDemo (I tried some from t6 and they did not load - I have waveform but it is on a different machine at the moment)?

Minor point, but the documentation is a little sparse in some important places:

/**
    The Tracktion Edit class!
*/
class Edit  : public Selectable,
              private juce::Timer

Ah - found that one:
" Edit

The Edit is the container for a playable arrangement. It holds tracks, tempo sequences, Racks etc.

Track

Edit contains a list of Track s. There are several different types of Track such as AudioTrack s which output audio, TempoTrack s, MarkerTrack s etc. We’ll come on to all of them in time but at the moment you’ll probably only need to be familiar with AudioTrack ."

“Edit” is an unfortunate naming choice since it’s not so clear it means what other applications call “projects” or “sessions” and the like. “Edit” kind of sounds like you are doing edits to a single sound file or something…

2 Likes

Or an editor - as in some sort of GUI component - which I understand this engine doesn’t have any of?

The way I took ‘Edit’ as, is it’s a state of “something”. It’s feels like a context object, maybe I am wrong but it seems the center of projects, track, clips etc.

1 Like

Oh dear, I just realized the engine also does have a Project class…This was actually the thing that threw me off when trying to use the Tracktion DAW. When I set up a “project”, it also required me to add an “edit” in order to actually be able to do something like in other DAWs. (Most of which just open a new ready to use project directly.)

I know…It kind of makes sense that a “project” actually would contain multiple songs, arrangements, sections etc but it can be a bit confusing when coming from other DAW applications.