Giter Club home page Giter Club logo

olilarkin / wdl-ol Goto Github PK

View Code? Open in Web Editor NEW
936.0 936.0 189.0 14.99 MB

Enhanced version of Cockos' iPlug - A simple-to-use C++ framework for developing cross platform audio plugins and targeting multiple plugin APIs with the same code. VST / VST3 / Audiounit / RTAS / AAX (Native) formats supported. NOTE: THIS IS OBSOLETE, PLEASE SEE IPLUG2:

Home Page: https://github.com/iplug2

C++ 38.01% C 55.32% Objective-C++ 4.70% Inno Setup 0.05% Shell 0.11% Python 0.22% Objective-C 0.57% R 0.05% Makefile 0.09% PHP 0.35% Batchfile 0.04% Lex 0.03% Yacc 0.10% HTML 0.01% Vim Script 0.19% Rich Text Format 0.16%
aax audio audiounit c-plus-plus plugin vst vst3

wdl-ol's Introduction

Hello 👋

I'm Oli Larkin. I'm a generalist audio programmer.

wdl-ol's People

Contributors

alexharker avatar b-vesco avatar bbbbabbababba avatar distocore avatar hor-net avatar jhernberg avatar justinfrankel avatar martinfm avatar olilarkin avatar solardiz avatar taletn avatar tesselode avatar yesitsme avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wdl-ol's Issues

VST3 compilation error (error: use of undeclared identifier 'nullptr')

Hi,
I'm using XCode 4, Mac OS 10.5 SDK, I just duplicated IPlugEffect (./duplicate.py IPlugEffect ABC ABC), opened the project with XCode to select VST2 and VST3 only.
Note: I copied the right files in /wdl-ol/VST3_SDK/....

Here is the error that I get:


In file included from /Users/User/wdl-ol/VST3_SDK/base/mac/../source/classfactory.cpp:35:
../../base/source/classfactory.h:114:2: error: use of undeclared identifier 'nullptr'
        SINGLETON (ClassFactory)
        ^
../../base/source/fobject.h:324:37: note: expanded from macro 'SINGLETON'
                static Steinberg::FObject* inst = nullptr; \
                                                  ^

The following build commands failed:
    CompileC "build/base.build/Release/base_32&64_intel.build/Objects-normal/x86_64/classfactory.o" ../source/classfactory.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler

It seems that nullptr comes in C++11 which is not enabled. It seems that it cannot be enabled because it would break 10.5 target.

I'm using the default settings from wdl-ol:

COMPILER = com.apple.compilers.llvm.clang.1_0 // or this with xcode4+/10.7+

Do you have the same error? How do you solve this?

LICE Build Broken With Xcode 6.3.2

None of the sample projects compile under the newest Xcode, version 6.3.2. This is from a totally clean pull from GitHub and the 10.5 SDK. Up until this update all was working fine.

The compile errors come from LICE. I'm far from an expert when it comes to Mac development, but I'd guess it has to do with changes to Clang or something.

screen shot 2015-05-25 at 11 51 35 pm

When plugin name starts with a "T" it causes a build error.

It is because the line
IDI_ICON1 ICON DISCARDABLE "resources\PluginName.ico"
in "PluginName.rc"
I'm guessing the \T gets treated as an escape character or something.
Changing it to /T works. for example:
IDI_ICON1 ICON DISCARDABLE "resources/PluginName.ico"

RTAS & AAX: IParam int + IKnobMultiControl = bad mValue

When using a parameter initialized as integer and IKnobMultiControl, this does not work properly on RTAS (and AAX).
Only tested on Protools 7 for windows.
VST seems to work correctly.

GetParam(kLowFreq)->InitInt("Low Freq", 1, 0, 3, "");

pLowFreqControl = new IKnobMultiControl(this, kLowFreq_X, kLowFreq_Y, kLowFreq, &bitmap, kVertical, DEFAULT_GEARING);
pGraphics->AttachControl(pLowFreqControl);

pay attention to the caption "%.2f %i", mValue, dY (dY is the mouse direction)

RTAS not working properly:
rtas_mvalue_on_int_knobmulti

VST2 works fine:
vst2_mvalue_on_int_knobmulti

Allow bundle IDs to not begin with "com."

IPlug_include_in_plug_hdr.h:50:

#define BUNDLE_ID "com." BUNDLE_MFR "." API_EXT "." BUNDLE_NAME

The "com" should be replaced by a BUNDLE_DOMAIN (or similar). Not everyone has a .com domain.

Build Error, Missing file

Hello and thank you for sharing!

I have a problem that is very crap! I work there since yesterday but I can not solve it!
I use Visual Studio 2017. I try with Visual C ++ 2010 Express but the same problem!

Thanks for a future help!

Here are the LOGS (When I build the solution):

