diff --git a/JuceOPLVSTi.jucer b/JuceOPLVSTi.jucer
index 942e45b..56c8035 100644
--- a/JuceOPLVSTi.jucer
+++ b/JuceOPLVSTi.jucer
@@ -1,105 +1,141 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/DROMultiplexer.cpp b/Source/DROMultiplexer.cpp
index 8292c83..bbd5623 100644
--- a/Source/DROMultiplexer.cpp
+++ b/Source/DROMultiplexer.cpp
@@ -1,7 +1,17 @@
#include "DROMultiplexer.h"
-
#include "JuceHeader.h"
-#include
+
+/// Jeff-Russ added guard against windows.h include if not windows:
+#ifdef _WIN32 // covers both 32 and 64-bit
+ #include
+#else
+ #include "windows.h"
+#endif
+
+/// Jeff-Russ added to replace mising itoa for xcode:
+#if __APPLE__
+ #include "itoa.h"
+#endif
// Used by the first recording instance to claim master status
DROMultiplexer* DROMultiplexer::master = NULL;
@@ -186,7 +196,7 @@ void DROMultiplexer::TwoOpMelodicNoteOn(Hiopl* opl, int inCh) {
char addr[16];
int outCh = _FindFreeChannel(opl, inCh);
_DebugOut(" <- ");
- _DebugOut(itoa((int)opl, addr, 16));
+/// _DebugOut(itoa((int)opl, addr, 16));
_DebugOut(" ");
for (int i = 0; i < MELODIC_CHANNELS; i++) {
Hiopl* tmpOpl = channels[i].opl;
diff --git a/Source/PluginProcessor.h b/Source/PluginProcessor.h
index 879ce59..8b0566a 100644
--- a/Source/PluginProcessor.h
+++ b/Source/PluginProcessor.h
@@ -45,7 +45,7 @@ public:
//==============================================================================
const String getName() const;
- static const int JuceOplvstiAudioProcessor::MAX_INSTRUMENT_FILE_SIZE_BYTES = 1024;
+ static const int MAX_INSTRUMENT_FILE_SIZE_BYTES = 1024;
int getNumParameters();
diff --git a/Source/config.h b/Source/config.h
index 5519f70..ff6fc51 100644
--- a/Source/config.h
+++ b/Source/config.h
@@ -63,20 +63,36 @@
#pragma warning(disable : 4996)
#endif
-#ifndef WIN32
-typedef long long __int64;
+/// Jeff-Russ modified to be uniform across C++ implementations:
+// The internal types:
+#include
+typedef unsigned char BYTE;
+typedef int64_t __int64;
+typedef double Real64;
+typedef unsigned char Bit8u;
+typedef signed char Bit8s;
+typedef uint16_t Bit16u;
+typedef int16_t Bit16s;
+typedef uint32_t Bit32u;
+typedef int32_t Bit32s;
+typedef int64_t Bit64u;
+typedef uint64_t Bit64s;
+typedef Bit32u Bitu;
+typedef Bit32s Bits;
+
+
+/// Jeff-Russ PUT PLATFORM SPECIFIC STUFF HERE:
+#ifdef _WIN32 // covers both 32 and 64-bit
+ #define INLINE __forceinline
+#elif __APPLE__
+ #include "TargetConditionals.h"
+ #define INLINE inline /// apple has no forceinline
+#elif __linux
+ #define INLINE inline
+#elif __unix
+ #define INLINE inline
+#elif __posix
+ #define INLINE inline
+#else
+ #error Unsupported Operating System
#endif
-
-typedef double Real64;
-/* The internal types */
-typedef unsigned char Bit8u;
-typedef signed char Bit8s;
-typedef unsigned short Bit16u;
-typedef signed short Bit16s;
-typedef unsigned long Bit32u;
-typedef signed long Bit32s;
-typedef unsigned __int64 Bit64u;
-typedef signed __int64 Bit64s;
-typedef unsigned int Bitu;
-typedef signed int Bits;
-
diff --git a/Source/hiopl.h b/Source/hiopl.h
index e2a9d4e..f762ca3 100644
--- a/Source/hiopl.h
+++ b/Source/hiopl.h
@@ -1,92 +1,92 @@
-#pragma once
-#include