Avatar

Please consider registering
guest

sp_LogInOut Log In sp_Registration Register

Register | Lost password?
Advanced Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

sp_Feed Topic RSS sp_TopicIcon
Errors Trying To Build First VST Plugin
Avatar
RickM
Member
Members
February 13, 2018 - 4:06 pm
Member Since: February 5, 2018
Forum Posts: 14
sp_UserOfflineSmall Offline

I've got my first RAFX project running in the client, and am trying to build my first VST plugin.

I set it up to "Use Client's GUI", and I'm just using a "Modern" prototype interface with 6 knobs and two LED meters. I'm also still using processAudioFrame (no buffer processing yet).

Is that OK, or do I need to switch to processVSTAudioBuffer and/or a custom GUI for even a simple Plugin?

I've pasted the output from VS2015 below.

Thanks,

Rick

--------------------------------------------------------------------------------------------------------------------------------------------------------

1>------ Build started: Project: RackAFXCompressor, Configuration: Debug x64 ------
1> RackAFXCompressor.vcxproj -> C:\Users\Rick\Documents\MY_AFX_PLUGINS\VST_SDK\VST3_SDK\myprojects\RackAFXCompressor\win_build\VST3\Debug\RackAFXCompressor.vst3
1> RackAFXCompressor.vcxproj -> C:/Users/Rick/Documents/MY_AFX_PLUGINS/VST_SDK/VST3_SDK/myprojects/RackAFXCompressor/win_build/VST3/Debug/RackAFXCompressor.pdb (Full PDB)
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: The command "setlocal
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: cd C:\Users\Rick\Documents\MY_AFX_PLUGINS\VST_SDK\VST3_SDK\myprojects\RackAFXCompressor\win_build\bin
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: C:
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: C:\Users\Rick\Documents\MY_AFX_PLUGINS\VST_SDK\VST3_SDK\myprojects\RackAFXCompressor\win_build\bin\Debug\validator.exe C:/Users/Rick/Documents/MY_AFX_PLUGINS/VST_SDK/VST3_SDK/myprojects/RackAFXCompressor/win_build/VST3/Debug/RackAFXCompressor.vst3
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: :cmEnd
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: :cmErrorLevel
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: exit /b %1
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: :cmDone
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: :VCEnd" exited with code -1073741515.
========== Build: 0 succeeded, 1 failed, 9 up-to-date, 0 skipped ==========

Avatar
W Pirkle
Admin
February 14, 2018 - 8:52 am
Member Since: January 28, 2017
Forum Posts: 391
sp_UserOfflineSmall Offline

The errors you see are from the VST validator script that tests the VST plugin after it is built (as seen on the demo video). 

It has nothing to do with your plugin code itself, the GUI, or processVSTBuffers() - which is optional and not required. 

It seems that users are not running CMake on the VST SDK itself and testing to make sure the sample projects compile properly. I am going to post a video on that because if you can't get the VST SDK sample code to compile, you won't be able to get the RackAFX ported project code to build either.

I will also try to duplicate using your directory structure (which I think may be the issue). For some reason, the validator.exe is not able to run from Visual Studio's post-build stuff. 

The main acid-test will be running CMake on the SDK and testing the sample plugins in it.

I used almost identical CMake files as those that are used in the SDK so I am puzzled as to why there is an issue with the validator. In the meantime, can you verify that:

C:\Users\Rick\Documents\MY_AFX_PLUGINS\VST_SDK\VST3_SDK\myprojects\RackAFXCompressor\win_build\bin\Debug\validator.exe 

does exist? 

- Will

Avatar
RickM
Member
Members
February 14, 2018 - 9:34 am
Member Since: February 5, 2018
Forum Posts: 14
sp_UserOfflineSmall Offline

Hi Will,

Yes I have both a validator.exe and editorhost.exe

I did run the copy_vst2_to_vst3_sdk.bat script after I extracted the VST_SDK files from the vstsdk368_08_11_2017_build_121.zip

But I did not run any CMake inside VST_SDK, so I assume that's the problem.

I'm sure I can figure out how to do that, but another Video would be great. Your other videos have been very helpful, along with the Technical Notes.

Thanks,

Rick

Avatar
W Pirkle
Admin
February 14, 2018 - 9:53 am
Member Since: January 28, 2017
Forum Posts: 391
sp_UserOfflineSmall Offline

Hi Rick

Technically, you don't need to run CMake on the SDK - it is only for the sample projects and not actually required for RackAFX.

Running CMake and testing the SDK sample code is more of a sanity-check to make sure there is nothing going on with the SDK or the compiler. As stated, the RackAFX CMake files were made using the SDK CMake files as a basis, so they should behave the same. If they don't then that is something I need to address.

I'll have a video later today and more information for you.

You'll find a similar problem from a user here:

http://www.willpirkle.com/foru.....ems/#p2000

That user never responded to my questions so I'm not sure if they got the issue fixed. But I'll get back with you later today.

- Will

Avatar
W Pirkle
Admin
February 15, 2018 - 8:03 am
Member Since: January 28, 2017
Forum Posts: 391
sp_UserOfflineSmall Offline