1>------ Début de la génération : Projet : base, Configuration : Debug Win32 ------
2>------ Début de la génération : Projet : AKFMaster-aax, Configuration : Debug Win32 ------
3>------ Début de la génération : Projet : AKFMaster-app, Configuration : Debug Win32 ------
4>------ Début de la génération : Projet : AKFMaster-vst2, Configuration : Debug Win32 ------
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /I.... /ZI /nologo /W3 /WX- /Od /Oy- /D _DEBUG=1 /D DEVELOPMENT=1 /Gm- /EHsc /MTd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Win32\Debug\objects\" /Fd"Win32\Debug\base.pdb" /Gd /TP /analyze- /errorReport:prompt ..\source\classfactory.cpp ..\source\fatomic.cpp ..\source\fbitset.cpp ..\source\fcpu.cpp ..\source\finitializer.cpp ..\source\fmemory.cpp ..\source\fpoint.cpp ..\source\frect.cpp ..\source\fthread.cpp
1>classfactory.cpp
1>c1xx : fatal error C1083: Impossible d'ouvrir le fichier source : '..\source\classfactory.cpp' : No such file or directory
1>fatomic.cpp
1>c1xx : fatal error C1083: Impossible d'ouvrir le fichier source : '..\source\fatomic.cpp' : No such file or directory
1>fbitset.cpp
1>c1xx : fatal error C1083: Impossible d'ouvrir le fichier source : '..\source\fbitset.cpp' : No such file or directory
1>fcpu.cpp
1>c1xx : fatal error C1083: Impossible d'ouvrir le fichier source : '..\source\fcpu.cpp' : No such file or directory
1>finitializer.cpp
1>c1xx : fatal error C1083: Impossible d'ouvrir le fichier source : '..\source\finitializer.cpp' : No such file or directory
1>fmemory.cpp
1>c1xx : fatal error C1083: Impossible d'ouvrir le fichier source : '..\source\fmemory.cpp' : No such file or directory
1>fpoint.cpp
1>c1xx : fatal error C1083: Impossible d'ouvrir le fichier source : '..\source\fpoint.cpp' : No such file or directory
1>frect.cpp
1>c1xx : fatal error C1083: Impossible d'ouvrir le fichier source : '..\source\frect.cpp' : No such file or directory
1>fthread.cpp
1>c1xx : fatal error C1083: Impossible d'ouvrir le fichier source : '..\source\fthread.cpp' : No such file or directory
1>Génération de code en cours...
1>Génération du projet "base_vc10.vcxproj" terminée -- ÉCHEC.
5>------ Début de la génération : Projet : AKFMaster-vst3, Configuration : Debug Win32 ------
2>DEL /Q /F /S .\build-win\aax\bin\AKFMaster.aaxplugin
2>CALL ....\AAX_SDK\Utilities\CreatePackage.bat build-win\aax\bin\AKFMaster.aaxplugin\Contents\Win32\ ....\AAX_SDK\Utilities\PlugIn.ico
2>
2>:VCEnd
5>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\bin\HostX86\x86\CL.exe /c /I....\VST3_SDK /I"C:\wdl-ol\IPlugExamples\AKFMaster\......\MyDSP\" /I....\WDL /I....\WDL\lice /I....\WDL\IPlug /ZI /nologo /W3 /WX- /diagnostics:classic /Od /Oy- /D VST3_API /D _DEBUG /D WIN32 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _WINDLL /D _MBCS /Gm /EHsc /RTC1 /MTd /GS /arch:SSE2 /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"build-win\vst3\Win32\Debug\" /Fd"build-win\vst3\Win32\Debug\vc141.pdb" /Gd /TP /wd4996 /wd4250 /wd4018 /wd4267 /analyze- /errorReport:prompt ....\WDL\IPlug\IPlugVST3.cpp AKFMaster.cpp
2>Le chemin d'accès spécifié est introuvable.
4>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\bin\HostX86\x86\CL.exe /c /I"C:\wdl-ol\IPlugExamples\AKFMaster\......\MyDSP\" /I....\WDL /I....\WDL\lice /I....\WDL\IPlug /ZI /nologo /W3 /WX- /diagnostics:classic /Od /Oy- /D VST_API /D VST_FORCE_DEPRECATED /D _DEBUG /D WIN32 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _WINDLL /D _MBCS /Gm /EHsc /RTC1 /MTd /GS /arch:SSE2 /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"build-win\vst2\Win32\Debug\" /Fd"build-win\vst2\Win32\Debug\vc141.pdb" /Gd /TP /wd4996 /wd4250 /wd4018 /wd4267 /analyze- /errorReport:prompt ....\WDL\IPlug\IPlugVST.cpp AKFMaster.cpp
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(123,5): error MSB3073: La commande "DEL /Q /F /S .\build-win\aax\bin\AKFMaster.aaxplugin
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(123,5): error MSB3073: CALL ....\AAX_SDK\Utilities\CreatePackage.bat build-win\aax\bin\AKFMaster.aaxplugin\Contents\Win32\ ....\AAX_SDK\Utilities\PlugIn.ico
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(123,5): error MSB3073:
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(123,5): error MSB3073: :VCEnd" s'est arrêtée avec le code 1.
2>Génération du projet "AKFMaster-aax.vcxproj" terminée -- ÉCHEC.
6>------ Début de la génération : Projet : AKFMaster-rtas, Configuration : Debug Win32 ------
4>AKFMaster.cpp
6>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(1755,5): warning : The referenced project '....\PT9_SDK\AlturaPorts\TDMPlugIns\PlugInLibrary\WinBuild\PlugInLib.vcxproj' does not exist.
3>app_dialog.cpp
6>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\bin\HostX86\x86\CL.exe /c /I.....\WDL\IPlug\RTAS /I.\ /I"C:\wdl-ol\IPlugExamples\AKFMaster\......\MyDSP\" /I....\WDL /I....\WDL\lice /I....\WDL\IPlug /Zi /nologo /W3 /WX- /diagnostics:classic /Od /Ob1 /Ot /Oy- /D RTAS_API /D _HAS_ITERATOR_DEBUGGING=0 /D _SECURE_SCL=0 /D _WINDOWS /D WIN32 /D _WIN32 /D WINDOWS_VERSION /D _LIB /D _CRT_SECURE_NO_WARNINGS /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D NDEBUG /D WIN32 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _WINDLL /Gm- /EHa /MT /GS /arch:SSE2 /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /Fo"C:\wdl-ol\IPlugExamples\AKFMaster\build-win\rtas\Debug\" /Fd"C:\wdl-ol\IPlugExamples\AKFMaster\build-win\rtas\Debug\vc141.pdb" /Gd /TP /wd4996 /wd4250 /wd4018 /wd4267 /FIdigicode.h /analyze- /errorReport:prompt @....\WDL\IPlug\RTAS\Paths_90_SDK.txt ....\WDL\IPlug\Hosts.cpp ....\WDL\IPlug\IBitmapMonoText.cpp ....\WDL\IPlug\IControl.cpp ....\WDL\IPlug\IGraphics.cpp ....\WDL\IPlug\IGraphicsWin.cpp ....\WDL\IPlug\IParam.cpp ....\WDL\IPlug\IPlugBase.cpp ....\WDL\IPlug\IPlugRTAS.cpp ....\WDL\IPlug\IPlugStructs.cpp ....\WDL\IPlug\IPopupMenu.cpp ....\WDL\IPlug\Log.cpp ....\WDL\IPlug\RTAS\IPlugCustomUI.cpp ....\WDL\IPlug\RTAS\IPlugGroup.cpp ....\WDL\IPlug\RTAS\IPlugProcess.cpp ....\WDL\IPlug\RTAS\IPlugProcessAS.cpp ....\WDL\IPlug\RTAS\IPlugProcessRTAS.cpp ....\WDL\IPlug\RTAS\digicode1.cpp ....\WDL\IPlug\RTAS\digicode2.cpp ....\WDL\IPlug\RTAS\digicode3.cpp AKFMaster.cpp
4>c:\wdl-ol\wdl\iplug\iplugvst.h(6): fatal error C1083: Impossible d'ouvrir le fichier include : '../../VST_SDK/aeffectx.h' : No such file or directory
4>IPlugVST.cpp
5>AKFMaster.cpp
5>c:\wdl-ol\wdl\iplug\iplugvst3.h(140): error C2143: erreur de syntaxe : absence de ';' avant '<'
5>c:\wdl-ol\wdl\iplug\iplugvst3.h(140): error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
5>c:\wdl-ol\wdl\iplug\iplugvst3.h(140): error C2238: jetons inattendus avant ';'
5>IPlugVST3.cpp
6>Hosts.cpp
3>c:\wdl-ol\iplugexamples\akfmaster\app_wrapper\app_dialog.cpp(551): error C3688: suffixe littéral non valide 'DATE'; opérateur littéral ou modèle d'opérateur littéral 'operator ""DATE' introuvable
6>C:\wdl-ol\WDL\IPlug\RTAS\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
6>IBitmapMonoText.cpp
6>C:\wdl-ol\WDL\IPlug\RTAS\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
6>IControl.cpp
6>C:\wdl-ol\WDL\IPlug\RTAS\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
3>c:\wdl-ol\iplugexamples\akfmaster\app_wrapper\app_dialog.cpp(551): error C2660: 'sprintf' : la fonction ne prend pas 1 arguments
6>IGraphics.cpp
6>C:\wdl-ol\WDL\IPlug\RTAS\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
6>IGraphicsWin.cpp
6>C:\wdl-ol\WDL\IPlug\RTAS\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
6>IParam.cpp
6>C:\wdl-ol\WDL\IPlug\RTAS\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
6>IPlugBase.cpp
6>C:\wdl-ol\WDL\IPlug\RTAS\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
6>IPlugRTAS.cpp
6>C:\wdl-ol\WDL\IPlug\RTAS\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
6>IPlugStructs.cpp
6>C:\wdl-ol\WDL\IPlug\RTAS\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
6>IPopupMenu.cpp
6>C:\wdl-ol\WDL\IPlug\RTAS\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
6>Log.cpp
4>c:\wdl-ol\wdl\iplug\iplugvst.h(6): fatal error C1083: Impossible d'ouvrir le fichier include : '../../VST_SDK/aeffectx.h' : No such file or directory
6>C:\wdl-ol\WDL\IPlug\RTAS\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
6>IPlugCustomUI.cpp
6>c:\wdl-ol\wdl\iplug\rtas\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
6>IPlugGroup.cpp
6>c:\wdl-ol\wdl\iplug\rtas\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
6>IPlugProcess.cpp
6>c:\wdl-ol\wdl\iplug\rtas\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
6>IPlugProcessAS.cpp
6>c:\wdl-ol\wdl\iplug\rtas\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
6>IPlugProcessRTAS.cpp
4>Génération de code en cours...
6>c:\wdl-ol\wdl\iplug\rtas\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
6>digicode1.cpp
6>c:\wdl-ol\wdl\iplug\rtas\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
6>digicode2.cpp
3>Génération du projet "AKFMaster-app.vcxproj" terminée -- ÉCHEC.
6>c:\wdl-ol\wdl\iplug\rtas\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
6>digicode3.cpp
4>Génération du projet "AKFMaster-vst2.vcxproj" terminée -- ÉCHEC.
6>c:\wdl-ol\wdl\iplug\rtas\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
6>AKFMaster.cpp
6>C:\wdl-ol\WDL\IPlug\RTAS\digicode.h(24): fatal error C1083: Impossible d'ouvrir le fichier include : 'ForcedInclude.h' : No such file or directory
6>Génération de code en cours...
6>Génération du projet "AKFMaster-rtas.vcxproj" terminée -- ÉCHEC.
5>c:\wdl-ol\wdl\iplug\iplugvst3.h(140): error C2143: erreur de syntaxe : absence de ';' avant '<'
5>c:\wdl-ol\wdl\iplug\iplugvst3.h(140): error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
5>c:\wdl-ol\wdl\iplug\iplugvst3.h(140): error C2238: jetons inattendus avant ';'
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(199): error C2065: 'Lp' : identificateur non déclaré
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(199): error C2227: la partie gauche de '->GetNameForHost' doit pointer vers un type class/struct/union/générique
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(199): note: le type est 'unknown-type'
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(201): error C2065: 'Lp' : identificateur non déclaré
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(201): error C2227: la partie gauche de '->GetLabelForHost' doit pointer vers un type class/struct/union/générique
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(201): note: le type est 'unknown-type'
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(207): error C2664: 'Steinberg::Vst::RangeParameter::RangeParameter(Steinberg::Vst::RangeParameter &&)' : impossible de convertir l'argument 1 de 'int' en 'const Steinberg::Vst::TChar *'
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(207): note: La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(217): error C2065: 'Lp' : identificateur non déclaré
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(217): error C2227: la partie gauche de '->GetNameForHost' doit pointer vers un type class/struct/union/générique
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(217): note: le type est 'unknown-type'
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(219): error C2065: 'Lp' : identificateur non déclaré
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(219): error C2227: la partie gauche de '->GetLabelForHost' doit pointer vers un type class/struct/union/générique
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(219): note: le type est 'unknown-type'
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(221): error C2664: 'Steinberg::Vst::StringListParameter::StringListParameter(const Steinberg::Vst::StringListParameter &)' : impossible de convertir l'argument 1 de 'int' en 'const Steinberg::Vst::TChar *'
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(221): note: La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(229): error C2065: 'Lp' : identificateur non déclaré
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(229): error C2227: la partie gauche de '->GetDisplayText' doit pointer vers un type class/struct/union/générique
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(229): note: le type est 'unknown-type'
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(250): error C2065: 'viewsArray' : identificateur non déclaré
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(250): error C2228: la partie gauche de '.removeAll' doit avoir un class/struct/union
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(250): note: le type est 'unknown-type'
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(277): error C2039: 'remove' : n'est pas membre de 'Steinberg::Vst::BusList'
5>c:\wdl-ol\vst3_sdk\public.sdk\source\vst\vstbus.h(141): note: voir la déclaration de 'Steinberg::Vst::BusList'
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(286): error C2039: 'remove' : n'est pas membre de 'Steinberg::Vst::BusList'
5>c:\wdl-ol\vst3_sdk\public.sdk\source\vst\vstbus.h(141): note: voir la déclaration de 'Steinberg::Vst::BusList'
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(303): error C2039: 'remove' : n'est pas membre de 'Steinberg::Vst::BusList'
5>c:\wdl-ol\vst3_sdk\public.sdk\source\vst\vstbus.h(141): note: voir la déclaration de 'Steinberg::Vst::BusList'
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(761): error C2065: 'viewsArray' : identificateur non déclaré
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(761): error C2228: la partie gauche de '.add' doit avoir un class/struct/union
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(761): note: le type est 'unknown-type'
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(766): error C2065: 'viewsArray' : identificateur non déclaré
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(766): error C2228: la partie gauche de '.total' doit avoir un class/struct/union
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(766): note: le type est 'unknown-type'
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(768): error C2065: 'viewsArray' : identificateur non déclaré
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(768): error C2228: la partie gauche de '.at' doit avoir un class/struct/union
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(768): note: le type est 'unknown-type'
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(770): error C2065: 'viewsArray' : identificateur non déclaré
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(770): error C2228: la partie gauche de '.removeAt' doit avoir un class/struct/union
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(770): note: le type est 'unknown-type'
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(962): error C2065: 'viewsArray' : identificateur non déclaré
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(962): error C2228: la partie gauche de '.at' doit avoir un class/struct/union
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(962): note: le type est 'unknown-type'
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(962): error C2227: la partie gauche de '->resize' doit pointer vers un type class/struct/union/générique
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(976): error C2065: 'viewsArray' : identificateur non déclaré
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(976): error C2228: la partie gauche de '.at' doit avoir un class/struct/union
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(976): note: le type est 'unknown-type'
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(986): error C2065: 'viewsArray' : identificateur non déclaré
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(986): error C2228: la partie gauche de '.at' doit avoir un class/struct/union
5>c:\wdl-ol\wdl\iplug\iplugvst3.cpp(986): note: le type est 'unknown-type'
5>Génération de code en cours...
5>Génération du projet "AKFMaster-vst3.vcxproj" terminée -- ÉCHEC.
========== Génération : 0 a réussi, 6 a échoué, 2 mis à jour, 0 a été ignoré ==========

