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

DSP, Plug-in and Host development discussion.
KVRian
628 posts since 18 May, 2010

Post Mon Apr 14, 2014 11:35 pm

FLWrd wrote:Great! I'm going to give it a try!
I got it to work. Pretty easy, but during validation (on opening Logic), I got the message 'cannot open document "Untitled"' a few times. I'm going to try a few things with it. Thank you very much for the effort you put into this.

KVRian

Topic Starter

553 posts since 1 Jan, 2013 from Denmark

Post Tue Apr 15, 2014 4:44 am

FLWrd wrote:
FLWrd wrote:Great! I'm going to give it a try!
I got it to work. Pretty easy, but during validation (on opening Logic), I got the message 'cannot open document "Untitled"' a few times. I'm going to try a few things with it. Thank you very much for the effort you put into this.
Nice, excited to hear. Yes, that is a small bug - pretty harmless.

It happens if you open ape and don't open the editor, and continue to save the project and recall it (the editor never opens a textfile, and thus when it is restored it is asked to restore a 'untitled' file). Pretty stupid but it is fixed next release. :)

Thanks for trying it out.
camsr wrote:I will put it through it's paces soon,trust me :D
8)

User avatar
KVRist
144 posts since 23 Apr, 2006 from London, England

Post Wed Apr 16, 2014 10:42 am

This tools is fantastic for prototyping.

I've created a simple lua build script so that I can modularise a little :) The script concatenates header/implementation files based on a list of modules with the headers being written first.

Code: Select all

--  ---------------------------------------------------------------------------
--  Writes .h/.c files into a single .c file for APE
--
--  example ape_setup.lua
    --[[
        setup = {
            modules = {
                apeMain,
                iirFilter
            },
            
            output = "outputFile.c"
        }
    ]]--
--
--  Header files are written first, so from that setup, the following files in
--  the order below will be concatenated into "outputFile.c":
--  1. apeMain.h
--  2. iirFilter.h
--  3. apeMain.c
--  4. iirFilter.c
--  ---------------------------------------------------------------------------


function loadSetup()
    return dofile ("ape_setup.lua");
end

function writeModuleWithExtension(extension, modules)
    for i, currentModule in pairs(modules) do
        local filename = currentModule .. extension
        local file = io.open(filename, "r")
        
        -- File exists ?
        if file ~= nil then
            io.write(file:read("*all"), "\n")
            file:close()
        end
    end
end

function writeModules(outputFile, modules)
    io.output(outputFile)
    
    writeModuleWithExtension(".h", modules)
    writeModuleWithExtension(".c", modules)
    
    io.output():close()
end

function main ()
    local setup = loadSetup()
    writeModules(setup.output, setup.modules)

    print("Press any key to continue ...");    
    io.read()
end

main()

KVRist
31 posts since 15 Oct, 2005 from Netherlands

Post Thu Apr 17, 2014 9:41 am

looks very promising
Why should something easy be simple?

Musica Electronica
Free tracks
BCR2000 presets

User avatar
KVRist
162 posts since 19 Apr, 2014 from London

Post Sat Apr 19, 2014 5:55 am

It would be great if I could load my code through a build script, then it's just F7 to immediately see if it compiles, and there can be a parameter to automatically activate if successful too :)

KVRAF
7088 posts since 17 Feb, 2005

Post Sat Apr 19, 2014 3:55 pm

NM

KVRist
81 posts since 8 Oct, 2007

Post Wed Apr 30, 2014 12:07 pm

It would be a awesome addition for the KVR DC . I will check it later.

Thx for the hard work!

KVRAF
7088 posts since 17 Feb, 2005

Post Fri May 02, 2014 11:17 pm

Will there be a way to add more inputs in the future?

KVRian

Topic Starter

553 posts since 1 Jan, 2013 from Denmark

Post Sat May 03, 2014 3:43 am

keldon85 wrote:This tools is fantastic for prototyping.

I've created a simple lua build script so that I can modularise a little :) The script concatenates header/implementation files based on a list of modules with the headers being written first.

