diff --git a/Builds/VisualStudio2013/open-ephys.sln b/Builds/VisualStudio2013/open-ephys.sln
index 59a9d10ba28a4b47817570df74b1433044daefbb..db5a4bab9d843b441033e22a717283daea896e4f 100644
--- a/Builds/VisualStudio2013/open-ephys.sln
+++ b/Builds/VisualStudio2013/open-ephys.sln
@@ -1,21 +1,31 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
+Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 2013
-Project("{5A05F353-1D63-394C-DFB0-981BB2309002}") = "open-ephys", "open-ephys.vcxproj", "{9C924D66-7DEC-1AEF-B375-DB8666BFB909}"
+VisualStudioVersion = 12.0.31101.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "open-ephys", "open-ephys.vcxproj", "{9C924D66-7DEC-1AEF-B375-DB8666BFB909}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Win32 = Debug|Win32
-		Release|Win32 = Release|Win32
+		Debug|x64 = Debug|x64
+		Debug64|Win32 = Debug64|Win32
 		Debug64|x64 = Debug64|x64
+		Release|Win32 = Release|Win32
+		Release|x64 = Release|x64
+		Release64|Win32 = Release64|Win32
 		Release64|x64 = Release64|x64
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug|Win32.ActiveCfg = Debug|Win32
 		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug|Win32.Build.0 = Debug|Win32
-		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release|Win32.ActiveCfg = Release|Win32
-		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release|Win32.Build.0 = Release|Win32
+		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug|x64.ActiveCfg = Debug|Win32
+		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug64|Win32.ActiveCfg = Debug64|x64
 		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug64|x64.ActiveCfg = Debug64|x64
 		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Debug64|x64.Build.0 = Debug64|x64
+		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release|Win32.ActiveCfg = Release|Win32
+		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release|Win32.Build.0 = Release|Win32
+		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release|x64.ActiveCfg = Release|Win32
+		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release64|Win32.ActiveCfg = Release64|x64
 		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release64|x64.ActiveCfg = Release64|x64
 		{9C924D66-7DEC-1AEF-B375-DB8666BFB909}.Release64|x64.Build.0 = Release64|x64
 	EndGlobalSection
diff --git a/Source/Processors/PlaceholderProcessor/PlaceholderProcessor.cpp b/Source/Processors/PlaceholderProcessor/PlaceholderProcessor.cpp
index b800370ed28cc059e76521b83308a3a8e503366c..88ebc39342b28f3302f8813731167c0c2d851a88 100644
--- a/Source/Processors/PlaceholderProcessor/PlaceholderProcessor.cpp
+++ b/Source/Processors/PlaceholderProcessor/PlaceholderProcessor.cpp
@@ -22,3 +22,45 @@
 */
 
 #include "PlaceholderProcessor.h"
+#include "PlaceholderProcessorEditor.h"
+
+PlaceholderProcessor::PlaceholderProcessor(String pName, String lName, int lVer, bool pSource, bool pSink) :
+					GenericProcessor(pName), processorName(pName), libName(lName), libVersion(lVer), 
+					processorSource(pSource), processorSink(pSink)
+{
+
+}
+
+PlaceholderProcessor::~PlaceholderProcessor()
+{
+
+}
+
+bool PlaceholderProcessor::hasEditor() const
+{
+	return true;
+}
+
+AudioProcessorEditor* PlaceholderProcessor::createEditor()
+{
+	return new PlaceholderProcessorEditor(this, processorName, libName, libVersion);
+}
+
+void PlaceholderProcessor::process(AudioSampleBuffer& continuousBuffer,	MidiBuffer& eventBuffer)
+{
+
+}
+
+bool PlaceholderProcessor::isSource()
+{
+	return processorSource;
+}
+bool PlaceholderProcessor::isSink()
+{
+	return processorSink;
+}
+
+bool PlaceholderProcessor::enable()
+{
+	return false; //This processor never allows processing
+}
\ No newline at end of file
diff --git a/Source/Processors/PlaceholderProcessor/PlaceholderProcessor.h b/Source/Processors/PlaceholderProcessor/PlaceholderProcessor.h
index ec935a87dde2292f9581107535bb42d701166407..5da989288045f715855ca5d4a569bc8e3f33d149 100644
--- a/Source/Processors/PlaceholderProcessor/PlaceholderProcessor.h
+++ b/Source/Processors/PlaceholderProcessor/PlaceholderProcessor.h
@@ -24,7 +24,31 @@
 #ifndef PLACEHOLDERPROCESSOR_H_INCLUDED
 #define PLACEHOLDERPROCESSOR_H_INCLUDED
 