Having IControl implementing Observer and Observable design pattern

That would be really cool if IControl both implements Observer and Observable pattern.

Currently, if you want to link two graphic object together (let's says a rotary button and a text), you have no choice than sharing paramIdx between both class, and override at least on IsDirty function to check if the value has change or not.

That would be a good improvements to have an Observer pattern and Observable pattern (I can submit base working code for), and then, simply have something:

IButton b1;
IText t1;

t1.registerObserver(b1);
b1.registerObserver(t1);

Then, t1 updates it's mValue when b1 change it's mValue, and then opposite, way more cool and flexible in this way.

As usual, if needed I can try to handle this changes ;)

Chunks Branch and VST2

The IPlugChunks example does not appear to restore correctly in VST2. When some slider elements are changed in a REAPER project which is then saved and recalled, the slider elements that were not changed do not draw. (see image linked below)

http://cerberusaudio.com/a/chunks.png

RTAS and AAX glitch like crazy with PT 10.36 and PT11 on Windows

Seems like the latest versions of ProTools are highly sensitive to mutex's in the high priority audio thread, particularly on windows causing very nasty glitches. The glitches go when IPlug's mutexes are disabled but then you get the occasional crash because it's not thread safe. Since IPlug's design makes it impossible to avoid this, I am working on a re-write of IPlug. Until then I cannot recommend anyone use IPlug to make RTAS or AAX plugins. I have postponed the release of Endless Series AAX x64 until I have sorted out these problems.

