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

DSP, Plug-in and Host development discussion.
KVRian
845 posts since 24 Jun, 2002 from Berlin

Post Wed Jan 29, 2014 4:59 am

fantastic! i've been meaning to do something like this with clang for a while. Is there a mac version planned?

KVRAF
1531 posts since 14 Oct, 2002

Post Wed Jan 29, 2014 5:06 am

great stuff!!! congrats and thanks!

KVRian
845 posts since 24 Jun, 2002 from Berlin

Post Wed Jan 29, 2014 5:25 am

i read the OP in more detail. If you'd like any help porting this to IPlug (or JUCE) i'd be happy to assist. If it's going to be an open source GPL thing anyway JUCE might be simpler since it already has a code editor built in, any many nice options for the GUI.

KVRian

Topic Starter

553 posts since 1 Jan, 2013 from Denmark

Post Wed Jan 29, 2014 5:40 am

arakula wrote:
Mayae wrote:e: i will consider rewriting it to conform to C++98.
If you put it on Github, I could as well create an "Oldtimer" fork 8-)
Hah, we could definately do that.
Doogle wrote:This looks ace and I'll be giving it a go soon.

Just wanted to say though.... if you wanted to move away from TCC, take a look at clang, part of the LLVM project. It takes up a bit more disk space, but it'll build SSE* code and can do auto-vectorisation. The entire LLVM system is a joy to use and incredibly powerful, whether being used as command line tools or integrated libraries.
I hope you do! Yes I've been looking at clang for a long time, and i'll most likely develop a compiler for this project in the near feature. Goal is to have many different compilers and support many languages as well. I was hoping to look at python soon, as well.
hibrasil wrote:fantastic! i've been meaning to do something like this with clang for a while. Is there a mac version planned?
Yes, there is. Currently, the only obstacle is I haven't been able to find libtcc for OS X. The core itself and scintilla should be nearly ready. Then there's the problem with VSTGUI and 64bit on OS X, which i honestly dont know what to do about. 32 bit should be possible though.
lalo wrote:great stuff!!! congrats and thanks!
Thank you so much :)
hibrasil wrote:i read the OP in more detail. If you'd like any help porting this to IPlug (or JUCE) i'd be happy to assist. If it's going to be an open source GPL thing anyway JUCE might be simpler since it already has a code editor built in, any many nice options for the GUI.
That would be amazing. I haven't found the time to look at JUCE but i didn't actually know it was GPL. I would prefer a smaller library like IPlug but if JUCE also incorporates GUI design (IPlug doesn't, right?) it might be a more simple solution!

KVRian
845 posts since 24 Jun, 2002 from Berlin

Post Wed Jan 29, 2014 5:58 am

IPlug does have GUI functionality, but it is basic compared to JUCE, or Qt etc. You can see a gallery of IPlug creations here: http://forum.cockos.com/showthread.php?t=122276 , so there is quite a lot that you can do. To be honest both JUCE and IPlug are quite large libraries.

It might be worth investigating VST3 since it supports dynamically changing the i/o and the parameters of a plugin IIRC. I have developed a new version of IPlug (not yet public) which is built on top of VST3 which I can show you if you like.

KVRian

Topic Starter

553 posts since 1 Jan, 2013 from Denmark

Post Wed Jan 29, 2014 6:09 am

hibrasil wrote:IPlug does have GUI functionality, but it is basic compared to JUCE, or Qt etc. You can see a gallery of IPlug creations here: http://forum.cockos.com/showthread.php?t=122276 , so there is quite a lot that you can do. To be honest both JUCE and IPlug are quite large libraries.

It might be worth investigating VST3 since it supports dynamically changing the i/o and the parameters of a plugin IIRC. I have developed a new version of IPlug (not yet public) which is built on top of VST3 which I can show you if you like.
Okay. Well i consider VSTGUI 3 to be pretty basic and i'm fine with that (i'm not gonna spend time on graphics myself, unless it severely strains my eyes).

VST3 is nice, but unfortunately a couple of hosts (including ableton) does not support it, which is why i initially dropped it.

KVRAF
6318 posts since 12 Feb, 2006 from Helsinki, Finland

Post Wed Jan 29, 2014 6:59 am

