Compiler-Latest (W7-8)?

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

Xenakios wrote:
abstractcats wrote: Any need/benefit in using the Steinberg SDK?
It's mandatory to obtain that if you want to make VST plugins. (Or a VST plugin host.) However, for example Juce and IPlug use just a couple of header files from that. (Still, you have to get the full SDK since those headers may not be distributed by anyone else but Steinberg.)

Note my subtle hint that you might want to use something like Juce or IPlug to do plugins. Or really, just choose between Juce and IPlug. Juce also supports creating standalone applications. With IPlug that seems more unclear what it actually has for that.
Great! I want to make standalone, and VST. Hmm, since hourglass is stand alone, it has nothing to do with steinberg? Until you get into, hosting vsts, I'd guess? I've looked at the Juce site, but have not heard of Iplug, I'll check out that one, thanks!

Post

aciddose wrote:You definitely want to go with the latest express versions if you just want a quick modern compiler. The "express 2013 for desktop" contains a compiler that produces results far beyond what other compilers are capable of.

Unless you're using the very latest versions of g++ with the very latest support for language features (which means non-windows only?) I can't see older versions of mingw beating msvc since the 2008 version.

It only becomes an issue if you want to really get fussy about language features or backward compatibility, in which case who knows what weird preferences you might come up with. For general use though I can't see any reason to recommend anything but express-2013-desktop on modern versions of windows.