IControl text entry prompts bug

there is a bug in the IConttrol prompt (right click on control) , this does not show negative values.
works well with positive values.

this happens on windows, OSX not confirmed yet

Wrong plugin recognition in different DAWs

Faced with the following problem. I added the following line to file resource.h:

define PLUG_CHANNEL_IO "0-1 0-2"

Thus, audioplagin has no audio inputs and has either one (mono) or a pair of (stereo) audio outputs. Cockos REAPER recognize the plugin as VST instrument, but FL Studio see this as VST effect, not instrument. The project compiles into VST2 format in VC++ 2010 on Windows 7 SP1.

Please could you tell what could be the problem and how to solve it?

AAX issue; Getting some error message!

Hi,
I'm getting some errors here;
const int32_t ON_CONTROL_VALUE = 0x7fffffff;
const int32_t OFF_CONTROL_VALUE = static_cast(0x80000000);
const int32_t MASTERBYPASS_UNDEFINED = 0;
const AAX_CTypeID MIDI_CHUNK_ID = 'midi';

Attached a picture.
Thanks
Jean
capture decran 2014-03-18 a 00 31 06

IPlugVST3 might crash the Plugin when initalizing reqNumInputChannels or reqNumOutputChannels

Lines 278 and 279 at IPlugVST3 might cause an access violation if the 'inputs' or 'outputs' arrays are empty (for example in a VST instrument). I've encountered this error in Win x64 Debug configuration of my VST3 plugin.

