Post by pwesynthedit on Apr 11, 2019 13:52:50 GMT 1
CREATING AN .SEM (SYNTHEDIT MODULE) WITH VISUAL STUDIO 2015 (OR NEWER)
THESE ARE THE ADDITIONAL FILES INSTALLED FOR SUCCESSFUL OPERATION (WINDOWS 8.1/10)
Microsoft .NET Framework 4.6.2
Microsoft Visual C++ 2015 Redistributables Update 3 v14.0.24212.0
NOTE: Newer Visual Studio C++ Projects have the Filename Extension ---.vcxproj
PROJECT: Gain.sem
Version: 3
SynthEdit 1.2-1.4 x86 & x64 Compatible
Output Files Tested Successfully
The first set of instructions is for x86 Version) ...
(SEE BELOW FOR X64 VERSION)
===== START x86 VERSION =====
Create (2) New 'Copy To Folders' in the Main se_sdk Folder ...
Foldername: semx86
Foldername: semx64
Copy the entire se-sdk Folder to:
C:\Users\%Username%\Documents\Visual Studio 2015\
Start Visual Studio (Using C++ Project Mode) ...
First ... Open View / Solution Explorer ...
Go To File/ Open/ Project/Solution...
Open se-sdk / Gain /Gain.vcxproj
Below Solution 'Gain' (1 project)
'Right Click' on the name '++ Gain' ...
Go To 'Properties' at the bottom of the context box list ...
Click On the left-hand Arrow of 'Build Events' ...
Click On 'Post Build Event' ...
Edit the 'Command Line' information in the 2nd Quotation Marks:
copy "$(OutDir)$(TargetName)$(TargetExt)" "../../../SynthEdit/modules"
Change To:
"C:\Users\%Username%\Documents\Visual Studio 2015\se_sdk\semx86"
Entire Command Line should now read:
copy "$(OutDir)$(TargetName)$(TargetExt)" "C:\Users\%Username%\Documents\Visual Studio 2015\se_sdk\semx86"
To Examine Project Files Click On the left-hand Arrow of '++ Gain' to expand the project folders ...
By 'Default' Visual Studio is configured for 'Debug x86 Auto' (White Boxes on top ribbon) ...
Click On the Green Arrow 'Local Windows Debugger' ...
If 'Project is out of date' Gain - Debug Win 32 Window pops up ... Click On 'Yes' to Build ...
Due to the Nature of Synthedit SDK ...
Build protocol automatically instructs Visual Studio C++ to start the File as if it were a 'standalone program' ...
A warning Window may appear stating
'Unable to start program ... etc ... '
This is caused by the fact that an '.sem' module file is not a program or 'self-executable' ...
Ignore the Window ...
Click the Red 'X' to close the Window ...
The .sem Project File will still be created and copied to the semx86 Folder.
====== FINAL X86 BUILD OUTPUT =====
1>------ Build started: Project: Gain, Configuration: Debug Win32 ------
1> MP_SDK_common.cpp
1> MP_SDK_Audio.cpp
1> Gain.cpp
1> Generating Code...
1>Gain.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/SAFESEH' specification
1> Creating library C:\Users\%Username%\Documents\Visual Studio 2015\se_sdk\Gain\BuildProducts\Gain\Win32\Debug\Gain.lib and object C:\Users\%Username%\Documents\Visual Studio 2015\se_sdk\Gain\BuildProducts\Gain\Win32\Debug\Gain.exp
1> Gain.vcxproj -> C:\Users\%Username%\Documents\Visual Studio 2015\se_sdk\Gain\BuildProducts\Gain\Win32\Debug\Gain.sem
1> Gain.vcxproj -> C:\Users\%Username%\Documents\Visual Studio 2015\se_sdk\Gain\BuildProducts\Gain\Win32\Debug\Gain.pdb (Full PDB)
1>BSCMAKE : warning BK4503: minor error in .SBR file 'C:\temp\build\Gain_SE14\Win32\Debug\MP_SDK_common.sbr' ignored
1> 1 file(s) copied.
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
IMPORTANT! Gain.sem is an already existing 'standard' SynthEdit v.1.2-1.4 module in:
"C:\Program Files (x86)\SynthEdit 1.2-1.4\modules" Folder.
AND
"C:\Program Files\SynthEdit 1.2-1.4\modules" Folder.
To Utilize the new created version it is necessary to replace this module ...
Do not copy/overwrite it ...
Do not add it to:
"C:\Program Files (x86)\Common Files\SynthEdit\modules
OR
"C:\Program Files\Common Files\SynthEdit\modules
... either one... or you will receive an 'error' message.
Move each original copy to a new location for safekeeping i.e. 'My Documents'
CAUTION: Gain.sem has the same Filename for both x86 & x64 versions ... so be sure to store them separately.
The (2) versions are not interchangeable.
Then ... copy the new version to the original "C:\Program Files (x86) OR Program Files\SynthEdit v.1.2-1.4\modules" Folder.
It will then be possible to restore the original .sem File(s) if desired/necessary ...
===== START x64 VERSION =====
PROCEED BY CHANGING THE VISUAL STUDIO LOCAL WINDOWS DEBUGGER TO X64 VERSION
AND THE OUTPUT POST BUILD EVENT FOLDER TO 'SEMX64' (SIMILAR TO THE STEPS ABOVE) ...
====== FINAL X64 BUILD OUTPUT =====
1>------ Build started: Project: Gain, Configuration: Debug x64 ------
1> Gain.vcxproj -> C:\Users\%Username%\Documents\Visual Studio 2015\se_sdk\Gain\BuildProducts\Gain\x64\Debug\Gain.sem
1> Gain.vcxproj -> C:\Users\%Username%\Documents\Visual Studio 2015\se_sdk\Gain\BuildProducts\Gain\x64\Debug\Gain.pdb (Full PDB)
1> 1 file(s) copied.
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
TO TEST THE GAIN.SEM ... ADD IT TO A NEW SYNTHEDIT PROJECT ...
ATTACH AN OSCILLATOR TO INPUT1
ATTACH A SLIDER/KNOB TO INPUT2
ADD A SOUND OUT MODULE
ATTACH THE OUTPUT TO PINS 1 & 2 OF THE SOUND OUT MODULE (FOR STEREO)
START THE AUDIO ENGINE ...
VARY THE SLIDER/KNOB TO LISTEN TO VOLUME CHANGES.
ENJOY!
CREATING A NEW.SEM (SYNTHEDIT MODULE) FROM EXISTING PROJECT
First:
Add the Project Folder directly to the se_sdk Folder.
Add/Include Files to the Source Explorer ...
The following are the basic C++ Files:
.cpp (Main C++ Compiler Source File)
.h (Header File)
.xml (XML File for Identifying Pins, etc.)
.rc (Resource File)
Project with Files will access the internal se_sdk3 Folder for additional files if "#include" ../se_sdk3/filename.* appears in a File heading.
The "../" is a 'Redirect' that instructs the program to search for files (2) steps up/back (from present folder to parent folder).
If files are added directly to the project they will not be preceded by the "../se_sdk3/" Redirect in a File heading. Example: "#include" filename.*
The Files below located in the se_sdk3 Folder are generally common to Projects.
Files can also be included directly to the Project by utilizing 'Right-Click' on the Filename (e.g. '++ Gain')
Then 'Add' / 'Existing Item...' in the (context box) dropdown menu.
Edit the "#include" statement to omit the "../se_sdk3/" Redirect in a File heading when adding Files directly ... as stated above.
THE FOLLOWING FILE TYPES ARE COMMON TO PROJECTS ...
For DSP (Digital Signal Processing) Modules:
mp_sdk_audio.cpp
mp_sdk_audio.h
mp_sdk_common.cpp
mp_sdk_common.h
For GUI (Graphic User Interface) Modules:
mp_sdk_gui.cpp
mp_sdk_gui.h
mp_sdk_common.cpp
mp_sdk_common.h