Audio Programming Environment 0.3 - x32/x64 on win + mac (vst/au)!

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

Post

A simple 4in/4out would do, 8in/8out would be perfect.

I don't see any problems with 5.1, as long as the DAW passes it 6 channels it should output them on the same channels?

Post

camsr wrote:A simple 4in/4out would do, 8in/8out would be perfect.

I don't see any problems with 5.1, as long as the DAW passes it 6 channels it should output them on the same channels?
Okay, can you try this version out for me?

APE Multichannel

It should have 8 inputs/outputs (and maybe surround?) - be sure to confirm amount of channels inside your code with:

Code: Select all

api.getNumInputs();
api.getNumOutputs();

Post

It's no go, error:
Error loading resource <fl studio path>/resources/background.png

??

Post

camsr wrote:It's no go, error:
Error loading resource <fl studio path>/resources/background.png

??
You will need to replace the "Audio Programming Environment.dll" in the original package with the identical file in the download link (and the architecture must match)

Post

I thought that's what I did, will try again.

...

Problem was renaming the DLL.

Post

I am trying to compile your example (should work right? :)) but I get these errors...

Compiler : Generator : No compiler exists for project
Compiler : Generator : Setting not found
Compiler : Generator : languages.c.compiler.exports.GetSymbol

Post

camsr wrote:I am trying to compile your example (should work right? :)) but I get these errors...

Compiler : Generator : No compiler exists for project
Compiler : Generator : Setting not found
Compiler : Generator : languages.c.compiler.exports.GetSymbol
What exact example? Did you get this problem after the new version (did the old one work?)? Can you post the exact errors (ie. enable logging, output will be in /logs/)

Did you ever alter the config.cfg file?

Post

The one in the screenshot last page. It gives a string error not related to the other version when I compile it with the 2 channel version.

How do I enable logging?

I only used this whole thing so far as you have said! So there shouldn't be any problems...

Post

camsr wrote:The one in the screenshot last page. It gives a string error not related to the other version when I compile it with the 2 channel version.

How do I enable logging?

I only used this whole thing so far as you have said! So there shouldn't be any problems...
open up the config.cfg file, and set

Code: Select all

	log_console = false;
to

Code: Select all

	log_console = true;

Post

2 channel version

[13:7:31] > [Engine] : Audio Programming Environment <VST 2.4> (instance 650241) alpha 0.3.0 (32-bit) release loaded.
[13:7:31] > [GUI] : Activated protected buffers.
[13:7:58] > [Compiler] : <string>:17: error: identifier expected
[13:7:58] > [GUI] : Error compiling project.

8 channel version

[13:14:21] > [Engine] : Audio Programming Environment <VST 2.4> (instance 498688) alpha 0.3.0 (32-bit) release loaded.
[13:14:21] > [GUI] : Activated protected buffers.
[13:14:36] > [Compiler] : [Generator] : Setting not found!
[13:14:36] > [Compiler] : [Generator] : languages.c.compiler.exports.GetSymbol
[13:14:36] > [GUI] : Error compiling project.

The source code...

Code: Select all

#include <CInterface.h>

struct PluginData 
{
	float vl[100];
};

GlobalData("CamSR\test MULTIchannel peak meter.c");

enum Status onLoad() 
{
	api.printLine(color.green, "%d, %d", api.getNumInputs(), api.getNumOutputs());
	char buf[100];
	for (int i = 0; i < api.getNumInputs(); ++i)
	{
		sprintf(buf, "Channel %d", i + 1);
		api.createMeter(buf, $self.vl[i]);
	}
	return status.ready;
}

enum Status onUnload() 
{
	return status.ok;
}

enum Status processReplacing(VstFloat ** in, VstFloat ** out, VstInt32 sampleFrames) 
{
	auto numChannels = api.getNumInputs();