It would be safer if the code looked if there are any channels initialized and then get their speaker arrangement. For example.

  int32 reqNumInputChannels = 0;
  if(NInChannels() > 0)
      reqNumInputChannels = SpeakerArr::getChannelCount(inputs[0]);  //requested # input channels
  int32 reqNumOutputChannels = 0;
  if(NOutChannels() > 0)
      reqNumOutputChannels = SpeakerArr::getChannelCount(outputs[0]);//requested # output channels

  • I'm sorry if I'm doing something wrong its the first time I try to contribute to Github :)

IRECT assumes vertically stacked bitmaps

the constructor for an IRECT assumes that, when a bitmap is a set of animation frames, that they will be stacked downwards.

i haven't really done the whole pull request thing before, but here is my patch. it's probably not as elegant as it could be..

diff --git a/WDL/IPlug/IPlugStructs.h b/WDL/IPlug/IPlugStructs.h
index e25ac93..705d8d3 100644
--- a/WDL/IPlug/IPlugStructs.h
+++ b/WDL/IPlug/IPlugStructs.h
@@ -139,7 +139,21 @@ struct IRECT

   IRECT() { L = T = R = B = 0; }
   IRECT(int l, int t, int r, int b) : L(l), R(r), T(t), B(b) {}
-  IRECT(int x, int y, IBitmap* pBitmap) : L(x), T(y), R(x + pBitmap->W), B(y + pBitmap->H / pBitmap->N) {}
+  IRECT(int x, int y, IBitmap* pBitmap) 
+  {
+    L = x; 
+    T = y;
+    if (pBitmap->mFramesAreHorizontal)
+    {
+      R = x + pBitmap->W / pBitmap->N;
+      B = y + pBitmap->H;
+    }
+    else
+    {
+      R = x + pBitmap->W;
+      B = y + pBitmap->H / pBitmap->N;
+    }
+  }

   bool Empty() const
   {
@@ -470,4 +484,4 @@ enum
   KEY_ALPHA_Z=KEY_ALPHA_A+25
 };