-
+#include "../../../JuceLibraryCode/JuceHeader.h"
+#include "../GenericProcessor/GenericProcessor.h"
+
+class PlaceholderProcessor : public GenericProcessor
+{
+public:
+	PlaceholderProcessor(String pName, String lName, int lVer, bool pSource, bool pSink);
+	~PlaceholderProcessor();
+	bool hasEditor() const override;
+	AudioProcessorEditor* createEditor() override;
+
+	void process(AudioSampleBuffer& continuousBuffer,
+		MidiBuffer& eventBuffer) override;
+	bool isSource() override;
+	bool isSink() override;
+	bool enable() override;
+private:
+	const String processorName;
+	const String libName;
+	const int libVersion;
+	const bool processorSource;
+	const bool processorSink;
+
+	JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(PlaceholderProcessor);
+};
 
 
 
diff --git a/Source/Processors/PlaceholderProcessor/PlaceholderProcessorEditor.cpp b/Source/Processors/PlaceholderProcessor/PlaceholderProcessorEditor.cpp
index 07b2506cafe83bfc3db683ff66ba0433cf330db4..43df12bf1d0ea2aba589c28bf34c227e92f692a9 100644
--- a/Source/Processors/PlaceholderProcessor/PlaceholderProcessorEditor.cpp
+++ b/Source/Processors/PlaceholderProcessor/PlaceholderProcessorEditor.cpp
@@ -22,3 +22,27 @@
 */
 
 #include "PlaceholderProcessorEditor.h"
+
+PlaceholderProcessorEditor::PlaceholderProcessorEditor(GenericProcessor* parentNode, String pName, String lName, int lVer)
+	: GenericEditor(parentNode, true), processorName(pName), libName(lName), libVersion(lVer)
+{
+	notfoundLabel = new Label("Not found", "Plugin not found");
+	notfoundLabel->setBounds(30, 30, 100, 20);
+	addAndMakeVisible(notfoundLabel);
+
+	libLabel = new Label("Plugin", libName + " ver. " + String(libVersion));
+	libLabel->setBounds(30, 70, 100, 20);
+	addAndMakeVisible(libLabel);
+
+	nameLabel = new Label("Processor", "Missing processor: " + processorName);
+	libLabel->setBounds(30, 110, 100, 20);
+	addAndMakeVisible(nameLabel);
+
+	desiredWidth = 150;
+	setEnabledState(false);
+}
+
+PlaceholderProcessorEditor::~PlaceholderProcessorEditor()
+{
+
+}
diff --git a/Source/Processors/PlaceholderProcessor/PlaceholderProcessorEditor.h b/Source/Processors/PlaceholderProcessor/PlaceholderProcessorEditor.h
index 9869fd5f6052516946ba932ba64f60d973171767..23e5bfc82cc87902fbd06dffd2817ae54a0e663f 100644
--- a/Source/Processors/PlaceholderProcessor/PlaceholderProcessorEditor.h
+++ b/Source/Processors/PlaceholderProcessor/PlaceholderProcessorEditor.h
@@ -24,8 +24,25 @@
 #ifndef PLACEHOLDERPROCESSOREDITOR_H_INCLUDED
 #define PLACEHOLDERPROCESSOREDITOR_H_INCLUDED
 
-
-
+#include "../../../JuceLibraryCode/JuceHeader.h"
+#include "../Editors/GenericEditor.h"
+
+class PlaceholderProcessorEditor : public GenericEditor
+{
+public:
+	PlaceholderProcessorEditor(GenericProcessor* parentNode, String pName, String lName, int lVer);
+	~PlaceholderProcessorEditor();
+
+private:
+	const String processorName;
+	const String libName;
+	const int libVersion;
+	ScopedPointer<Label> nameLabel;
+	ScopedPointer<Label> libLabel;
+	ScopedPointer<Label> notfoundLabel;
+
+	JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(PlaceholderProcessorEditor);
+};
 
 
 #endif  // PLACEHOLDERPROCESSOREDITOR_H_INCLUDED