Mayae wrote:Yes I've been looking at clang for a long time, and i'll most likely develop a compiler for this project in the near feature. Goal is to have many different compilers and support many languages as well. I was hoping to look at python soon, as well.
If you want a dynamic language, you should try embedding LuaJIT. It implements Lua with a combination of a fast interpreter and a ridiculously good trace-compiler and it's very nice and clean package to embed (that's what Lua was designed for).
Preferred pronouns would be "it/it" because according to this country, I'm a piece of human trash.

KVRAF
7086 posts since 17 Feb, 2005

Post Wed Jan 29, 2014 3:18 pm

Look forward to trying this out Mayae!

mn
KVRian
1446 posts since 27 Dec, 2003

Post Wed Jan 29, 2014 4:01 pm

Looks interesting. Thank you.
Regards, Mike
Image

KVRAF
7086 posts since 17 Feb, 2005

Post Wed Jan 29, 2014 4:27 pm

Very cool examples, but it needs a way to save the source code into the plugin for project recall.

User avatar
Urs
u-he
25629 posts since 8 Aug, 2002 from Berlin

Post Wed Jan 29, 2014 5:03 pm

Looking forward to a Mac version!

KVRian

Topic Starter

553 posts since 1 Jan, 2013 from Denmark

Post Thu Jan 30, 2014 1:17 am

mystran wrote:
Mayae wrote:Yes I've been looking at clang for a long time, and i'll most likely develop a compiler for this project in the near feature. Goal is to have many different compilers and support many languages as well. I was hoping to look at python soon, as well.
If you want a dynamic language, you should try embedding LuaJIT. It implements Lua with a combination of a fast interpreter and a ridiculously good trace-compiler and it's very nice and clean package to embed (that's what Lua was designed for).
Yea, I've been looking at LuaJIT - I'm definately gonna play with it at some point. I'm not so sure how LUA fits to DSP code though (no built in complex numbers - if you're using a dynamic language anyway, no integer math).
camsr wrote:Look forward to trying this out Mayae!
I hope you do :)
mn wrote:Looks interesting. Thank you.
No problem.
camsr wrote:Very cool examples, but it needs a way to save the source code into the plugin for project recall.
True. This will most likely be implemented with the introduction of projects, instead of single files.
Urs wrote:Looking forward to a Mac version!
Working on it :)

User avatar
KVRian
508 posts since 12 Apr, 2010 from The Netherlands

Post Thu Jan 30, 2014 2:43 am

This is pretty cool, thanks! :)

Just fooling around a bit, and comparing APE to REAPER JS: APE is about 25% slower, testing with a Fourier series square wave oscillator. Not too bad I guess.

A random issue I happened to run into: If I press Ctrl-S in the editor it inserts a "DC3" char instead of saving the source file.

KVRian

Topic Starter

553 posts since 1 Jan, 2013 from Denmark

Post Fri Jan 31, 2014 12:41 pm

Tale wrote:This is pretty cool, thanks! :)

Just fooling around a bit, and comparing APE to REAPER JS: APE is about 25% slower, testing with a Fourier series square wave oscillator. Not too bad I guess.

A random issue I happened to run into: If I press Ctrl-S in the editor it inserts a "DC3" char instead of saving the source file.
Glad you like it :)

As it says in the manual, hotkeys are not supported ;)

Okay, so due to the growing amount of comments about TCC and its speed, i have written a system wrapper compiler, that allows (through .bat files) to use external compilers. I had fun using visual studio's compiler. Right out of the box there was at least 4x speed performance improvement. Oh, and it can ofcouse understand C++ ;)

This also opens up another world of possibilites. So long as you through a set of .bat commands can produce a .dll, APE can run it directly. This means you can write in delphi/pascal if you have a compiler for it, or c/c++/asm if you have GCC or visual studio on your computer.

I will probably release an update over the weekend containing this, and some bugfixes.

KVRAF
6318 posts since 12 Feb, 2006 from Helsinki, Finland

Post Fri Jan 31, 2014 12:50 pm

Mayae wrote: This also opens up another world of possibilites. So long as you through a set of .bat commands can produce a .dll, APE can run it directly. This means you can write in delphi/pascal if you have a compiler for it, or c/c++/asm if you have GCC or visual studio on your computer.
Yeah, that sounds like a great setup actually, as it also means it's possible to do custom preprocessing as well (essentially, C++ templates are not my personal favorite code-generation framework). :)
Preferred pronouns would be "it/it" because according to this country, I'm a piece of human trash.

Return to “DSP and Plug-in Development”