(Unless you're me, where the icons + fonts + other drive you completely insane. In which case you'll have a heck of a time hacking it to get 2010 icons and fonts back the way they were, although it is possible even with the express version it is far more difficult than using ready-made tools for the full version. The most irritating thing on earth for me is that the WPF based IDE forces cleartype on you, and ignores the system cleartype settings! So you can't actually configure it without a special plugin or hacking the binary yourself.)
Cool. I'll try the 2013 as well. I've seen g++ used in a tutorial video and it looks like another easy to use option, but I could not find the download for it.

Post

abstractcats wrote: Great! I want to make standalone, and VST. Hmm, since hourglass is stand alone, it has nothing to do with steinberg? Until you get into, hosting vsts, I'd guess? I've looked at the Juce site, but have not heard of Iplug, I'll check out that one, thanks!
Actually HourGlass has needed Steinberg code since the beginning since it supports ASIO (via the PortAudio abstraction library). Later I added VST plugin hosting too. (The VST and ASIO SDKs are separate downloads from Steinberg.)

IPlug has been originally developed by Schwa, who now works for Cockos on Reaper. Later developments have been done for example by Oli Larkin. It is a decent plugin framework but I myself found the code design a bit lacking and limited. I think Juce is the "better" of the two, for some definition of "better". (Juce's greatest problem is its licensing model.)

Post

abstractcats wrote:I've seen g++ used in a tutorial video and it looks like another easy to use option, but I could not find the download for it.
g++ is the c++ compiler from gcc. So for that you'd need whatever the latest version of mingw is (the "minimalist gnu for windows") which I haven't kept up to date with since 2008 or so. Back then mingw even with the even then "ancient" gcc versions could easily beat older versions of the msvc compiler. These days though that advantage is long lost, and back then it only applied due to the better assembly + optimizer support offered by gcc. Modern intrinsics absolutely abolish the need for that.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

Xenakios wrote:
abstractcats wrote: Great! I want to make standalone, and VST. Hmm, since hourglass is stand alone, it has nothing to do with steinberg? Until you get into, hosting vsts, I'd guess? I've looked at the Juce site, but have not heard of Iplug, I'll check out that one, thanks!
Actually HourGlass has needed Steinberg code since the beginning since it supports ASIO (via the PortAudio abstraction library). Later I added VST plugin hosting too. (The VST and ASIO SDKs are separate downloads from Steinberg.)

IPlug has been originally developed by Schwa, who now works for Cockos on Reaper. Later developments have been done for example by Oli Larkin. It is a decent plugin framework but I myself found the code design a bit lacking and limited. I think Juce is the "better" of the two, for some definition of "better". (Juce's greatest problem is its licensing model.)
Ah! I did not realize ASIO is to Steinbergs'. I use Reaper for some stuff and have done beta testing and preset design for OIi, and I know his vst( the new Casio CZ emu he just did, for Plugin Boutique) and Endless Series and they are great.I'll give Iplug, a try, too.

Post

aciddose wrote:
abstractcats wrote:I've seen g++ used in a tutorial video and it looks like another easy to use option, but I could not find the download for it.
g++ is the c++ compiler from gcc. So for that you'd need whatever the latest version of mingw is (the "minimalist gnu for windows") which I haven't kept up to date with since 2008 or so. Back then mingw even with the even then "ancient" gcc versions could easily beat older versions of the msvc compiler. These days though that advantage is long lost, and back then it only applied due to the better assembly + optimizer support offered by gcc. Modern intrinsics absolutely abolish the need for that.
Ok, so I should certainly just go with VisualStudio 2013, I'm guessing. As from what you and Xenakios, have said, its the most current and useful, to get started.

Post

Yeah, I wouldn't opt for MinGW unless you like to torture yourself.
But it's quite capable, and free, and compiles optimized code for x86 and x64.
VSC++ costs a lot of money, the free version does not well optimize code, only half-ass's it.
Intel ICC is another commercial offering, not being platform agnostic but can optimize better than MinGW in a few ways.

Post

camsr wrote:Y
VSC++ costs a lot of money, the free version does not well optimize code, only half-ass's it.
Can you provide more details on this? What optimizations in which free VS versions are missing? (If this is about VS2008 Express or whatever that old, who cares...)

edit : I know the profile guided optimization has been missing from the express editions, but how useful is that in practice anyway? (I haven't yet tested with the VS2015 Ultimate Preview). Also worth noting is that the new free Community Edition of Visual Studio 2013 does have the profile guided optimization.

Post

Xenakios wrote:
camsr wrote:Y
VSC++ costs a lot of money, the free version does not well optimize code, only half-ass's it.
Can you provide more details on this? What optimizations in which free VS versions are missing? (If this is about VS2008 Express or whatever that old, who cares...)

edit : I know the profile guided optimization has been missing from the express editions, but how useful is that in practice anyway? (I haven't yet tested with the VS2015 Ultimate Preview). Also worth noting is that the new free Community Edition of Visual Studio 2013 does have the profile guided optimization.
I'm pretty sure the only thing missing is profile guided optimizations (and I actually suspect even that is actually in the compiler and just the DLL dependency required to build a profile isn't included) and I'm also pretty sure it's always been the same since Express was introduced. Also, if you are doing x64 builds with old Express 2008 then you are using the compiler from Windows SDK anyway.

The optimizer in 2008 (and I think 2010 as well) has a couple of interesting "features" so you can occasionally get somewhat poor code if you accidentally trigger one of those (and the bundled version of std::complex is slow because it usually triggers one of the optimizer bugs), but I'm not aware of anything that was specific to Express.

Post

I seem to remember something about Express editions not being able to optimize to the same level as the commercial editions. So can you or not optimize fully with Express?

Post

It is the same compile and produces the same code for the same settings. It isn't a matter of "can you optimize fully", what does that even mean?

If you want to look at the differences grab both binaries and compare.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

camsr wrote:I seem to remember something about Express editions not being able to optimize to the same level as the commercial editions. So can you or not optimize fully with Express?
There's no Express edition any more, and the replacement (Community edition,basically free to everyone except commercial companies with 6 or more employees working on a closed source project) has no limitations.
Q: How does Visual Studio Community 2013 compare to other Visual Studio editions?
A: Visual Studio Community 2013 includes all the great functionality of Visual Studio Professional 2013, designed and optimized for individual developers, students, open source contributors, and small teams.
http://www.visualstudio.com/en-us/produ ... mmunity-vs
my other modular synth is a bugbrand

Post

aciddose wrote:It is the same compile and produces the same code for the same settings. It isn't a matter of "can you optimize fully", what does that even mean?

If you want to look at the differences grab both binaries and compare.
The old Express versions disabled compiler optimizations for fact.

Post

Which ones and which optimizations?

They certainly disabled certain features that only a large project would need. That is very different from "not optimizing fully" as in "O2" vs "O3", or lacking automatic parallelization or similar.

The "old" compilers from vs6 to 2013 are all full of a wide range of compiler bugs which can be easily triggered if you know how. Some make totally insane decisions about how to optimize code.

It isn't like you can say "in the express version vs. full: 30% faster binary" though.

You can say "the full version has features X, Y and Z which can provide W", but you can only at best estimate what effect this will have on for example the speed of an inner loop in an audio plugin.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

Another question, for working as c++ coder, outside music sofware. Is a degree from university, needed? Or is proving my skill(once I have them) by cresting good software, a substitute?

Post Reply

Return to “DSP and Plugin Development”