Projucer basic plugin tutorial VST3 no MIDI in / out VS2010


#1

juce-grapefruit-windows

vstsdk365_12_11_2015_build_67

Windows 7 Visual Studio 2010

 

The Juce Plugin Host is built and running. I started by creating a basic plugin according to: 

http://www.juce.com/doc/tutorial_create_projucer_basic_plugin

I setup VST3 only for Visual Studio 2010. I was able to compile and link without errors, but lots of warnings, see below.

In the Juce Plug-In Host I scanned, found and instantiated the debug build of the plugin: It is shown with two audio in and two audio out connectors but no MIDI in nor MIDI out. I also tried to build it as "Is a Synth" but this does not change anything but removing the audio ins.

Is this a limitation of the windows version: "Limited functionality on Windows 7 or higher, full version coming soon", as mentioned here: http://www.juce.com/releases/projucer-juce-4 ...?

 

VS2010 build output:

1>------ Rebuild All started: Project: JoeSix, Configuration: Debug Win32 ------
1>Build started 08.01.2016 02:11:46.
1>_PrepareForClean:
1>  Deleting file "Debug\JoeSix.lastbuildstate".
1>InitializeBuildStatus:
1>  Creating "Debug\JoeSix.unsuccessfulbuild" because "AlwaysCreate" was specified.
1>ClCompile:
1>  PluginProcessor.cpp
1>  PluginEditor.cpp
1>  juce_AAX_Wrapper.cpp
1>  juce_audio_basics.cpp
1>  juce_audio_devices.cpp
1>  juce_audio_formats.cpp
1>  juce_audio_processors.cpp
1>  juce_core.cpp
1>  juce_cryptography.cpp
1>  juce_data_structures.cpp
1>c:\users\xxxx\documents\develop\juceprojects\joesix\source\pluginprocessor.cpp(69): warning C4100: 'index' : unreferenced formal parameter
1>c:\users\xxxx\documents\develop\juceprojects\joesix\source\pluginprocessor.cpp(73): warning C4100: 'index' : unreferenced formal parameter
1>c:\users\xxxx\documents\develop\juceprojects\joesix\source\pluginprocessor.cpp(78): warning C4100: 'newName' : unreferenced formal parameter
1>c:\users\xxxx\documents\develop\juceprojects\joesix\source\pluginprocessor.cpp(78): warning C4100: 'index' : unreferenced formal parameter
1>c:\users\xxxx\documents\develop\juceprojects\joesix\source\pluginprocessor.cpp(83): warning C4100: 'samplesPerBlock' : unreferenced formal parameter
1>c:\users\xxxx\documents\develop\juceprojects\joesix\source\pluginprocessor.cpp(83): warning C4100: 'sampleRate' : unreferenced formal parameter
1>c:\users\xxxx\documents\develop\juceprojects\joesix\source\pluginprocessor.cpp(103): warning C4996: 'juce::AudioProcessor::getNumInputChannels': was declared deprecated
1>          c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\processors\juce_audioprocessor.h(912) : see declaration of 'juce::AudioProcessor::getNumInputChannels'
1>c:\users\xxxx\documents\develop\juceprojects\joesix\source\pluginprocessor.cpp(103): warning C4996: 'juce::AudioProcessor::getNumOutputChannels': was declared deprecated
1>          c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\processors\juce_audioprocessor.h(913) : see declaration of 'juce::AudioProcessor::getNumOutputChannels'
1>c:\users\xxxx\documents\develop\juceprojects\joesix\source\pluginprocessor.cpp(108): warning C4996: 'juce::AudioProcessor::getNumInputChannels': was declared deprecated
1>          c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\processors\juce_audioprocessor.h(912) : see declaration of 'juce::AudioProcessor::getNumInputChannels'
1>c:\users\xxxx\documents\develop\juceprojects\joesix\source\pluginprocessor.cpp(95): warning C4100: 'midiMessages' : unreferenced formal parameter
1>c:\users\xxxx\documents\develop\juceprojects\joesix\source\pluginprocessor.cpp(110): warning C4189: 'channelData' : local variable is initialized but not referenced
1>c:\users\xxxx\documents\develop\juceprojects\joesix\source\pluginprocessor.cpp(128): warning C4100: 'destData' : unreferenced formal parameter
1>c:\users\xxxx\documents\develop\juceprojects\joesix\source\pluginprocessor.cpp(135): warning C4100: 'sizeInBytes' : unreferenced formal parameter
1>c:\users\xxxx\documents\develop\juceprojects\joesix\source\pluginprocessor.cpp(135): warning C4100: 'data' : unreferenced formal parameter
1>  juce_events.cpp
1>  juce_graphics.cpp
1>  juce_gui_basics.cpp
1>  juce_gui_extra.cpp
1>  juce_opengl.cpp
1>  juce_PluginUtilities.cpp
1>  juce_video.cpp
1>  juce_VST_Wrapper.cpp
1>  juce_VST3_Wrapper.cpp
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_plugin_client\utility\juce_pluginbusutilities.h(373): warning C4512: 'PluginBusUtilities' : assignment operator could not be generated
1>          c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_plugin_client\utility\juce_pluginbusutilities.h(29) : see declaration of 'PluginBusUtilities'
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(146): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(147): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(148): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(149): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(150): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(151): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(152): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(153): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(154): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(155): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(156): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(157): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(158): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(159): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(160): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(161): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(162): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(163): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(164): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(177): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(178): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(179): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(180): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(181): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(182): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(183): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(184): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(185): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(186): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(187): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(188): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(189): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(190): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(191): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(192): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(193): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(194): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(195): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>c:\users\xxxx\documents\develop\juce\juce-grapefruit-windows\modules\juce_audio_processors\format_types\juce_vst3common.h(199): warning C4482: nonstandard extension used: enum 'juce::AudioChannelSet::ChannelType' used in qualified name
1>  juce_RTAS_DigiCode1.cpp
1>  juce_RTAS_DigiCode2.cpp
1>  juce_RTAS_DigiCode3.cpp
1>  juce_RTAS_WinUtilities.cpp
1>  juce_RTAS_Wrapper.cpp
1>Link:
1>     Creating library C:\Users\xxxx\Documents\Develop\JuceProjects\JoeSix\Builds\VisualStudio2010\Debug\JoeSix.lib and object C:\Users\xxxx\Documents\Develop\JuceProjects\JoeSix\Builds\VisualStudio2010\Debug\JoeSix.exp
1>  JoeSix.vcxproj -> C:\Users\xxxx\Documents\Develop\JuceProjects\JoeSix\Builds\VisualStudio2010\Debug\JoeSix.dll
1>PostBuildEvent:
1>          1 file(s) copied.
1>FinalizeBuildStatus:
1>  Deleting file "Debug\JoeSix.unsuccessfulbuild".
1>  Touching "Debug\JoeSix.lastbuildstate".
1>
1>Build succeeded.
1>
1>Time Elapsed 00:00:20.92
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

#2

Thanks. About the warnings:

  • The ones that say "unreferenced formal parameter" are fine (they're in the generated project template, not in JUCE), they mean that you didn't implement the function yet.
  • The one that says "assignment operator could not be generated" appears to be some weird VS2010 thing that doesn't appear in later VS versions. My guess is that VS2010 can't deal correctly with the JUCE_DECLARE_NONCOPYABLE macro which deletes the assignment operator.
  • The other warnings are genuine and we will fix them!

Now to your actual problem. Yes, I can reproduce the problem. I don't know yet what causes the problem, but we will dig and find out. Please be patient.