Hi Rick

I've posted a video on setting up the VST SDK sample projects here:

In this video, I also show where the validator is launched from Visual Studio (and Xcode) as well as methods for bypassing it. There are also a few things to note about the CMake files for VST exported projects:

- the majority of the work in the CMake setup is done with CMake modules that were written by Steinberg; the RackAFX CMake files for VST are actually fairly simple

- the Steinberg CMake modules come with the SDK and are not generated by running CMake; if you had issues with the modules, you would get errors when running CMake

- the CMake script code that adds the validator to the Post Build lies inside of the CMake module named AddVST3Library.cmake (you can view the contents of the file with any text editor). Specifically, the code is in the CMake function called "function(smtg_run_vst_validator target)"

This means that the validator script is not part of the RackAFX generated CMake files so there is nothing I can do to change anything with it.

The validator is failing with error code "-1073741515" (not sure what that means) so either:

- the validator executable is not found (not the case for you)

- there are permission issues trying to run the executable out of your ../users/rick/... directory

- the VST3 plugin is mal-formed and the validator is error-ing out because of some critical error when trying to open it

So, please look at the video and run CMake on the SDK to make sure that the sample code compiles and runs correctly with validator, as shown in the video. If this works for you, then I'd like to get your Visual Studio project in its entirety to test on my end. Please email me and we can discuss that after you do the tests.

- Will

Avatar
RickM
Member
Members
February 15, 2018 - 11:50 am
Member Since: February 5, 2018
Forum Posts: 14
sp_UserOfflineSmall Offline

Hi Will,

Thank you so much for the video. I get the same errors when validating the sample plugins inside the VST SDK. I tried relocating the whole file structure to the top of my C: drive, but same error. I then tried running the Post-Build script by hand, and it turns out I'm missing ucrtbased.dll

So anyway the problem is all on my end. I'm attempting to to a "repair" on my VS2015 install to see if that installs the missing .dll

Thanks again,

Rick

Avatar
W Pirkle
Admin
February 15, 2018 - 1:00 pm
Member Since: January 28, 2017
Forum Posts: 391
sp_UserOfflineSmall Offline

AH-HA! Ok, this is now starting to make more sense!! This has to do with the move to the "Universal Runtime" with windows software as dictated by Microsoft, thus your missing ucrt...DLL. It also explains why users have not had issues with the identical plugins in MacOS/XCode.

There is a Forum post on it here:

http://www.willpirkle.com/foru.....s-runtime/

The forum link also includes a link to the universal runtime DLL installer stuff. I had posted this prior to your posting here, but I didn't make the connection between the validator error you are seeing and the UCRT paradigm.

The move to use the universal runtime comes from Microsoft and includes a promise for better/stronger/faster/easier-to-update software (however I have conflicting information about the real need for it as it applies to plugins). Nonetheless, all the RackAFX exported plugins for Windows adhere to this new paradigm. The post above also contains information from me on how to change your compiler settings to use the static library instead of the newer universal runtime DLL - very easy to do. 

I'm glad you posted this as it will help others confused by the validator error! 

Plugin developers are a bit miffed about this because it makes the installation of their plugins on user's computers more difficult - they will now need to either auto-install the UCRT with the plugin installer - which has issues in itself (i.e. detecting the need to install it and/or making sure they are not installing an older version by accident), or tell the user that they must do it instead. Both have logistics issues...

- Will

Avatar
RickM
Member
Members
February 15, 2018 - 1:13 pm
Member Since: February 5, 2018
Forum Posts: 14
sp_UserOfflineSmall Offline

Hi Will,

Doing a Repair on my install of VS2015 installed the missing .dll. I can now build and validate all the VST SDK sample plugins, and the VST plugin I export from RAFX.

I think the problem the other user (that you referenced above) was having is slightly different. But what worked for me was by examining the Post-Build script I could manually "run" the script and when I ran the validator.exe manually I got I more detailed error pop-up.

Thanks again,

Rick

P.S. the reason I think that member Eddie's problem may be different is that when I lookup my error code converted to hex 2^32 -1073741515 = 0xc0000135 I get STATUS_DLL_NOT_FOUND which makes sense.

Eddie's error is 2^32 -1073740791 = 0xC0000409 which is STATUS_STACK_BUFFER_OVERRUN

Forum Timezone: America/New_York

Most Users Ever Online: 152

Currently Online:
6 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

Skyler: 48

Derek: 46

Frodson: 45

Peter: 43

TheSmile: 43

clau_ste: 39

JimmyM: 33

Gwen: 32

EZB: 24

lppier: 23

Member Stats:

Guest Posters: 1

Members: 594

Moderators: 1

Admins: 4

Forum Stats:

Groups: 12

Forums: 37

Topics: 617

Posts: 2428

Newest Members:

channa, bvaccaro, HCassell, Max, Sim1, Chris Wade-Evans, Marlow, kcmixs2, DanieleR, jimjulian

Moderators: W Pirkle: 391

Administrators: Tom: 74, JD Young: 80, Will Pirkle: 0, W Pirkle: 391