-#endif
\ No newline at end of file
+#endif

Cant build VST3 using VST3 SDK (3.6.8)

Hi,
Trying to build VST3 using WDL-OL IplugExamples, I get quite a few errors, for example:
"Error C1083 Cannot open source file: '..wdl-ol\VST3SDK\base\source\classfactory.cpp': No such file or directory"
I'm using SDK 3.6.8, VS++ 2015 Community, win10 64
and following martin finkes tutorial: making_audio_plugins

Compilation errors with Visual Studio community

I was looking for instructions on writing a simple VST plugin and ran across http://www.martin-finke.de/blog/tags/making_audio_plugins.html which seemed super promising, but with the current version of Microsoft Visual Studio Community ("Express" is no longer a thing MS wants you to use...) I get the following compilation error after making sure I've copied all the ASIO/VST2/VST3 files into the correct directories, and after bootstrapping a new plugin project.

1>------ Build started: Project: MyFirstPlugin-app, Configuration: Debug Win32 ------
1>  app_dialog.cpp
1>c:\users\mike\documents\git\projects\wdl-ol\iplugexamples\myfirstplugin\app_wrapper\app_dialog.cpp(551): error C3688: invalid literal suffix '__DATE__'; literal operator or literal operator template 'operator ""__DATE__' not found
1>c:\users\mike\documents\git\projects\wdl-ol\iplugexamples\myfirstplugin\app_wrapper\app_dialog.cpp(551): error C2660: 'sprintf': function does not take 1 arguments
========== Build: 0 succeeded, 1 failed, 2 up-to-date, 0 skipped ==========

LoadProgramFromFXP extension

I'm actually working on preset system, and as I'm away a little from "official" preset system, I found there is no way to load a preset from a given path right now.

This is because the function LoadProgramFromFXP does not handle a path parameter but directly prompt to user a load box... That would be sweet to have a parameter and a prompt only if parameter is empty, something like that...

PS: I can do it if you are out of time, let me know!

Null Pointer error in VST3 for 0 inputs

I found this error on Windows 64-bit when working through the tutorial (the MIDI synthesis bit), in the file WDL/IPlug/IPlugVST3.cpp line 278.

This occurred when running the VST3 in the Steinberg VST3 Test Host 64 bit. I have all up-to-date SDKs I believe.

The inputs parameter is passed in as NULL when the plugin requests 0 inputs.

Changing line 278 to

int32 reqNumInputChannels = SpeakerArr::getChannelCount(inputs == NULL ? 0 : inputs[0]);

solved this problem for me. I'm not sure if this NULL check will break anything else, or if anyone else is having this problem, but it has fixed it for me. (I also similarly changed the next line for outputs to be safe)

Standalone (Mac): No audio if sound card doesn't have an input jack