Code: Select all

--  ---------------------------------------------------------------------------
--  Writes .h/.c files into a single .c file for APE
--
--  example ape_setup.lua
    --[[
        setup = {
            modules = {
                apeMain,
                iirFilter
            },
            
            output = "outputFile.c"
        }
    ]]--
--
--  Header files are written first, so from that setup, the following files in
--  the order below will be concatenated into "outputFile.c":
--  1. apeMain.h
--  2. iirFilter.h
--  3. apeMain.c
--  4. iirFilter.c
--  ---------------------------------------------------------------------------


function loadSetup()
    return dofile ("ape_setup.lua");
end

function writeModuleWithExtension(extension, modules)
    for i, currentModule in pairs(modules) do
        local filename = currentModule .. extension
        local file = io.open(filename, "r")
        
        -- File exists ?
        if file ~= nil then
            io.write(file:read("*all"), "\n")
            file:close()
        end
    end
end

function writeModules(outputFile, modules)
    io.output(outputFile)
    
    writeModuleWithExtension(".h", modules)
    writeModuleWithExtension(".c", modules)
    
    io.output():close()
end

function main ()
    local setup = loadSetup()
    writeModules(setup.output, setup.modules)

    print("Press any key to continue ...");    
    io.read()
end

main()
:) I'm glad people put it to use!

Interesting script. I thought of adding build phases, but I'm not sure if it's the right direction for APE (making it more bulky, standardish IDE)?
jeejeestudio wrote:looks very promising
It is!
avasopht wrote:It would be great if I could load my code through a build script, then it's just F7 to immediately see if it compiles, and there can be a parameter to automatically activate if successful too :)
Noted for next version (and it can be tedious to press both buttons constantly).
wehkah wrote:It would be a awesome addition for the KVR DC . I will check it later.

Thx for the hard work!
I thought about that too, but looking through the rules it has to be new though :(
camsr wrote:Will there be a way to add more inputs in the future?
Should only be a matter of recompiling it

KVRAF
7088 posts since 17 Feb, 2005

Post Sat May 03, 2014 3:51 am

So that means v0.4 will have them? or..
"camsr, stop being lazy and compile the project yourself" :D

KVRian

Topic Starter

553 posts since 1 Jan, 2013 from Denmark

Post Sat May 03, 2014 4:09 am

camsr wrote:So that means v0.4 will have them? or..
"camsr, stop being lazy and compile the project yourself" :D
Looking through the code, there's only one file that deals with the buffers (the engine) and it should resize the buffers (that is, amounts of buffers) automatically, so it should really be a matter of telling juce which i/o configurations are supported on compilation.

It will be included in v 0.4 for sure, but it might be a month or two before it will see the daylight, i need to deal with exams firstly. If i have some sparetime i might release a small update though.

KVRAF
7088 posts since 17 Feb, 2005

Post Sun May 04, 2014 4:08 am

Thanks, appreciate the effort very much so far!
I might try compiling it myself, what file do I need to modify?

KVRian

Topic Starter

553 posts since 1 Jan, 2013 from Denmark

Post Sun May 04, 2014 5:53 am

camsr wrote:Thanks, appreciate the effort very much so far!
I might try compiling it myself, what file do I need to modify?
Do you have the juce / vst / au sdks? and what target are you compiling for (platform, architechture?)

KVRAF
7088 posts since 17 Feb, 2005

Post Sun May 04, 2014 7:07 pm

I just have the VST SDK, targeting windows and x86 VST mainly, x64 less.

KVRian

Topic Starter

553 posts since 1 Jan, 2013 from Denmark

Post Mon May 05, 2014 1:10 am

camsr wrote:I just have the VST SDK, targeting windows and x86 VST mainly, x64 less.
What input/output configurations do you have in mind? Ill just try and see if i can get it working.

e: this seems to work without much hassle:

Image

However i haven't got logic to recognize it as a 5.1 capable plugin, yet..

Return to “DSP and Plug-in Development”