AudioTK library

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

Yeah, I should probably have a simple toy example plugin and then explain how it is built on a blog post. I'll plan it soon.
Thanks!

Post

Ugh..the quest continues... :oops:

Release builds work fine now, but I've tried to do a debug build:

Image

I guess this means I also have to do a debug build of the ATK library first right ? (I've only done a release build so far).

If so, how do I do the ATK lib folder structure ?
Currently I have:
ATK_root
- 32
release build
- 64
release build

Where do I put the debug builds ?
Or need I just to switch a setting in visual studio ?

Post

Most definitely. A debug build for your application should always be matched with a debug build of the libraries.
It's a switch setting in VS, just select the Debug build instead of release.

Post

Thanks.

But when doing a debug build of the ATK library, where shall I put the binaries ?

Can I make it so that in future VS picks up the correct version of the library automatically depending on if I do a debug or release build of a plugin ?

Post

By default, VS will build the libraries in a Release or Debug folder. If you are installing them somewhere and use the installed version, then you must pay attention to which version you installed before (Release or Debug), VS can't do this for you, unfortunately.
If you want to pick up the proper library, then you may want to modify the debug name by postfixing a 'd' for instance. I don't remember the name of the cmake function to do so.

Post

I've started releasing binaries on github (compiled automatically by travis-ci).
I have a plan for a future tutorial, as No_Use suggested. Perhaps in the next couple of weeks.

Post

While building the ATKStereoUniversalDelay example (using Master branch) I think I found a small bug / quirk:

In resource.h images are specified as

Code: Select all

#define UNIVERSALDELAY_FN "resources/img/Background.png"
#define KNOB_FN "resources/img/uni-small.png"
#define KNOB1_FN "resources/img/bi-small.png"
while in resources/img/ there are contained:

Code: Select all

bi-small.png 	
metal.png 	
uni-small.png
Thanks btw. for keeping my tutorial suggestion in mind.

edit:
About the tutorial, I'll list my beginner's pitfalls here maybe you find it useful for mentioning in the tutorial (for building plugins on Win):

CMake:
- Enable static libraries
- set MSVC_Runtime to static
- make 32/64 install versions by choosing the appropriate generator

VisualStudio:
- build debug and release versions of the library if you want to build debug and release versions of plugins

- For building the ATK-plugins, make an environment variable "ATKROOT" (this is mentioned on the GitHub page already).
Folder structure should look like this:
%(ATKROOT)
/32
//include
// lib
/64
//include
//lib
Last edited by No_Use on Fri Mar 10, 2017 2:26 pm, edited 3 times in total.

Post

Oh, I didn't recompile the Windows plugins, so indeed, there may be several of these discrepancies, as I recreated all the OS X projects. Some Windows files may have been changed in the process (probably the end of the alphabet :/).
Thanks!

There should be a small tutorial on my blog next Tuesday.

Post

Actually, that's a plugin that I will soon release properly.

For 2.0.0, I refactored lots of things and added the option of having complex filters (useful for adaptive filtering). Soon out...

Post

Is there any chance you would also release windows debug binaries on github ? The release binaries work great, but they can't be used in debug builds of my app.

Thanks !

Post

Hi,

I could add this on the CI builds, but it's quite cumbersome. Also please note that these builds are not complete and lack some tools that the CI don't provide (like working patched VS2017).
If you are using JUCE, you can directly use the source code and add the modules inside JUCE, or you can also compile the library yourself if the need is urgent (I don't have plans at the moment for a new release, but I'll consider adding the 64bits debug builds for VS2017).

Post

I managed to build it myself but it was quite painful... I had to patch some of the cmake files to get it through the build.

Also, things like this did not compile with VS2017:

Code: Select all

boost::math::tools::polynomial<DataType> poly1({-z[i].real(), 1});
and I had to change them to this:

Code: Select all

const std::vector<DataType> d{-z[i].real(), 1};
boost::math::tools::polynomial<DataType> poly1(d);

Post

On an unrelated note - in your TS9 example, you oversample x4 and then filter to 48000 before decimating. Shouldn't it filter at nyquist instead ?

Also, in some cases the TS9 overdrive generated NaN, given valid input samples. Do you have any ideas why that would be ? I couldn't get it to happen after changing the oversampling to x8, but it makes me a bit nervous that it can happen under unknown conditions....

Post

Big Tick wrote:I managed to build it myself but it was quite painful... I had to patch some of the cmake files to get it through the build.

Also, things like this did not compile with VS2017:

Code: Select all

boost::math::tools::polynomial<DataType> poly1({-z[i].real(), 1});
and I had to change them to this:

Code: Select all

const std::vector<DataType> d{-z[i].real(), 1};
boost::math::tools::polynomial<DataType> poly1(d);
Strange, my only Windows platform is VS2017 and I didn't have issues? Which Boost versiona re you using?
What are the changes you had to do? The CMake GUI should have made it possible to configure everything without changing anything inside the code (at least that's what happens on appveyor).

Post

Big Tick wrote:On an unrelated note - in your TS9 example, you oversample x4 and then filter to 48000 before decimating. Shouldn't it filter at nyquist instead ?

Also, in some cases the TS9 overdrive generated NaN, given valid input samples. Do you have any ideas why that would be ? I couldn't get it to happen after changing the oversampling to x8, but it makes me a bit nervous that it can happen under unknown conditions....
Strange, I thought it couldn't generate NaN, it should have output constant data if the convergence failed. I'll have to look at it again during the holidays.
What's the link for the TS9 example? In the test folders, everything seems to cut at 20kHz, not 48kHz? I must be looking at the wrong page.

Post Reply

Return to “DSP and Plugin Development”