When I run the standalone (APP target) on a MacBook Air (which doesn't have an audio input jack, just a microphone), it doesn't start an audio stream (so there's no input or output). The reason seems to be in app_main.h line 34:

#define DEFAULT_INPUT_DEV "Built-in Input"

It's trying to set the input to something that's not in the hardware. Changing this to "Built-in Microphone" solves the problem on my MacBook Air. After changing it, you have to delete ~/Library/Application Support/ as well.

Harrison Mixbuss, channels bug

there are some problems with the channels on Mixbuss,
when you mute a channel and then unmute, the audio will only play on one side.(Left)
Also it starts to give some feedback pulse or tone sound on the other channel (Right).

    if (IsInChannelConnected(1))
        for (int s = 0; s < nFrames; ++s, ++in1, ++in2, ++out1, ++out2) 
           { *out1 = *in1; *out2 = *in2;}

    else
        for (int s = 0; s < nFrames; ++s, ++in1, ++out1, ++out2) 
            {*out1 = *in1; *out2 = *out1;}

Tested on mono tracks, but I'm told is happening also in stereo tracks.

This happens on AU Mac

Steinberg SDK Updates

Just curious (new to Github and all that). I was looking over your tutorials and noticed Steinberg's SDK does not contain 'aeffect.h' or 'aeffectx.h' anymore, however, they do include audioeffect.h and audioeffectx.h. I assume I can just rename these to the older versions and they should work. Would that be correct?

cannot compile on mac 32 or 64 bits with vst sdk 3.

I m trying to make a first plugin duplicated from IPlugEffect

When I compile it using vst sdk 3 (3.6.6) , I get the following errors

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Security.framework/Headers/cssmtype.h:45:9: Unknown type name 'uint64'; did you mean 'sint64'?

I tried both 32 & 64bits, still the same error.

I m on OS X 10.11 with xcode 7.3.1

IPlugEffect VST3 crashes when changing gain parameter

Pretty much does what it says in the title: Building the IPlugEffect project as 32bit VST3 and loading it into FL Studio 10 results in a freeze when changing the parameter to something other than its initial value.

Compiled it with MSVC 15 Community, not sure if that messes anything up?

Resources under Visual Studio 2010 full

In Visual Studio 2010 Ultimate

If you try to add a resource, e.g. an image the following message occurs:

"The resource script [path]MyNewPlugin.rc was not created using Microsoft Visual Studio. Comments, macros, preprocessor directives, and conditionally included information may be modified and / or removed from the file druing the build process. Replace existing file?"

If you say no it asks you to save the .rc file under a new name.
Then says "Resource.h - not a Microsoft Visual Studio created resource file. Overwrite existing file?"

If you say no again it says it cannot save the .rc file.

If you say yes to the 'overwrite file' it removes the resource and replaces it with a blank one so you have lost all the settings and IDs etc.

VST3 initialization and preset issues

For plugins without presets, IPlugVST3::initialize causes issues, because it calls RestorePreset(0) which causes the plugin to use some random/unititialized parameters. Also, presets do not appear (at least in Reaper), unless the (undocumented) define VST3_PRESET_LIST is set. Am I doing something wrong? In Reaper, if I select a preset in the VST3 version it will also jump back to displaying the default preset's name (after loading the selected preset), which doesn't occur with the VST2 version of any of my plugins. Furthermore, selecting "Restore factory default" will cause a new preset called "No preset" to appear (again only with VST3). The latter two things may be Reaper-only issues (have no other host to test on)

Links to API documentation?

Heya, I ran through Martin Finke's tutorial on wdl-ol and after digging through it and having some ideas on "what to do next" I can't really find any links that give the APIs that wdl-ol supports. For instance, if I want to add CC learning to a plugin control, I'm not sure what calls exist that let me spawn a right-click menu that I can populate with options ("link to CC", "forget link", etc).

Is it possible to add links to the readme that point people to the APIs that wdl-ol supports, in addition to the links to the cockos wdl page and the wdl-ol discussion forum?

accessibility of gui components?

Hi,
I stumbled across this library while reading articles across the net on how to get started creating vst/etc plugins, and had a few questions:

  1. Are the gui components built into wdl-ol accessible with screen readers? In otherwords, are they simple bitmap graphics, or can they be accessibly represented?
  2. If they are not accessible by default, is there a way that they could be made so (if possible, I would like to help with this if that is the case).
  3. If they cannot be made accessible for some reason or another, is there a way to use your own gui frameworks/etc with wdl-ol?

As you can see I'm pretty new at all of this, and I mainly ask these questions because there are very few vst synths that are accessible out of the box for blind people, and I'm hoping to develop some of my own to hopefully fill this need.

Thanks,
-Michael.

hitting "codec can't decode byte" errors in duplicate script

I'm trying to use the duplicate.py script on Windows 10 to perform a plugin duplication, and while this runs fine for the most part, it hits a point where things go horribly wrong because the duplicate script has not been told which encoding to use for files, so it's just going on "whatever the OS is doing", which in Windows is traditionally cp1252, causing problems if the file input is assumed utf8.

Would it be possible to update the duplicate.py script so that it explicitly tells python how to de/encode files?

Resize GUI on AAX & VST3 crash + FIX

If the gui wasn't created, GetGUI()->reisize() crash protools

To fix:
IGraphics.cpp::IGraphics::IGraphics(IPlugBase* pPlug, int w, int h, int refreshFPS)
add

#ifdef AAX_API
    mAAXViewContainer = 0;
#endif

on IPlugAAX.cpp

void IPlugAAX::ResizeGraphics(int w, int h)
{
    IGraphics* pGraphics = GetGUI();

    if (pGraphics)
    {
        AAX_Point oEffectViewSize;
        oEffectViewSize.horz = (float) w;
        oEffectViewSize.vert = (float) h;

        AAX_IViewContainer* viewContainer = pGraphics->GetViewContainer();

        if (viewContainer)
        {
            viewContainer->SetViewSize(oEffectViewSize);
        }
        OnWindowResize();
    }
}

IPlug Chunks VST3

I am using "buses" branch: The chunks portion of IPlugChunks does not work for VST3. VST2 format does work. This issue is not on the todo list.

SetLatency produces a crash in the VST host (only with VST3)

If you do:

python duplicate.py IPlugEffect ABC Test
cd ABC
nano ABC/ABC.cpp                # just add SetLatency(8192);
./makedist-mac.command

Launch Reaper64 (for example): the VST3 crashes Reaper. VST and AU are working though.


Here is the ABC.cpp code:


ABC::ABCIPlugInstanceInfo instanceInfo)
  : IPLUG_CTOR(kNumParams, kNumPrograms, instanceInfo), mGain(1.)
{
   /*
   [...]
   */
  AttachGraphics(pGraphics);

  SetLatency(8192);

  //MakePreset("preset 1", ... );
  MakeDefaultPreset((char *) "-", kNumPrograms);
}

No windows.h on Visual Studio 2015

The opened project can't find the windows.h file.

Message:

1>------ Erstellen gestartet: Projekt: IPlugEffect-app, Konfiguration: Debug Win32 ------
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\Win32\PlatformToolsets\v140_xp\Toolset.targets(36,5): warning MSB8003: Could not find WindowsSdkDir_71A variable from the registry. TargetFrameworkVersion or PlatformToolset may be set to an invalid version number.
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets(366,5): warning MSB8003: Could not find WindowsSDKDir variable from the registry. TargetFrameworkVersion or PlatformToolset may be set to an invalid version number.
1> IPlugEffect.cpp
1>c:\users\eiser\documents\libraries\wdl-ol-master\wdl\mutex.h(37): fatal error C1083: Datei (Include) kann nicht geöffnet werden: "windows.h": No such file or directory
1> app_main.cpp
1>c:\users\eiser\documents\libraries\wdl-ol-master\iplugexamples\iplugeffect - kopie\app_wrapper\app_main.h(22): fatal error C1083: Datei (Include) kann nicht geöffnet werden: "windows.h": No such file or directory
1> app_dialog.cpp
1>c:\users\eiser\documents\libraries\wdl-ol-master\iplugexamples\iplugeffect - kopie\app_wrapper\app_main.h(22): fatal error C1083: Datei (Include) kann nicht geöffnet werden: "windows.h": No such file or directory
1> RtMidi.cpp
1>c:\users\eiser\documents\libraries\wdl-ol-master\wdl\rtaudiomidi\rtmidi.cpp(1952): fatal error C1083: Datei (Include) kann nicht geöffnet werden: "Windows.h": No such file or directory
1> RtAudio.cpp
1>c:\users\eiser\documents\libraries\wdl-ol-master\wdl\rtaudiomidi\rtaudio.h(509): fatal error C1083: Datei (Include) kann nicht geöffnet werden: "windows.h": No such file or directory
1> IPlugStandalone.cpp
1>c:\users\eiser\documents\libraries\wdl-ol-master\wdl\mutex.h(37): fatal error C1083: Datei (Include) kann nicht geöffnet werden: "windows.h": No such file or directory
1> asiolist.cpp
1>c:\users\eiser\documents\libraries\wdl-ol-master\asio_sdk\asiolist.cpp(1): fatal error C1083: Datei (Include) kann nicht geöffnet werden: "windows.h": No such file or directory
1> asiodrivers.cpp
1>c:\users\eiser\documents\libraries\wdl-ol-master\asio_sdk\asiodrivers.h(12): fatal error C1083: Datei (Include) kann nicht geöffnet werden: "windows.h": No such file or directory
1> asio.cpp
1>c:\users\eiser\documents\libraries\wdl-ol-master\asio_sdk\asio.cpp(32): fatal error C1083: Datei (Include) kann nicht geöffnet werden: "windows.h": No such file or directory
1> Code wird generiert...
========== Erstellen: 0 erfolgreich, 1 fehlerhaft, 2 aktuell, 0 übersprungen ==========

If you add $(UniversalCRT_IncludePath) and $(UniversalCRT_LibraryPath_x86) to the visual studio configurations, you will get the same error (https://blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/).

Thank you for your effort in advance.

DJE98

Double parameters don't automate fractionally in Audiounit version in Logic

In Endless Series I have a parameter "Centre" declared like this

GP(kCentre)->InitDouble("Centre", 60., 20., 120., 0.01, "st");

In Ableton Live and Presonus Studio One when automating this parameter, it is possible to get fractional values, such as 60.5 and do a smooth interpolation. In Logic however, the automation is quantised to integer steps.

STR16 issue in IPlugVST3.cpp

In this line,

Parameter* param = new RangeParameter( STR16(p->GetNameForHost()),

the macro STR16 produces a bug, because it can't be applied this way. I see that in the last commit, this has been fixed. But I cannot use this last commit, because this breaks all compilation of my entire project, that used previous versions of IPlugVST3.cpp.

How to solve just this STR16 issue without modifying anything else in IPlugVST3.cpp?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.