	for(unsigned channel = 0; channel < numChannels; channel++)
	{
		// do stuff by the channel block here...
		for(unsigned frame = 0; frame < sampleFrames; frame++)
		{
			//do stuff on samples in channel...
			self.vl[channel] = out[channel][frame] = in[channel][frame];

		}

	}
	





	return status.ok;
}

enum Status onEvent(struct eventInfo * e) 
{
	return status.ok;
}

Post

camsr wrote:2 channel version

[13:7:31] > [Engine] : Audio Programming Environment <VST 2.4> (instance 650241) alpha 0.3.0 (32-bit) release loaded.
[13:7:31] > [GUI] : Activated protected buffers.
[13:7:58] > [Compiler] : <string>:17: error: identifier expected
[13:7:58] > [GUI] : Error compiling project.

8 channel version

[13:14:21] > [Engine] : Audio Programming Environment <VST 2.4> (instance 498688) alpha 0.3.0 (32-bit) release loaded.
[13:14:21] > [GUI] : Activated protected buffers.
[13:14:36] > [Compiler] : [Generator] : Setting not found!
[13:14:36] > [Compiler] : [Generator] : languages.c.compiler.exports.GetSymbol
[13:14:36] > [GUI] : Error compiling project.

The source code...

Code: Select all

#include <CInterface.h>

struct PluginData 
{
	float vl[100];
};

GlobalData("CamSR\test MULTIchannel peak meter.c");

enum Status onLoad() 
{
	api.printLine(color.green, "%d, %d", api.getNumInputs(), api.getNumOutputs());
	char buf[100];
	for (int i = 0; i < api.getNumInputs(); ++i)
	{
		sprintf(buf, "Channel %d", i + 1);
		api.createMeter(buf, $self.vl[i]);
	}
	return status.ready;
}

enum Status onUnload() 
{
	return status.ok;
}

enum Status processReplacing(VstFloat ** in, VstFloat ** out, VstInt32 sampleFrames) 
{
	auto numChannels = api.getNumInputs();

	for(unsigned channel = 0; channel < numChannels; channel++)
	{
		// do stuff by the channel block here...
		for(unsigned frame = 0; frame < sampleFrames; frame++)
		{
			//do stuff on samples in channel...
			self.vl[channel] = out[channel][frame] = in[channel][frame];

		}

	}
	





	return status.ok;
}

enum Status onEvent(struct eventInfo * e) 
{
	return status.ok;
}
Firstly, there's a typo here:

Code: Select all

      api.createMeter(buf, $self.vl[i]);
Should be a & instead of $ no?
I'll investigate the other issue, seems bizarre though (there should be no other change between the versions unless i missed something... Care to post your config.cfg file on pastebin or something?

Post

http://pastebin.com/aLqnh6XU

Can't stand this qwerty BS ! LOL :D

Post

I think this is due to an actual 'bugfix' i made i didnt note that silently didn't error before... Try replacing this part:

Code: Select all

        c:
        {
 
                extensions = ("c", "h", "cc");
 
                compiler:
                {
                        name = "Tcc4Ape";
                        path = "/compilers/tcc4ape/tcc4ape.dll";
                        arguments = "-D_USE_TCC_HEADERS";
                        exports:
                        {
 
                        }
                }
with:

Code: Select all

        c:
        {
 
                extensions = ("c", "h", "cc");
 
                compiler:
                {
                        name = "Tcc4Ape";
                        path = "/compilers/tcc4ape/tcc4ape.dll";
                        arguments = "-D_USE_TCC_HEADERS";
                        exports = 0;
                }

Post

Now working, thanks a lot!

Is there somewhere I can donate a few bucks? I really appreciate your work on this plugin.

Post

Actually, I was hasteful with that post, it's working but the first two channels are going in and out on the other channels also, like the buffers are duplicated.

In FL Studio, if I route discrete mixer tracks into the plugin via the wrapper settings, the problem disappears. It seems to only affect the default input.

Post Reply

Return to “DSP and Plugin Development”