diff --git a/.gitignore b/.gitignore
index 9a3a7f572fa66f13a975512f0cfbce87071c7695..b8f1167e4f397ce418a241a229f3eacec9ef7322 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,4 @@ Builds/Linux/build/savedState.xml
 Builds/Linux/build/windowState.xml
 Builds/Linux/build/Data
 Builds/Linux/build/*.xml
+Builds/Linux/build/*.out
diff --git a/Builds/Linux/Makefile b/Builds/Linux/Makefile
index f3f47f4496a6e30d5ab7217cd302b6adc1c26d38..66d62dd8dc52ae67c4f0eb3a8f3b81a11e87b194 100644
--- a/Builds/Linux/Makefile
+++ b/Builds/Linux/Makefile
@@ -19,8 +19,8 @@ ifeq ($(CONFIG),Debug)
   OUTDIR := build
   CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2"
   CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0
-  CXXFLAGS += $(CFLAGS) -export-dynamic -pg
-  LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../JuceLibraryCode/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound -lftdi -lftgl
+  CXXFLAGS += $(CFLAGS) -export-dynamic -g -pg
+  LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../JuceLibraryCode/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound -lftdi -lftgl -pg
   LDDEPS :=
   RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2"
   TARGET := open-ephys
@@ -34,8 +34,8 @@ ifeq ($(CONFIG),Release)
   OUTDIR := build
   CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2"
   CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -O3
-  CXXFLAGS += $(CFLAGS) -export-dynamic -pg
-  LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../JuceLibraryCode/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound -lftdi -lftgl
+  CXXFLAGS += $(CFLAGS) -export-dynamic -g -pg
+  LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../JuceLibraryCode/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound -lftdi -lftgl -pg
   LDDEPS :=
   RESFLAGS :=  -D "LINUX=1" -D "NDEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I "/usr/include" -I "/usr/include/freetype2"
   TARGET := open-ephys
diff --git a/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj b/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj
index bb91f268ef27d133bac859a6b976f4a76613d811..71803a3745b625a249c4fd572c0dd0e19ec23932 100644
--- a/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj
+++ b/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj
@@ -1019,7 +1019,6 @@
 					"JUCER_XCODE_MAC_F6D2F4CF=1",
 				);
 				GCC_SYMBOLS_PRIVATE_EXTERN = YES;
-				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				HEADER_SEARCH_PATHS = (
 					/usr/local/include,
 					/usr/local/include/freetype2,
@@ -1048,7 +1047,6 @@
 					"JUCE_ObjCExtraSuffix=fea2mT",
 					"JUCER_XCODE_MAC_F6D2F4CF=1",
 				);
-				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				HEADER_SEARCH_PATHS = (
 					/usr/local/include,
 					/usr/local/include/freetype2,
diff --git a/Builds/MacOSX/open-ephys.xcodeproj/project.xcworkspace/xcuserdata/Josh.xcuserdatad/UserInterfaceState.xcuserstate b/Builds/MacOSX/open-ephys.xcodeproj/project.xcworkspace/xcuserdata/Josh.xcuserdatad/UserInterfaceState.xcuserstate
index 56e396d593923ed164ed24f26d8614aa5a5617b1..ba1c41f40a64c39c4ca41047ab29635efe42d323 100644
Binary files a/Builds/MacOSX/open-ephys.xcodeproj/project.xcworkspace/xcuserdata/Josh.xcuserdatad/UserInterfaceState.xcuserstate and b/Builds/MacOSX/open-ephys.xcodeproj/project.xcworkspace/xcuserdata/Josh.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/Builds/VisualStudio2010/open-ephys.sln b/Builds/VisualStudio2010/open-ephys.sln
new file mode 100644
index 0000000000000000000000000000000000000000..f07db3f752abcbb926213057d89aeced6064f7f1
--- /dev/null
+++ b/Builds/VisualStudio2010/open-ephys.sln
@@ -0,0 +1,18 @@
+Microsoft Visual Studio Solution File, Format Version 11.00
+Project("{8FA1AFF1-2558-DDD8-66E3-3288408D9CDF}") = "open-ephys", "open-ephys.vcxproj", "{92D8FACB-6E9B-1810-EC14-AD5A7FE1CD78}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{92D8FACB-6E9B-1810-EC14-AD5A7FE1CD78}.Debug|Win32.ActiveCfg = Debug|Win32
+		{92D8FACB-6E9B-1810-EC14-AD5A7FE1CD78}.Debug|Win32.Build.0 = Debug|Win32
+		{92D8FACB-6E9B-1810-EC14-AD5A7FE1CD78}.Release|Win32.ActiveCfg = Release|Win32
+		{92D8FACB-6E9B-1810-EC14-AD5A7FE1CD78}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/Builds/VisualStudio2010/open-ephys.vcxproj b/Builds/VisualStudio2010/open-ephys.vcxproj
new file mode 100644
index 0000000000000000000000000000000000000000..3b1150b350d2daed4871c3ec3e1796368ceed61b
--- /dev/null
+++ b/Builds/VisualStudio2010/open-ephys.vcxproj
@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{92D8FACB-6E9B-1810-EC14-AD5A7FE1CD78}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props"/>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props"/>
+  <ImportGroup Label="ExtensionSettings"/>
+  <ImportGroup Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
+            Label="LocalAppDataPlatform"/>
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros"/>
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</IntDir>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">open-ephys</TargetName>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</IntDir>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">open-ephys</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>Win32</TargetEnvironment>
+      <HeaderFileName/>
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2010_78A501D=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>
+      <PrecompiledHeader/>
+      <AssemblerListingLocation>.\Debug\</AssemblerListingLocation>
+      <ObjectFileName>.\Debug\</ObjectFileName>
+      <ProgramDataBaseFileName>.\Debug\</ProgramDataBaseFileName>
+      <WarningLevel>Level4</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+    <Link>
+      <OutputFile>.\Debug\open-ephys.exe</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <IgnoreSpecificDefaultLibraries>libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>.\Debug\open-ephys.pdb</ProgramDatabaseFile>
+      <SubSystem>Windows</SubSystem>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <Bscmake>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <OutputFile>.\Debug\open-ephys.bsc</OutputFile>
+    </Bscmake>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>Win32</TargetEnvironment>
+      <HeaderFileName/>
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;JUCER_VS2010_78A501D=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>
+      <PrecompiledHeader/>
+      <AssemblerListingLocation>.\Release\</AssemblerListingLocation>
+      <ObjectFileName>.\Release\</ObjectFileName>
+      <ProgramDataBaseFileName>.\Release\</ProgramDataBaseFileName>
+      <WarningLevel>Level4</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+    <Link>
+      <OutputFile>.\Release\open-ephys.exe</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+      <GenerateDebugInformation>false</GenerateDebugInformation>
+      <ProgramDatabaseFile>.\Release\open-ephys.pdb</ProgramDatabaseFile>
+      <SubSystem>Windows</SubSystem>
+      <TargetMachine>MachineX86</TargetMachine>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+    </Link>
+    <Bscmake>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <OutputFile>.\Release\open-ephys.bsc</OutputFile>
+    </Bscmake>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\AccessClass.cpp"/>
+    <ClCompile Include="..\..\Source\Network\PracticalSocket.cpp"/>
+    <ClCompile Include="..\..\Source\Dsp\Bessel.cpp"/>
+    <ClCompile Include="..\..\Source\Dsp\Biquad.cpp"/>
+    <ClCompile Include="..\..\Source\Dsp\Butterworth.cpp"/>
+    <ClCompile Include="..\..\Source\Dsp\Cascade.cpp"/>
+    <ClCompile Include="..\..\Source\Dsp\ChebyshevI.cpp"/>
+    <ClCompile Include="..\..\Source\Dsp\ChebyshevII.cpp"/>
+    <ClCompile Include="..\..\Source\Dsp\Custom.cpp"/>
+    <ClCompile Include="..\..\Source\Dsp\Design.cpp"/>
+    <ClCompile Include="..\..\Source\Dsp\Documentation.cpp"/>
+    <ClCompile Include="..\..\Source\Dsp\Elliptic.cpp"/>
+    <ClCompile Include="..\..\Source\Dsp\Filter.cpp"/>
+    <ClCompile Include="..\..\Source\Dsp\Legendre.cpp"/>
+    <ClCompile Include="..\..\Source\Dsp\Param.cpp"/>
+    <ClCompile Include="..\..\Source\Dsp\PoleFilter.cpp"/>
+    <ClCompile Include="..\..\Source\Dsp\RBJ.cpp"/>
+    <ClCompile Include="..\..\Source\Dsp\RootFinder.cpp"/>
+    <ClCompile Include="..\..\Source\Dsp\State.cpp"/>
+    <ClCompile Include="..\..\Source\Audio\AudioComponent.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Parameter.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\SpikeDisplayNode.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\WiFiOutput.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\LfpDisplayNode.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Utilities\Merger.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Utilities\Splitter.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikePlotting\StereotrodePlot.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikePlotting\ElectrodePlot.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikePlotting\BaseUIElement.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikePlotting\GenericAxes.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikePlotting\PlotUtils.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikePlotting\ProjectionAxes.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikePlotting\TetrodePlot.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikePlotting\WaveAxes.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikeObject.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikeDisplayCanvas.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Visualization\DataWindow.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Visualization\LfpDisplayCanvas.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Visualization\OpenGLCanvas.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\SpikeDetector.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\AudioNode.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\EventNode.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Editors\ChannelSelector.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Editors\ParameterEditor.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Editors\SpikeDisplayEditor.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Editors\VisualizerEditor.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Editors\MergerEditor.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Editors\ImageIcon.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Editors\WiFiOutputEditor.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Editors\EventNodeEditor.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Editors\SignalGeneratorEditor.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Editors\LfpDisplayEditor.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Editors\SourceNodeEditor.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Editors\SplitterEditor.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Editors\SpikeDetectorEditor.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Editors\AudioEditor.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Editors\FilterEditor.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Editors\GenericEditor.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\DataThreads\FileReaderThread.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\DataThreads\okFrontPanelDLL.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\DataThreads\NetworkThread.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\DataThreads\FPGAThread.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\DataThreads\DataBuffer.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\DataThreads\IntanThread.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\DataThreads\DataThread.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\RecordNode.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\SignalGenerator.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\ResamplingNode.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\FilterNode.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\SourceNode.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\GenericProcessor.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\ProcessorGraph.cpp"/>
+    <ClCompile Include="..\..\Source\UI\EditorViewportButtons.cpp"/>
+    <ClCompile Include="..\..\Source\UI\SignalChainManager.cpp"/>
+    <ClCompile Include="..\..\Source\UI\EditorViewport.cpp"/>
+    <ClCompile Include="..\..\Source\UI\ProcessorList.cpp"/>
+    <ClCompile Include="..\..\Source\UI\CustomLookAndFeel.cpp"/>
+    <ClCompile Include="..\..\Source\UI\InfoLabel.cpp"/>
+    <ClCompile Include="..\..\Source\UI\DataViewport.cpp"/>
+    <ClCompile Include="..\..\Source\UI\MessageCenter.cpp"/>
+    <ClCompile Include="..\..\Source\UI\ControlPanel.cpp"/>
+    <ClCompile Include="..\..\Source\UI\UIComponent.cpp"/>
+    <ClCompile Include="..\..\Source\MainWindow.cpp"/>
+    <ClCompile Include="..\..\Source\Main.cpp"/>
+    <ClCompile Include="..\..\JuceLibraryCode\BinaryData.cpp"/>
+    <ClCompile Include="..\..\JuceLibraryCode\JuceLibraryCode1.cpp"/>
+    <ClCompile Include="..\..\JuceLibraryCode\JuceLibraryCode2.cpp"/>
+    <ClCompile Include="..\..\JuceLibraryCode\JuceLibraryCode3.cpp"/>
+    <ClCompile Include="..\..\JuceLibraryCode\JuceLibraryCode4.cpp"/>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\Source\AccessClass.h"/>
+    <ClInclude Include="..\..\Source\Network\PracticalSocket.h"/>
+    <ClInclude Include="..\..\Source\Dsp\Bessel.h"/>
+    <ClInclude Include="..\..\Source\Dsp\Biquad.h"/>
+    <ClInclude Include="..\..\Source\Dsp\Butterworth.h"/>
+    <ClInclude Include="..\..\Source\Dsp\Cascade.h"/>
+    <ClInclude Include="..\..\Source\Dsp\ChebyshevI.h"/>
+    <ClInclude Include="..\..\Source\Dsp\ChebyshevII.h"/>
+    <ClInclude Include="..\..\Source\Dsp\Common.h"/>
+    <ClInclude Include="..\..\Source\Dsp\Custom.h"/>
+    <ClInclude Include="..\..\Source\Dsp\Design.h"/>
+    <ClInclude Include="..\..\Source\Dsp\Dsp.h"/>
+    <ClInclude Include="..\..\Source\Dsp\Elliptic.h"/>
+    <ClInclude Include="..\..\Source\Dsp\Filter.h"/>
+    <ClInclude Include="..\..\Source\Dsp\Layout.h"/>
+    <ClInclude Include="..\..\Source\Dsp\Legendre.h"/>
+    <ClInclude Include="..\..\Source\Dsp\MathSupplement.h"/>
+    <ClInclude Include="..\..\Source\Dsp\Params.h"/>
+    <ClInclude Include="..\..\Source\Dsp\PoleFilter.h"/>
+    <ClInclude Include="..\..\Source\Dsp\RBJ.h"/>
+    <ClInclude Include="..\..\Source\Dsp\RootFinder.h"/>
+    <ClInclude Include="..\..\Source\Dsp\SmoothedFilter.h"/>
+    <ClInclude Include="..\..\Source\Dsp\State.h"/>
+    <ClInclude Include="..\..\Source\Dsp\Types.h"/>
+    <ClInclude Include="..\..\Source\Dsp\Utilities.h"/>
+    <ClInclude Include="..\..\Source\Audio\AudioComponent.h"/>
+    <ClInclude Include="..\..\Source\Processors\Parameter.h"/>
+    <ClInclude Include="..\..\Source\Processors\SpikeDisplayNode.h"/>
+    <ClInclude Include="..\..\Source\Processors\WiFiOutput.h"/>
+    <ClInclude Include="..\..\Source\Processors\LfpDisplayNode.h"/>
+    <ClInclude Include="..\..\Source\Processors\Utilities\Merger.h"/>
+    <ClInclude Include="..\..\Source\Processors\Utilities\Splitter.h"/>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikePlotting\StereotrodePlot.h"/>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikePlotting\ElectrodePlot.h"/>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikePlotting\BaseUIElement.h"/>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikePlotting\GenericAxes.h"/>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikePlotting\PlotUtils.h"/>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikePlotting\ProjectionAxes.h"/>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikePlotting\SimpleKeyEvent.h"/>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikePlotting\TetrodePlot.h"/>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikePlotting\WaveAxes.h"/>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikeObject.h"/>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikeDisplayCanvas.h"/>
+    <ClInclude Include="..\..\Source\Processors\Visualization\Visualizer.h"/>
+    <ClInclude Include="..\..\Source\Processors\Visualization\DataWindow.h"/>
+    <ClInclude Include="..\..\Source\Processors\Visualization\LfpDisplayCanvas.h"/>
+    <ClInclude Include="..\..\Source\Processors\Visualization\OpenGLCanvas.h"/>
+    <ClInclude Include="..\..\Source\Processors\SpikeDetector.h"/>
+    <ClInclude Include="..\..\Source\Processors\AudioNode.h"/>
+    <ClInclude Include="..\..\Source\Processors\EventNode.h"/>
+    <ClInclude Include="..\..\Source\Processors\Editors\ChannelSelector.h"/>
+    <ClInclude Include="..\..\Source\Processors\Editors\ParameterEditor.h"/>
+    <ClInclude Include="..\..\Source\Processors\Editors\SpikeDisplayEditor.h"/>
+    <ClInclude Include="..\..\Source\Processors\Editors\VisualizerEditor.h"/>
+    <ClInclude Include="..\..\Source\Processors\Editors\MergerEditor.h"/>
+    <ClInclude Include="..\..\Source\Processors\Editors\ImageIcon.h"/>
+    <ClInclude Include="..\..\Source\Processors\Editors\WiFiOutputEditor.h"/>
+    <ClInclude Include="..\..\Source\Processors\Editors\EventNodeEditor.h"/>
+    <ClInclude Include="..\..\Source\Processors\Editors\SignalGeneratorEditor.h"/>
+    <ClInclude Include="..\..\Source\Processors\Editors\LfpDisplayEditor.h"/>
+    <ClInclude Include="..\..\Source\Processors\Editors\SourceNodeEditor.h"/>
+    <ClInclude Include="..\..\Source\Processors\Editors\SplitterEditor.h"/>
+    <ClInclude Include="..\..\Source\Processors\Editors\SpikeDetectorEditor.h"/>
+    <ClInclude Include="..\..\Source\Processors\Editors\AudioEditor.h"/>
+    <ClInclude Include="..\..\Source\Processors\Editors\FilterEditor.h"/>
+    <ClInclude Include="..\..\Source\Processors\Editors\GenericEditor.h"/>
+    <ClInclude Include="..\..\Source\Processors\DataThreads\FileReaderThread.h"/>
+    <ClInclude Include="..\..\Source\Processors\DataThreads\okFrontPanelDLL.h"/>
+    <ClInclude Include="..\..\Source\Processors\DataThreads\NetworkThread.h"/>
+    <ClInclude Include="..\..\Source\Processors\DataThreads\FPGAThread.h"/>
+    <ClInclude Include="..\..\Source\Processors\DataThreads\DataBuffer.h"/>
+    <ClInclude Include="..\..\Source\Processors\DataThreads\IntanThread.h"/>
+    <ClInclude Include="..\..\Source\Processors\DataThreads\DataThread.h"/>
+    <ClInclude Include="..\..\Source\Processors\RecordNode.h"/>
+    <ClInclude Include="..\..\Source\Processors\SignalGenerator.h"/>
+    <ClInclude Include="..\..\Source\Processors\ResamplingNode.h"/>
+    <ClInclude Include="..\..\Source\Processors\FilterNode.h"/>
+    <ClInclude Include="..\..\Source\Processors\SourceNode.h"/>
+    <ClInclude Include="..\..\Source\Processors\GenericProcessor.h"/>
+    <ClInclude Include="..\..\Source\Processors\ProcessorGraph.h"/>
+    <ClInclude Include="..\..\Source\UI\EditorViewportButtons.h"/>
+    <ClInclude Include="..\..\Source\UI\SignalChainManager.h"/>
+    <ClInclude Include="..\..\Source\UI\EditorViewport.h"/>
+    <ClInclude Include="..\..\Source\UI\ProcessorList.h"/>
+    <ClInclude Include="..\..\Source\UI\CustomLookAndFeel.h"/>
+    <ClInclude Include="..\..\Source\UI\InfoLabel.h"/>
+    <ClInclude Include="..\..\Source\UI\DataViewport.h"/>
+    <ClInclude Include="..\..\Source\UI\MessageCenter.h"/>
+    <ClInclude Include="..\..\Source\UI\ControlPanel.h"/>
+    <ClInclude Include="..\..\Source\UI\UIComponent.h"/>
+    <ClInclude Include="..\..\Source\MainWindow.h"/>
+    <ClInclude Include="..\..\JuceLibraryCode\AppConfig.h"/>
+    <ClInclude Include="..\..\JuceLibraryCode\JuceHeader.h"/>
+    <ClInclude Include="..\..\JuceLibraryCode\BinaryData.h"/>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
+  <ImportGroup Label="ExtensionTargets"/>
+</Project>
diff --git a/Builds/VisualStudio2010/open-ephys.vcxproj.filters b/Builds/VisualStudio2010/open-ephys.vcxproj.filters
new file mode 100644
index 0000000000000000000000000000000000000000..a5a0e0bac27099074fdd15f2e9cf8a464183a4e4
--- /dev/null
+++ b/Builds/VisualStudio2010/open-ephys.vcxproj.filters
@@ -0,0 +1,778 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="open-ephys">
+      <UniqueIdentifier>{B78BD5C6-A89B-0111-0C5E-ACFD94B107C9}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="open-ephys\Resources">
+      <UniqueIdentifier>{54A5F0A2-18D0-77C1-C41D-FCD97E8C369F}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="open-ephys\Resources\Fonts">
+      <UniqueIdentifier>{4DF2CF07-8CD2-BEA6-2E97-90F31E36F399}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="open-ephys\Resources\Images">
+      <UniqueIdentifier>{262DCEB9-919C-F953-B756-B3E5D4A192BD}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="open-ephys\Resources\Images\Icons">
+      <UniqueIdentifier>{2442E922-1933-9371-14A7-B72EFCB63769}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="open-ephys\Resources\Images\Buttons">
+      <UniqueIdentifier>{48C052A5-026C-7C55-D992-4AA64B68EC6D}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="open-ephys\Source">
+      <UniqueIdentifier>{26871150-DC43-ADFC-0CD8-F18B3EF18ED3}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="open-ephys\Source\Plugins">
+      <UniqueIdentifier>{1D172B45-BC84-A080-B9A6-AEDBCF2FF9E1}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="open-ephys\Source\Network">
+      <UniqueIdentifier>{3C9DBE75-8CDA-3DF5-6D37-AB0501C055F9}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="open-ephys\Source\Dsp">
+      <UniqueIdentifier>{8A26D3EE-21DD-86F1-A447-8BEC62871365}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="open-ephys\Source\Audio">
+      <UniqueIdentifier>{2D549BF5-A738-8204-8C93-0E494C58DAB2}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="open-ephys\Source\Processors">
+      <UniqueIdentifier>{3B2598F1-7B02-E3D4-A09B-367B20D97672}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="open-ephys\Source\Processors\Utilities">
+      <UniqueIdentifier>{A81F416A-5186-4D5E-E159-A4E41A74C9AB}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="open-ephys\Source\Processors\Visualization">
+      <UniqueIdentifier>{84AAFE68-C197-9A6B-4524-27E33F7D77DE}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="open-ephys\Source\Processors\Visualization\SpikePlotting">
+      <UniqueIdentifier>{9281EF66-B5A5-2D7E-4735-B2D27AE862E9}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="open-ephys\Source\Processors\Editors">
+      <UniqueIdentifier>{B226D1DC-8127-60DF-F9CE-61461D82968B}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="open-ephys\Source\Processors\DataThreads">
+      <UniqueIdentifier>{9504915A-A697-5C7F-E059-D7DAD23F3320}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="open-ephys\Source\UI">
+      <UniqueIdentifier>{3AB2454E-6609-8229-51CB-D99A79A068ED}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Juce Library Code">
+      <UniqueIdentifier>{F7048EA6-F4B2-F31B-E402-E05D678A1111}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Resources\Fonts\BebasNeue.otf">
+      <Filter>open-ephys\Resources\Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Fonts\cpmono_bold.otf">
+      <Filter>open-ephys\Resources\Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Fonts\cpmono_extra_light.otf">
+      <Filter>open-ephys\Resources\Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Fonts\cpmono_light.otf">
+      <Filter>open-ephys\Resources\Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Fonts\cpmono_plain.otf">
+      <Filter>open-ephys\Resources\Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Fonts\miso-bold.ttf">
+      <Filter>open-ephys\Resources\Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Fonts\miso-light.ttf">
+      <Filter>open-ephys\Resources\Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Fonts\miso-regular.ttf">
+      <Filter>open-ephys\Resources\Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Fonts\miso-serialized">
+      <Filter>open-ephys\Resources\Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Fonts\nordic.ttf">
+      <Filter>open-ephys\Resources\Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Fonts\ostrich.ttf">
+      <Filter>open-ephys\Resources\Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Fonts\silkscreen-serialized">
+      <Filter>open-ephys\Resources\Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Fonts\silkscreen.ttf">
+      <Filter>open-ephys\Resources\Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Fonts\unibody-8.otf">
+      <Filter>open-ephys\Resources\Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons-01.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons-02.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons-03.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons-04.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons-05.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons_neutral-01.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons_neutral-02.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons_neutral-03.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons_neutral-04.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons_neutral-05.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons_selected-01.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons_selected-02.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons_selected-03.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons_selected-04.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons_selected-05.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons_selected_over-01.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons_selected_over-02.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons_selected_over-03.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons_selected_over-04.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\RadioButtons_selected_over-05.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\noise_wave.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\saw_wave.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\sine_wave.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\square_wave.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\triangle_wave.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\wifi.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\SourceDrop.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\DefaultDataSource.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\FileReaderIcon.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Icons\IntanIcon.png">
+      <Filter>open-ephys\Resources\Images\Icons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Buttons\muteoff.png">
+      <Filter>open-ephys\Resources\Images\Buttons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Buttons\muteon.png">
+      <Filter>open-ephys\Resources\Images\Buttons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Buttons\MergerA-01.png">
+      <Filter>open-ephys\Resources\Images\Buttons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Buttons\MergerA-02.png">
+      <Filter>open-ephys\Resources\Images\Buttons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Buttons\MergerB-01.png">
+      <Filter>open-ephys\Resources\Images\Buttons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Buttons\MergerB-02.png">
+      <Filter>open-ephys\Resources\Images\Buttons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Buttons\PipelineA-01.png">
+      <Filter>open-ephys\Resources\Images\Buttons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Buttons\PipelineA-02.png">
+      <Filter>open-ephys\Resources\Images\Buttons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Buttons\PipelineB-01.png">
+      <Filter>open-ephys\Resources\Images\Buttons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Resources\Images\Buttons\PipelineB-02.png">
+      <Filter>open-ephys\Resources\Images\Buttons</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\AccessClass.cpp">
+      <Filter>open-ephys\Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Network\PracticalSocket.cpp">
+      <Filter>open-ephys\Source\Network</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Dsp\Bessel.cpp">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Dsp\Biquad.cpp">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Dsp\Butterworth.cpp">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Dsp\Cascade.cpp">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Dsp\ChebyshevI.cpp">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Dsp\ChebyshevII.cpp">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Dsp\Custom.cpp">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Dsp\Design.cpp">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Dsp\Documentation.cpp">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Dsp\Elliptic.cpp">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Dsp\Filter.cpp">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Dsp\Legendre.cpp">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Dsp\Param.cpp">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Dsp\PoleFilter.cpp">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Dsp\RBJ.cpp">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Dsp\RootFinder.cpp">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Dsp\State.cpp">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Audio\AudioComponent.cpp">
+      <Filter>open-ephys\Source\Audio</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Parameter.cpp">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\SpikeDisplayNode.cpp">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\WiFiOutput.cpp">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\LfpDisplayNode.cpp">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Utilities\Merger.cpp">
+      <Filter>open-ephys\Source\Processors\Utilities</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Utilities\Splitter.cpp">
+      <Filter>open-ephys\Source\Processors\Utilities</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikePlotting\StereotrodePlot.cpp">
+      <Filter>open-ephys\Source\Processors\Visualization\SpikePlotting</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikePlotting\ElectrodePlot.cpp">
+      <Filter>open-ephys\Source\Processors\Visualization\SpikePlotting</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikePlotting\BaseUIElement.cpp">
+      <Filter>open-ephys\Source\Processors\Visualization\SpikePlotting</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikePlotting\GenericAxes.cpp">
+      <Filter>open-ephys\Source\Processors\Visualization\SpikePlotting</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikePlotting\PlotUtils.cpp">
+      <Filter>open-ephys\Source\Processors\Visualization\SpikePlotting</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikePlotting\ProjectionAxes.cpp">
+      <Filter>open-ephys\Source\Processors\Visualization\SpikePlotting</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikePlotting\TetrodePlot.cpp">
+      <Filter>open-ephys\Source\Processors\Visualization\SpikePlotting</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikePlotting\WaveAxes.cpp">
+      <Filter>open-ephys\Source\Processors\Visualization\SpikePlotting</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikeObject.cpp">
+      <Filter>open-ephys\Source\Processors\Visualization</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Visualization\SpikeDisplayCanvas.cpp">
+      <Filter>open-ephys\Source\Processors\Visualization</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Visualization\DataWindow.cpp">
+      <Filter>open-ephys\Source\Processors\Visualization</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Visualization\LfpDisplayCanvas.cpp">
+      <Filter>open-ephys\Source\Processors\Visualization</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Visualization\OpenGLCanvas.cpp">
+      <Filter>open-ephys\Source\Processors\Visualization</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\SpikeDetector.cpp">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\AudioNode.cpp">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\EventNode.cpp">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Editors\ChannelSelector.cpp">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Editors\ParameterEditor.cpp">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Editors\SpikeDisplayEditor.cpp">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Editors\VisualizerEditor.cpp">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Editors\MergerEditor.cpp">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Editors\ImageIcon.cpp">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Editors\WiFiOutputEditor.cpp">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Editors\EventNodeEditor.cpp">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Editors\SignalGeneratorEditor.cpp">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Editors\LfpDisplayEditor.cpp">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Editors\SourceNodeEditor.cpp">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Editors\SplitterEditor.cpp">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Editors\SpikeDetectorEditor.cpp">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Editors\AudioEditor.cpp">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Editors\FilterEditor.cpp">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Editors\GenericEditor.cpp">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\DataThreads\FileReaderThread.cpp">
+      <Filter>open-ephys\Source\Processors\DataThreads</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\DataThreads\okFrontPanelDLL.cpp">
+      <Filter>open-ephys\Source\Processors\DataThreads</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\DataThreads\NetworkThread.cpp">
+      <Filter>open-ephys\Source\Processors\DataThreads</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\DataThreads\FPGAThread.cpp">
+      <Filter>open-ephys\Source\Processors\DataThreads</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\DataThreads\DataBuffer.cpp">
+      <Filter>open-ephys\Source\Processors\DataThreads</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\DataThreads\IntanThread.cpp">
+      <Filter>open-ephys\Source\Processors\DataThreads</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\DataThreads\DataThread.cpp">
+      <Filter>open-ephys\Source\Processors\DataThreads</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\RecordNode.cpp">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\SignalGenerator.cpp">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\ResamplingNode.cpp">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\FilterNode.cpp">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\SourceNode.cpp">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\GenericProcessor.cpp">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\ProcessorGraph.cpp">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\UI\EditorViewportButtons.cpp">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\UI\SignalChainManager.cpp">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\UI\EditorViewport.cpp">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\UI\ProcessorList.cpp">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\UI\CustomLookAndFeel.cpp">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\UI\InfoLabel.cpp">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\UI\DataViewport.cpp">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\UI\MessageCenter.cpp">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\UI\ControlPanel.cpp">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\UI\UIComponent.cpp">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\MainWindow.cpp">
+      <Filter>open-ephys\Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Main.cpp">
+      <Filter>open-ephys\Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\JuceLibraryCode\BinaryData.cpp">
+      <Filter>Juce Library Code</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\JuceLibraryCode\JuceLibraryCode1.cpp">
+      <Filter>Juce Library Code</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\JuceLibraryCode\JuceLibraryCode2.cpp">
+      <Filter>Juce Library Code</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\JuceLibraryCode\JuceLibraryCode3.cpp">
+      <Filter>Juce Library Code</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\JuceLibraryCode\JuceLibraryCode4.cpp">
+      <Filter>Juce Library Code</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\Source\AccessClass.h">
+      <Filter>open-ephys\Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Network\PracticalSocket.h">
+      <Filter>open-ephys\Source\Network</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\Bessel.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\Biquad.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\Butterworth.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\Cascade.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\ChebyshevI.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\ChebyshevII.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\Common.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\Custom.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\Design.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\Dsp.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\Elliptic.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\Filter.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\Layout.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\Legendre.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\MathSupplement.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\Params.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\PoleFilter.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\RBJ.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\RootFinder.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\SmoothedFilter.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\State.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\Types.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Dsp\Utilities.h">
+      <Filter>open-ephys\Source\Dsp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Audio\AudioComponent.h">
+      <Filter>open-ephys\Source\Audio</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Parameter.h">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\SpikeDisplayNode.h">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\WiFiOutput.h">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\LfpDisplayNode.h">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Utilities\Merger.h">
+      <Filter>open-ephys\Source\Processors\Utilities</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Utilities\Splitter.h">
+      <Filter>open-ephys\Source\Processors\Utilities</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikePlotting\StereotrodePlot.h">
+      <Filter>open-ephys\Source\Processors\Visualization\SpikePlotting</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikePlotting\ElectrodePlot.h">
+      <Filter>open-ephys\Source\Processors\Visualization\SpikePlotting</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikePlotting\BaseUIElement.h">
+      <Filter>open-ephys\Source\Processors\Visualization\SpikePlotting</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikePlotting\GenericAxes.h">
+      <Filter>open-ephys\Source\Processors\Visualization\SpikePlotting</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikePlotting\PlotUtils.h">
+      <Filter>open-ephys\Source\Processors\Visualization\SpikePlotting</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikePlotting\ProjectionAxes.h">
+      <Filter>open-ephys\Source\Processors\Visualization\SpikePlotting</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikePlotting\SimpleKeyEvent.h">
+      <Filter>open-ephys\Source\Processors\Visualization\SpikePlotting</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikePlotting\TetrodePlot.h">
+      <Filter>open-ephys\Source\Processors\Visualization\SpikePlotting</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikePlotting\WaveAxes.h">
+      <Filter>open-ephys\Source\Processors\Visualization\SpikePlotting</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikeObject.h">
+      <Filter>open-ephys\Source\Processors\Visualization</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Visualization\SpikeDisplayCanvas.h">
+      <Filter>open-ephys\Source\Processors\Visualization</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Visualization\Visualizer.h">
+      <Filter>open-ephys\Source\Processors\Visualization</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Visualization\DataWindow.h">
+      <Filter>open-ephys\Source\Processors\Visualization</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Visualization\LfpDisplayCanvas.h">
+      <Filter>open-ephys\Source\Processors\Visualization</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Visualization\OpenGLCanvas.h">
+      <Filter>open-ephys\Source\Processors\Visualization</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\SpikeDetector.h">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\AudioNode.h">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\EventNode.h">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Editors\ChannelSelector.h">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Editors\ParameterEditor.h">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Editors\SpikeDisplayEditor.h">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Editors\VisualizerEditor.h">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Editors\MergerEditor.h">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Editors\ImageIcon.h">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Editors\WiFiOutputEditor.h">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Editors\EventNodeEditor.h">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Editors\SignalGeneratorEditor.h">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Editors\LfpDisplayEditor.h">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Editors\SourceNodeEditor.h">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Editors\SplitterEditor.h">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Editors\SpikeDetectorEditor.h">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Editors\AudioEditor.h">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Editors\FilterEditor.h">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Editors\GenericEditor.h">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\DataThreads\FileReaderThread.h">
+      <Filter>open-ephys\Source\Processors\DataThreads</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\DataThreads\okFrontPanelDLL.h">
+      <Filter>open-ephys\Source\Processors\DataThreads</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\DataThreads\NetworkThread.h">
+      <Filter>open-ephys\Source\Processors\DataThreads</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\DataThreads\FPGAThread.h">
+      <Filter>open-ephys\Source\Processors\DataThreads</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\DataThreads\DataBuffer.h">
+      <Filter>open-ephys\Source\Processors\DataThreads</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\DataThreads\IntanThread.h">
+      <Filter>open-ephys\Source\Processors\DataThreads</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\DataThreads\DataThread.h">
+      <Filter>open-ephys\Source\Processors\DataThreads</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\RecordNode.h">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\SignalGenerator.h">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\ResamplingNode.h">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\FilterNode.h">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\SourceNode.h">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\GenericProcessor.h">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\ProcessorGraph.h">
+      <Filter>open-ephys\Source\Processors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\UI\EditorViewportButtons.h">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\UI\SignalChainManager.h">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\UI\EditorViewport.h">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\UI\ProcessorList.h">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\UI\CustomLookAndFeel.h">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\UI\InfoLabel.h">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\UI\DataViewport.h">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\UI\MessageCenter.h">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\UI\ControlPanel.h">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\UI\UIComponent.h">
+      <Filter>open-ephys\Source\UI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\MainWindow.h">
+      <Filter>open-ephys\Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\JuceLibraryCode\AppConfig.h">
+      <Filter>Juce Library Code</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\JuceLibraryCode\JuceHeader.h">
+      <Filter>Juce Library Code</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\JuceLibraryCode\BinaryData.h">
+      <Filter>Juce Library Code</Filter>
+    </ClInclude>
+  </ItemGroup>
+</Project>
diff --git a/JuceLibraryCode/src/native/linux/juce_linux_Windowing.cpp b/JuceLibraryCode/src/native/linux/juce_linux_Windowing.cpp
index 1b92aa6758d443e5580590b592617841a3142520..2211bac6f705e6a90da9453d05f36f5066190862 100755
--- a/JuceLibraryCode/src/native/linux/juce_linux_Windowing.cpp
+++ b/JuceLibraryCode/src/native/linux/juce_linux_Windowing.cpp
@@ -821,6 +821,40 @@ public:
 
     void setBounds (int x, int y, int w, int h, bool isNowFullScreen)
     {
+
+        // transitioning back from fullscreen, we might need to remove
+        // the FULLSCREEN window property
+        // if (fullScreen && (! isNowFullScreen))
+        // {
+        //     Atom fs = Atoms::getIfExists ("_NET_WM_STATE_FULLSCREEN");
+       
+        //     if (fs != None)
+        //     {
+        //         Window root = RootWindow (display, DefaultScreen (display));
+
+        //         XClientMessageEvent clientMsg;
+        //         clientMsg.display = display;
+        //         clientMsg.window = windowH;
+        //         clientMsg.type = ClientMessage;
+        //         clientMsg.format = 32;
+        //         clientMsg.message_type = Atoms::WindowState;
+        //         clientMsg.data.l[0] = 0;  // Remove
+        //         clientMsg.data.l[1] = fs;
+        //         clientMsg.data.l[2] = 0;
+        //         clientMsg.data.l[3] = 1;  // Normal Source
+
+        //         ScopedXLock xlock;
+        //         XSendEvent (display, root, false,
+        //                     SubstructureRedirectMask | SubstructureNotifyMask,
+        //                     (XEvent*) &clientMsg);
+        //     }
+        // }
+        // jsiegle added the above code on 5/22/12 to attempt to fix window
+        // resize button issues
+        // -- doesn't work with old Juce library
+        // -- see: http://www.rawmaterialsoftware.com/viewtopic.php?f=5&t=8832
+        //         for more info
+
         fullScreen = isNowFullScreen;
 
         if (windowH != 0)
diff --git a/Source/Audio/AudioComponent.cpp b/Source/Audio/AudioComponent.cpp
index 0d968d76117255a1e03e33f79688da7659352322..9942ff1476a20e2e480247cdf180fb32eea5118c 100644
--- a/Source/Audio/AudioComponent.cpp
+++ b/Source/Audio/AudioComponent.cpp
@@ -104,14 +104,14 @@ bool AudioComponent::callbacksAreActive() {
 
 void AudioComponent::restartDevice()
 {
-	//deviceManager.restartLastAudioDevice();
+	deviceManager.restartLastAudioDevice();
 
 }
 
 void AudioComponent::stopDevice()
 {
 
-	//deviceManager.closeAudioDevice();
+	deviceManager.closeAudioDevice();
 }
 
 void AudioComponent::beginCallbacks() {
diff --git a/Source/MainWindow.cpp b/Source/MainWindow.cpp
index fb6ccb125c5b7b0a4f50b7a437868cf7c0744cd9..f56c8b44ee0cc44cb1fc04e2fb294615d11482cc 100644
--- a/Source/MainWindow.cpp
+++ b/Source/MainWindow.cpp
@@ -37,7 +37,7 @@ MainWindow::MainWindow()
    // centreWithSize(500,400);
 
     // Constraining th window's size doesn't seem to work:
-    //setResizeLimits(500, 400, 10000, 10000);
+    //
 
     // Create ProcessorGraph and AudioComponent, and connect them.
     // Callbacks will be set by the play button in the control panel
@@ -62,6 +62,8 @@ MainWindow::MainWindow()
      setUsingNativeTitleBar (true);
      Component::addToDesktop (getDesktopWindowStyleFlags()); 
      setVisible (true);
+
+    // setResizeLimits(500, 400, 10000, 10000);
     
 
 }
diff --git a/Source/Processors/FilterNode.cpp b/Source/Processors/FilterNode.cpp
index 524ce6330981e4792b9678ee7c737d50b0c50dfd..3ce21197b48744f7f5a69022e1777012dab8eebe 100644
--- a/Source/Processors/FilterNode.cpp
+++ b/Source/Processors/FilterNode.cpp
@@ -113,7 +113,7 @@ void FilterNode::updateSettings()
 				<3>,								 	// order
 				1,										// number of channels (must be const)
 				Dsp::DirectFormII>						// realization
-				(1024));	 
+				(1));	 
 
 			Parameter& p1 =  parameters.getReference(0);
 			p1.setValue(600.0f, n);
diff --git a/Source/Processors/ProcessorGraph.cpp b/Source/Processors/ProcessorGraph.cpp
index 98eebd2322c1af9df412a339f7e0fb4dba939636..f2c20aff089a9e5d18524c0ba1ba36af83150db3 100644
--- a/Source/Processors/ProcessorGraph.cpp
+++ b/Source/Processors/ProcessorGraph.cpp
@@ -398,7 +398,7 @@ GenericProcessor* ProcessorGraph::createProcessorFromDescription(String& descrip
 		}
 
 		
-		sendActionMessage("New source node created.");
+		//sendActionMessage("New source node created.");
 		
 
 	} else if (processorType.equalsIgnoreCase("Filters")) {
@@ -417,7 +417,7 @@ GenericProcessor* ProcessorGraph::createProcessorFromDescription(String& descrip
 			processor = new SpikeDetector();
 		}
 
-		sendActionMessage("New filter node created.");
+		//sendActionMessage("New filter node created.");
 
 	} else if (processorType.equalsIgnoreCase("Utilities")) {
 
@@ -426,14 +426,14 @@ GenericProcessor* ProcessorGraph::createProcessorFromDescription(String& descrip
 			std::cout << "Creating a new splitter." << std::endl;
 			processor = new Splitter();
 
-			sendActionMessage("New splitter created.");
+			//sendActionMessage("New splitter created.");
 
 	 	} else if (subProcessorType.equalsIgnoreCase("Merger")) {
 	 		
 	 		std::cout << "Creating a new merger." << std::endl;
 			processor = new Merger();
 
-			sendActionMessage("New merger created.");
+			//sendActionMessage("New merger created.");
 
 	 	}
 
@@ -456,7 +456,7 @@ GenericProcessor* ProcessorGraph::createProcessorFromDescription(String& descrip
 			processor = new WiFiOutput();
 		}
 	
-		sendActionMessage("New sink created.");
+		//sendActionMessage("New sink created.");
 	}
 
 	return processor;
diff --git a/Source/UI/ControlPanel.cpp b/Source/UI/ControlPanel.cpp
index 70849e95681fdb11aa4ccad284fb36d7dfadaca0..c9be9f08335e30a935ae6e52872da3a631f0f412 100644
--- a/Source/UI/ControlPanel.cpp
+++ b/Source/UI/ControlPanel.cpp
@@ -429,9 +429,10 @@ ControlPanel::ControlPanel(ProcessorGraph* graph_, AudioComponent* audio_) :
 		 									  "");
 	addChildComponent(filenameComponent);
 
-	startTimer(100);
-
-	
+	//diskMeter->updateDiskSpace(graph->getRecordNode()->getFreeSpace());
+	//diskMeter->repaint();
+	refreshMeters();
+	startTimer(5000); // update disk space every 10 seconds
 
 	setWantsKeyboardFocus(true);
 
@@ -557,10 +558,12 @@ void ControlPanel::buttonClicked(Button* button)
 		std::cout << "Record button pressed." << std::endl;
 		if (recordButton->getToggleState())
 		{
+
 			playButton->setToggleState(true,false);
 			graph->getRecordNode()->setParameter(1,10.0f);
 			masterClock->startRecording(); // turn on recording
 
+
 		} else {
 			graph->getRecordNode()->setParameter(0,10.0f); // turn off recording
 			masterClock->stopRecording();
@@ -598,6 +601,8 @@ void ControlPanel::buttonClicked(Button* button)
 				if (recordButton->getToggleState())
 					graph->getRecordNode()->setParameter(1,10.0f);
 				
+				stopTimer();
+				startTimer(250); // refresh every 250 ms
 				audio->beginCallbacks();
 				masterClock->start();
 			}
@@ -609,8 +614,10 @@ void ControlPanel::buttonClicked(Button* button)
 		if (audio->callbacksAreActive()) {
 			audio->endCallbacks();
 			graph->disableProcessors();
-			cpuMeter->updateCPU(0.0f);
+			refreshMeters();
 			masterClock->stop();
+			stopTimer();
+			startTimer(10000); // back to refresh every 10 seconds
 
 		}
 
@@ -630,7 +637,9 @@ void ControlPanel::disableCallbacks()
 		std::cout << "Disabling processors." << std::endl;
 		graph->disableProcessors();
 		std::cout << "Updating control panel." << std::endl;
-		cpuMeter->updateCPU(0.0f);
+		refreshMeters();
+		stopTimer();
+		startTimer(10000); // back to refresh every 10 seconds
 		
 	}
 
@@ -642,26 +651,35 @@ void ControlPanel::disableCallbacks()
 
 }
 
-void ControlPanel::actionListenerCallback(const String & msg)
-{
-	//std::cout << "Message Received." << std::endl;
-	if (playButton->getToggleState()) {
-		cpuMeter->updateCPU(audio->deviceManager.getCpuUsage());
-	}
+// void ControlPanel::actionListenerCallback(const String & msg)
+// {
+// 	//std::cout << "Message Received." << std::endl;
+// 	if (playButton->getToggleState()) {
+// 		cpuMeter->updateCPU(audio->deviceManager.getCpuUsage());
+// 	}
 
-	cpuMeter->repaint();
+// 	cpuMeter->repaint();
 
-	diskMeter->updateDiskSpace(graph->getRecordNode()->getFreeSpace());
-	diskMeter->repaint();
+// 	diskMeter->updateDiskSpace(graph->getRecordNode()->getFreeSpace());
+// 	diskMeter->repaint();
 	
 	
-}
+// }
 
 void ControlPanel::timerCallback()
 {
 	//std::cout << "Message Received." << std::endl;
+	
+	refreshMeters();
+	
+}
+
+void ControlPanel::refreshMeters()
+{
 	if (playButton->getToggleState()) {
 		cpuMeter->updateCPU(audio->deviceManager.getCpuUsage());
+	} else {
+		cpuMeter->updateCPU(0.0f);
 	}
 
 	cpuMeter->repaint();
@@ -670,8 +688,6 @@ void ControlPanel::timerCallback()
 
 	diskMeter->updateDiskSpace(graph->getRecordNode()->getFreeSpace());
 	diskMeter->repaint();
-	
-	
 }
 
 bool ControlPanel::keyPressed(const KeyPress& key)
diff --git a/Source/UI/ControlPanel.h b/Source/UI/ControlPanel.h
index 474cdc939d1b2b2e9e330ef640803ef5c74a0858..813ee23f2d594e501a82b6561781e2ddc870f28a 100644
--- a/Source/UI/ControlPanel.h
+++ b/Source/UI/ControlPanel.h
@@ -209,7 +209,7 @@ class UtilityButton;
 
 class ControlPanel : public Component, 
 					 public Button::Listener,
-					 public ActionListener,
+					// public ActionListener,
 					 public Timer,
 					 public AccessClass
 
@@ -247,11 +247,12 @@ private:
 	void resized();
 	void buttonClicked(Button* button);
 
-	void actionListenerCallback(const String& msg);
+	//void actionListenerCallback(const String& msg);
 
 	void updateChildComponents();
 
 	void timerCallback();
+	void refreshMeters();
 
 	bool keyPressed(const KeyPress &key);
 
diff --git a/Source/UI/UIComponent.cpp b/Source/UI/UIComponent.cpp
index b82b9fb45ec23a936ba6cde9c50a68e99b78b36f..ddedc347cd02f3fb2f3f0ba977d756d0520fcebf 100644
--- a/Source/UI/UIComponent.cpp
+++ b/Source/UI/UIComponent.cpp
@@ -228,9 +228,13 @@ const PopupMenu UIComponent::getMenuForIndex(int menuIndex, const String& menuNa
      {
      	menu.addCommandItem (commandManager, openConfiguration);
         menu.addCommandItem (commandManager, saveConfiguration);
-        menu.addSeparator();
-        menu.addCommandItem (commandManager, StandardApplicationCommandIDs::quit);
-     } else if (menuIndex == 1)
+        
+#if !JUCE_MAC
+       	menu.addSeparator();
+       	menu.addCommandItem (commandManager, StandardApplicationCommandIDs::quit);
+#endif
+
+       } else if (menuIndex == 1)
      {
      	menu.addCommandItem (commandManager, undo);
      	menu.addCommandItem (commandManager, redo);
diff --git a/open-ephys.jucer b/open-ephys.jucer
index 070efce95ffd907fa53e752d0048af7478fa003a..314b3828c2e43567ae5e6ea13b8df08c4fd345a0 100644
--- a/open-ephys.jucer
+++ b/open-ephys.jucer
@@ -13,7 +13,10 @@
                juceFolder="JuceLibraryCode" extraLinkerFlags="-lftdi -lftgl"
                objCExtraSuffix="fea2mT"/>
     <LINUX_MAKE targetFolder="Builds/Linux" vstFolder="~/SDKs/vstsdk2.4" juceFolder="JuceLibraryCode"
-                extraLinkerFlags="-lftdi -lftgl" extraCompilerFlags="-export-dynamic -pg"/>
+                extraLinkerFlags="-lftdi -lftgl -pg" extraCompilerFlags="-export-dynamic -g -pg"/>
+    <VS2010 targetFolder="Builds/VisualStudio2010" vstFolder="c:\SDKs\vstsdk2.4"
+            rtasFolder="c:\SDKs\PT_80_SDK" libraryType="1" juceFolder="JuceLibraryCode"
+            extraLinkerFlags="-lftdi -lftgl"/>
   </EXPORTFORMATS>
   <CONFIGURATIONS>
     <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="open-ephys"