mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-09 23:34:20 +00:00
AudioPluginHost: Include example plugins in project
This change adds the examples from `examples/Plugins` to the AudioPluginHost, surfacing them as 'internal' plugins in the popup menu.
This commit is contained in:
parent
8433c098b9
commit
f20b93a458
33 changed files with 1641 additions and 450 deletions
|
|
@ -67,10 +67,19 @@ inline File getExamplesDirectory() noexcept
|
|||
if (exampleDir.exists())
|
||||
return exampleDir;
|
||||
|
||||
int numTries = 0; // keep track of the number of parent directories so we don't go on endlessly
|
||||
// keep track of the number of parent directories so we don't go on endlessly
|
||||
for (int numTries = 0; numTries < 15; ++numTries)
|
||||
{
|
||||
if (currentFile.getFileName() == "examples")
|
||||
return currentFile;
|
||||
|
||||
const auto sibling = currentFile.getSiblingFile ("examples");
|
||||
|
||||
if (sibling.exists())
|
||||
return sibling;
|
||||
|
||||
while (currentFile.getFileName() != "examples" && numTries++ < 15)
|
||||
currentFile = currentFile.getParentDirectory();
|
||||
}
|
||||
|
||||
return currentFile;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -67,10 +67,19 @@ inline File getExamplesDirectory() noexcept
|
|||
if (exampleDir.exists())
|
||||
return exampleDir;
|
||||
|
||||
int numTries = 0; // keep track of the number of parent directories so we don't go on endlessly
|
||||
// keep track of the number of parent directories so we don't go on endlessly
|
||||
for (int numTries = 0; numTries < 15; ++numTries)
|
||||
{
|
||||
if (currentFile.getFileName() == "examples")
|
||||
return currentFile;
|
||||
|
||||
const auto sibling = currentFile.getSiblingFile ("examples");
|
||||
|
||||
if (sibling.exists())
|
||||
return sibling;
|
||||
|
||||
while (currentFile.getFileName() != "examples" && numTries++ < 15)
|
||||
currentFile = currentFile.getParentDirectory();
|
||||
}
|
||||
|
||||
return currentFile;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -259,9 +259,9 @@ private:
|
|||
//==============================================================================
|
||||
AudioProcessorParameter* getParameter (const String& paramId)
|
||||
{
|
||||
if (auto* processor = getAudioProcessor())
|
||||
if (auto* audioProcessor = getAudioProcessor())
|
||||
{
|
||||
auto& params = processor->getParameters();
|
||||
auto& params = audioProcessor->getParameters();
|
||||
|
||||
for (auto p : params)
|
||||
{
|
||||
|
|
@ -356,13 +356,14 @@ public:
|
|||
reverb.processStereo (buffer.getWritePointer (0), buffer.getWritePointer (1), buffer.getNumSamples());
|
||||
}
|
||||
|
||||
using AudioProcessor::processBlock;
|
||||
|
||||
//==============================================================================
|
||||
void releaseResources() override { currentRecording.setSize (1, 1); }
|
||||
|
||||
//==============================================================================
|
||||
bool acceptsMidi() const override { return true; }
|
||||
bool producesMidi() const override { return false; }
|
||||
bool silenceInProducesSilenceOut() const override { return false; }
|
||||
double getTailLengthSeconds() const override { return 0.0; }
|
||||
|
||||
//==============================================================================
|
||||
|
|
@ -383,6 +384,7 @@ public:
|
|||
case 1: return "Singing";
|
||||
case 2: return "Pinched Balloon";
|
||||
case 3: return "Gazeebo";
|
||||
default: break;
|
||||
}
|
||||
|
||||
return "<Unknown>";
|
||||
|
|
@ -408,6 +410,7 @@ public:
|
|||
roomSizeParam->setValueNotifyingHost (stream.readFloat());
|
||||
|
||||
}
|
||||
|
||||
private:
|
||||
//==============================================================================
|
||||
void loadNewSampleBinary (const void* data, int dataSize, const char* format)
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ public:
|
|||
notes.clear();
|
||||
currentNote = 0;
|
||||
lastNoteValue = -1;
|
||||
time = 0.0;
|
||||
time = 0;
|
||||
rate = static_cast<float> (sampleRate);
|
||||
}
|
||||
|
||||
|
|
@ -119,6 +119,8 @@ public:
|
|||
time = (time + numSamples) % noteDuration;
|
||||
}
|
||||
|
||||
using AudioProcessor::processBlock;
|
||||
|
||||
//==============================================================================
|
||||
bool isMidiEffect() const override { return true; }
|
||||
|
||||
|
|
|
|||
|
|
@ -275,7 +275,7 @@ public:
|
|||
}
|
||||
|
||||
//==============================================================================
|
||||
const String getName() const override { return JucePlugin_Name; }
|
||||
const String getName() const override { return "AudioPluginDemo"; }
|
||||
bool acceptsMidi() const override { return true; }
|
||||
bool producesMidi() const override { return true; }
|
||||
double getTailLengthSeconds() const override { return 0.0; }
|
||||
|
|
|
|||
|
|
@ -198,6 +198,8 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
using AudioProcessor::processBlock;
|
||||
|
||||
void reset() override
|
||||
{
|
||||
lowPassFilter .reset();
|
||||
|
|
@ -217,7 +219,7 @@ public:
|
|||
//==============================================================================
|
||||
bool acceptsMidi() const override { return false; }
|
||||
bool producesMidi() const override { return false; }
|
||||
const String getName() const override { return JucePlugin_Name; }
|
||||
const String getName() const override { return "DSPModulePluginDemo"; }
|
||||
double getTailLengthSeconds() const override { return 0.0; }
|
||||
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -71,6 +71,11 @@ public:
|
|||
buffer.applyGain (*gain);
|
||||
}
|
||||
|
||||
void processBlock (AudioBuffer<double>& buffer, MidiBuffer&) override
|
||||
{
|
||||
buffer.applyGain ((float) *gain);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
AudioProcessorEditor* createEditor() override { return new GenericAudioProcessorEditor (*this); }
|
||||
bool hasEditor() const override { return true; }
|
||||
|
|
|
|||
|
|
@ -79,8 +79,6 @@ public:
|
|||
g.fillRoundedRectangle (area.toFloat(), 6.0);
|
||||
}
|
||||
|
||||
void resized() override {}
|
||||
|
||||
//==============================================================================
|
||||
// Called from the audio thread.
|
||||
void update (float newLevel)
|
||||
|
|
@ -215,7 +213,7 @@ public:
|
|||
bool hasEditor() const override { return true; }
|
||||
|
||||
//==============================================================================
|
||||
const String getName() const override { return JucePlugin_Name; }
|
||||
const String getName() const override { return "InterAppAudioEffectPlugin"; }
|
||||
bool acceptsMidi() const override { return false; }
|
||||
bool producesMidi() const override { return false; }
|
||||
double getTailLengthSeconds() const override { return 0.0; }
|
||||
|
|
|
|||
|
|
@ -73,12 +73,49 @@ private:
|
|||
std::vector<MidiMessage> messages = std::vector<MidiMessage> (queueSize);
|
||||
};
|
||||
|
||||
// Stores the last N messages. Safe to access from the message thread only.
|
||||
class MidiListModel
|
||||
{
|
||||
public:
|
||||
template <typename It>
|
||||
void addMessages (It begin, It end)
|
||||
{
|
||||
const auto numNewMessages = (int) std::distance (begin, end);
|
||||
const auto numToAdd = juce::jmin (numToStore, numNewMessages);
|
||||
const auto numToRemove = jmax (0, (int) messages.size() + numToAdd - numToStore);
|
||||
messages.erase (messages.begin(), std::next (messages.begin(), numToRemove));
|
||||
messages.insert (messages.end(), std::prev (end, numToAdd), end);
|
||||
|
||||
if (onChange != nullptr)
|
||||
onChange();
|
||||
}
|
||||
|
||||
void clear()
|
||||
{
|
||||
messages.clear();
|
||||
|
||||
if (onChange != nullptr)
|
||||
onChange();
|
||||
}
|
||||
|
||||
const MidiMessage& operator[] (size_t ind) const { return messages[ind]; }
|
||||
|
||||
size_t size() const { return messages.size(); }
|
||||
|
||||
std::function<void()> onChange;
|
||||
|
||||
private:
|
||||
static constexpr auto numToStore = 1000;
|
||||
std::vector<MidiMessage> messages;
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
class MidiTable : public Component,
|
||||
private TableListBoxModel
|
||||
{
|
||||
public:
|
||||
MidiTable()
|
||||
MidiTable (MidiListModel& m)
|
||||
: messages (m)
|
||||
{
|
||||
addAndMakeVisible (table);
|
||||
|
||||
|
|
@ -92,27 +129,14 @@ public:
|
|||
header->addColumn ("Data", dataColumn, 200, 30, -1, TableHeaderComponent::notSortable);
|
||||
return header;
|
||||
}());
|
||||
|
||||
messages.onChange = [&] { table.updateContent(); };
|
||||
}
|
||||
|
||||
~MidiTable() override { messages.onChange = nullptr; }
|
||||
|
||||
void resized() override { table.setBounds (getLocalBounds()); }
|
||||
|
||||
template <typename It>
|
||||
void addMessages (It begin, It end)
|
||||
{
|
||||
const auto numNewMessages = (int) std::distance (begin, end);
|
||||
const auto numToAdd = juce::jmin (numToStore, numNewMessages);
|
||||
const auto numToRemove = jmax (0, (int) messages.size() + numToAdd - numToStore);
|
||||
messages.erase (messages.begin(), std::next (messages.begin(), numToRemove));
|
||||
messages.insert (messages.end(), end - numToAdd, end);
|
||||
table.updateContent();
|
||||
}
|
||||
|
||||
void clear()
|
||||
{
|
||||
messages.clear();
|
||||
table.updateContent();
|
||||
}
|
||||
|
||||
private:
|
||||
enum
|
||||
{
|
||||
|
|
@ -185,22 +209,24 @@ private:
|
|||
return {};
|
||||
}
|
||||
|
||||
static constexpr auto numToStore = 1000;
|
||||
std::vector<MidiMessage> messages;
|
||||
|
||||
MidiListModel& messages;
|
||||
TableListBox table;
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
class MidiLoggerPluginDemoProcessor : public AudioPluginInstance
|
||||
class MidiLoggerPluginDemoProcessor : public AudioProcessor,
|
||||
private Timer
|
||||
{
|
||||
public:
|
||||
MidiLoggerPluginDemoProcessor()
|
||||
: AudioPluginInstance (BusesProperties())
|
||||
: AudioProcessor (BusesProperties())
|
||||
{
|
||||
state.addChild ({ "uiState", { { "width", 500 }, { "height", 300 } }, {} }, -1, nullptr);
|
||||
startTimerHz (60);
|
||||
}
|
||||
|
||||
~MidiLoggerPluginDemoProcessor() override { stopTimer(); }
|
||||
|
||||
void processBlock (AudioBuffer<float>& audio, MidiBuffer& midi) override { process (audio, midi); }
|
||||
void processBlock (AudioBuffer<double>& audio, MidiBuffer& midi) override { process (audio, midi); }
|
||||
|
||||
|
|
@ -211,7 +237,7 @@ public:
|
|||
|
||||
const String getName() const override { return "MIDILogger"; }
|
||||
bool acceptsMidi() const override { return true; }
|
||||
bool producesMidi() const override { return false; }
|
||||
bool producesMidi() const override { return true; }
|
||||
double getTailLengthSeconds() const override { return 0.0; }
|
||||
|
||||
int getNumPrograms() override { return 0; }
|
||||
|
|
@ -235,28 +261,15 @@ public:
|
|||
state = ValueTree::fromXml (*xmlState);
|
||||
}
|
||||
|
||||
void fillInPluginDescription (PluginDescription& d) const override
|
||||
{
|
||||
d.name = getName();
|
||||
d.uid = d.name.hashCode();
|
||||
d.category = "Utility";
|
||||
d.pluginFormatName = "Internal";
|
||||
d.manufacturerName = "JUCE";
|
||||
d.version = "1.0";
|
||||
d.isInstrument = false;
|
||||
d.numInputChannels = getTotalNumInputChannels();
|
||||
d.numOutputChannels = getTotalNumOutputChannels();
|
||||
}
|
||||
|
||||
private:
|
||||
class Editor : public AudioProcessorEditor,
|
||||
private Timer,
|
||||
private Value::Listener
|
||||
{
|
||||
public:
|
||||
explicit Editor (MidiLoggerPluginDemoProcessor& ownerIn)
|
||||
: AudioProcessorEditor (ownerIn),
|
||||
owner (ownerIn)
|
||||
owner (ownerIn),
|
||||
table (owner.model)
|
||||
{
|
||||
addAndMakeVisible (table);
|
||||
addAndMakeVisible (clearButton);
|
||||
|
|
@ -269,15 +282,7 @@ private:
|
|||
lastUIWidth. addListener (this);
|
||||
lastUIHeight.addListener (this);
|
||||
|
||||
clearButton.onClick = [&] { table.clear(); };
|
||||
|
||||
startTimerHz (60);
|
||||
}
|
||||
|
||||
~Editor() override
|
||||
{
|
||||
stopTimer();
|
||||
owner.editorBeingDeleted (this);
|
||||
clearButton.onClick = [&] { owner.model.clear(); };
|
||||
}
|
||||
|
||||
void paint (Graphics& g) override
|
||||
|
|
@ -297,13 +302,6 @@ private:
|
|||
}
|
||||
|
||||
private:
|
||||
void timerCallback() override
|
||||
{
|
||||
std::vector<MidiMessage> messages;
|
||||
owner.queue.pop (std::back_inserter (messages));
|
||||
table.addMessages (messages.begin(), messages.end());
|
||||
}
|
||||
|
||||
void valueChanged (Value&) override
|
||||
{
|
||||
setSize (lastUIWidth.getValue(), lastUIHeight.getValue());
|
||||
|
|
@ -317,6 +315,13 @@ private:
|
|||
Value lastUIWidth, lastUIHeight;
|
||||
};
|
||||
|
||||
void timerCallback() override
|
||||
{
|
||||
std::vector<MidiMessage> messages;
|
||||
queue.pop (std::back_inserter (messages));
|
||||
model.addMessages (messages.begin(), messages.end());
|
||||
}
|
||||
|
||||
template <typename Element>
|
||||
void process (AudioBuffer<Element>& audio, MidiBuffer& midi)
|
||||
{
|
||||
|
|
@ -326,6 +331,8 @@ private:
|
|||
|
||||
ValueTree state { "state" };
|
||||
MidiQueue queue;
|
||||
MidiListModel model; // The data to show in the UI. We keep it around in the processor so that
|
||||
// the view is persistent even when the plugin UI is closed and reopened.
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MidiLoggerPluginDemoProcessor)
|
||||
};
|
||||
|
|
|
|||
|
|
@ -124,6 +124,8 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
using AudioProcessor::processBlock;
|
||||
|
||||
//==============================================================================
|
||||
AudioProcessorEditor* createEditor() override { return new GenericAudioProcessorEditor (*this); }
|
||||
bool hasEditor() const override { return true; }
|
||||
|
|
|
|||
|
|
@ -105,6 +105,8 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
using AudioProcessor::processBlock;
|
||||
|
||||
//==============================================================================
|
||||
AudioProcessorEditor* createEditor() override { return new GenericAudioProcessorEditor (*this); }
|
||||
bool hasEditor() const override { return true; }
|
||||
|
|
|
|||
|
|
@ -95,53 +95,73 @@ enum class LoopMode
|
|||
pingpong
|
||||
};
|
||||
|
||||
template <typename Movable>
|
||||
class MoveOnlyFifo final
|
||||
// We want to send type-erased commands to the audio thread, but we also
|
||||
// want those commands to contain move-only resources, so that we can
|
||||
// construct resources on the gui thread, and then transfer ownership
|
||||
// cheaply to the audio thread. We can't do this with std::function
|
||||
// because it enforces that functions are copy-constructible.
|
||||
// Therefore, we use a very simple templated type-eraser here.
|
||||
template <typename Proc>
|
||||
struct Command
|
||||
{
|
||||
virtual ~Command() noexcept = default;
|
||||
virtual void run (Proc& proc) = 0;
|
||||
};
|
||||
|
||||
template <typename Proc, typename Func>
|
||||
class TemplateCommand : public Command<Proc>,
|
||||
private Func
|
||||
{
|
||||
public:
|
||||
explicit MoveOnlyFifo (int size)
|
||||
template <typename FuncPrime>
|
||||
explicit TemplateCommand (FuncPrime&& funcPrime)
|
||||
: Func (std::forward<FuncPrime> (funcPrime))
|
||||
{}
|
||||
|
||||
void run (Proc& proc) override { (*this) (proc); }
|
||||
};
|
||||
|
||||
template <typename Proc>
|
||||
class CommandFifo final
|
||||
{
|
||||
public:
|
||||
explicit CommandFifo (int size)
|
||||
: buffer ((size_t) size),
|
||||
abstractFifo (size)
|
||||
{}
|
||||
|
||||
MoveOnlyFifo()
|
||||
: MoveOnlyFifo (1024)
|
||||
CommandFifo()
|
||||
: CommandFifo (1024)
|
||||
{}
|
||||
|
||||
template <typename Convertible>
|
||||
Convertible push (Convertible item) noexcept
|
||||
template <typename Item>
|
||||
void push (Item&& item) noexcept
|
||||
{
|
||||
auto writer = abstractFifo.write (1);
|
||||
auto command = makeCommand (std::forward<Item> (item));
|
||||
|
||||
if (writer.blockSize1 == 1)
|
||||
abstractFifo.write (1).forEach ([&] (int index)
|
||||
{
|
||||
buffer[(size_t) writer.startIndex1] = move (item);
|
||||
item = {};
|
||||
}
|
||||
else if (writer.blockSize2 == 1)
|
||||
{
|
||||
buffer[(size_t) writer.startIndex2] = move (item);
|
||||
item = {};
|
||||
}
|
||||
|
||||
return item;
|
||||
buffer[size_t (index)] = std::move (command);
|
||||
});
|
||||
}
|
||||
|
||||
Movable pop() noexcept
|
||||
void call (Proc& proc) noexcept
|
||||
{
|
||||
auto reader = abstractFifo.read (1);
|
||||
|
||||
if (reader.blockSize1 == 1)
|
||||
return move (buffer[(size_t) reader.startIndex1]);
|
||||
|
||||
if (reader.blockSize2 == 1)
|
||||
return move (buffer[(size_t) reader.startIndex2]);
|
||||
|
||||
return {};
|
||||
abstractFifo.read (abstractFifo.getNumReady()).forEach ([&] (int index)
|
||||
{
|
||||
buffer[size_t (index)]->run (proc);
|
||||
});
|
||||
}
|
||||
|
||||
private:
|
||||
std::vector<Movable> buffer;
|
||||
template <typename Func>
|
||||
static std::unique_ptr<Command<Proc>> makeCommand (Func&& func)
|
||||
{
|
||||
using Decayed = typename std::decay<Func>::type;
|
||||
return std::make_unique<TemplateCommand<Proc, Decayed>> (std::forward<Func> (func));
|
||||
}
|
||||
|
||||
std::vector<std::unique_ptr<Command<Proc>>> buffer;
|
||||
AbstractFifo abstractFifo;
|
||||
};
|
||||
|
||||
|
|
@ -239,7 +259,7 @@ class MPESamplerVoice : public MPESynthesiserVoice
|
|||
{
|
||||
public:
|
||||
explicit MPESamplerVoice (std::shared_ptr<const MPESamplerSound> sound)
|
||||
: samplerSound (move (sound))
|
||||
: samplerSound (std::move (sound))
|
||||
{
|
||||
jassert (samplerSound != nullptr);
|
||||
}
|
||||
|
|
@ -290,6 +310,25 @@ public:
|
|||
void renderNextBlock (AudioBuffer<float>& outputBuffer,
|
||||
int startSample,
|
||||
int numSamples) override
|
||||
{
|
||||
render (outputBuffer, startSample, numSamples);
|
||||
}
|
||||
|
||||
void renderNextBlock (AudioBuffer<double>& outputBuffer,
|
||||
int startSample,
|
||||
int numSamples) override
|
||||
{
|
||||
render (outputBuffer, startSample, numSamples);
|
||||
}
|
||||
|
||||
double getCurrentSamplePosition() const
|
||||
{
|
||||
return currentSamplePos;
|
||||
}
|
||||
|
||||
private:
|
||||
template <typename Element>
|
||||
void render (AudioBuffer<Element>& outputBuffer, int startSample, int numSamples)
|
||||
{
|
||||
jassert (samplerSound->getSample() != nullptr);
|
||||
|
||||
|
|
@ -316,16 +355,11 @@ public:
|
|||
writePos += 1;
|
||||
}
|
||||
|
||||
double getCurrentSamplePosition() const
|
||||
{
|
||||
return currentSamplePos;
|
||||
}
|
||||
|
||||
private:
|
||||
template <typename Element>
|
||||
bool renderNextSample (const float* inL,
|
||||
const float* inR,
|
||||
float* outL,
|
||||
float* outR,
|
||||
Element* outL,
|
||||
Element* outR,
|
||||
size_t writePos)
|
||||
{
|
||||
auto currentLevel = level.getNextValue();
|
||||
|
|
@ -347,13 +381,13 @@ private:
|
|||
|
||||
auto pos = (int) currentSamplePos;
|
||||
auto nextPos = pos + 1;
|
||||
auto alpha = (float) (currentSamplePos - pos);
|
||||
auto alpha = (Element) (currentSamplePos - pos);
|
||||
auto invAlpha = 1.0f - alpha;
|
||||
|
||||
// just using a very simple linear interpolation here..
|
||||
auto l = static_cast<float> (currentLevel * (inL[pos] * invAlpha + inL[nextPos] * alpha));
|
||||
auto r = static_cast<float> ((inR != nullptr) ? currentLevel * (inR[pos] * invAlpha + inR[nextPos] * alpha)
|
||||
: l);
|
||||
auto l = static_cast<Element> (currentLevel * (inL[pos] * invAlpha + inL[nextPos] * alpha));
|
||||
auto r = static_cast<Element> ((inR != nullptr) ? currentLevel * (inR[pos] * invAlpha + inR[nextPos] * alpha)
|
||||
: l);
|
||||
|
||||
if (outR != nullptr)
|
||||
{
|
||||
|
|
@ -416,6 +450,9 @@ private:
|
|||
case Direction::backward:
|
||||
nextSamplePos -= nextPitchRatio;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// Update current sample position, taking loop mode into account
|
||||
|
|
@ -521,7 +558,7 @@ public:
|
|||
dataSize (dataSizeIn)
|
||||
{}
|
||||
|
||||
std::unique_ptr<AudioFormatReader> make (AudioFormatManager&manager ) const override
|
||||
std::unique_ptr<AudioFormatReader> make (AudioFormatManager& manager) const override
|
||||
{
|
||||
return makeAudioFormatReader (manager, sampleData, dataSize);
|
||||
}
|
||||
|
|
@ -621,7 +658,7 @@ struct VariantConverter<std::shared_ptr<AudioFormatReaderFactory>>
|
|||
} // namespace juce
|
||||
|
||||
//==============================================================================
|
||||
class VisibleRangeDataModel : public ValueTree::Listener
|
||||
class VisibleRangeDataModel : private ValueTree::Listener
|
||||
{
|
||||
public:
|
||||
class Listener
|
||||
|
|
@ -722,7 +759,7 @@ private:
|
|||
};
|
||||
|
||||
//==============================================================================
|
||||
class MPESettingsDataModel : public ValueTree::Listener
|
||||
class MPESettingsDataModel : private ValueTree::Listener
|
||||
{
|
||||
public:
|
||||
class Listener
|
||||
|
|
@ -912,7 +949,7 @@ private:
|
|||
};
|
||||
|
||||
//==============================================================================
|
||||
class DataModel : public ValueTree::Listener
|
||||
class DataModel : private ValueTree::Listener
|
||||
{
|
||||
public:
|
||||
class Listener
|
||||
|
|
@ -1098,7 +1135,7 @@ constexpr int controlSeparation = 6;
|
|||
|
||||
//==============================================================================
|
||||
class MPELegacySettingsComponent final : public Component,
|
||||
public MPESettingsDataModel::Listener
|
||||
private MPESettingsDataModel::Listener
|
||||
{
|
||||
public:
|
||||
explicit MPELegacySettingsComponent (const MPESettingsDataModel& model,
|
||||
|
|
@ -1220,7 +1257,7 @@ private:
|
|||
|
||||
//==============================================================================
|
||||
class MPENewSettingsComponent final : public Component,
|
||||
public MPESettingsDataModel::Listener
|
||||
private MPESettingsDataModel::Listener
|
||||
{
|
||||
public:
|
||||
MPENewSettingsComponent (const MPESettingsDataModel& model,
|
||||
|
|
@ -1316,7 +1353,7 @@ private:
|
|||
|
||||
//==============================================================================
|
||||
class MPESettingsComponent final : public Component,
|
||||
public MPESettingsDataModel::Listener
|
||||
private MPESettingsDataModel::Listener
|
||||
{
|
||||
public:
|
||||
MPESettingsComponent (const MPESettingsDataModel& model,
|
||||
|
|
@ -1487,7 +1524,7 @@ private:
|
|||
|
||||
//==============================================================================
|
||||
class Ruler : public Component,
|
||||
public VisibleRangeDataModel::Listener
|
||||
private VisibleRangeDataModel::Listener
|
||||
{
|
||||
public:
|
||||
explicit Ruler (const VisibleRangeDataModel& model)
|
||||
|
|
@ -1533,14 +1570,13 @@ private:
|
|||
auto xPos = (time - visibleRange.getVisibleRange().getStart()) * getWidth()
|
||||
/ visibleRange.getVisibleRange().getLength();
|
||||
|
||||
std::ostringstream out_stream;
|
||||
out_stream << std::setprecision (roundToInt (precision)) << roundToInt (time);
|
||||
std::ostringstream outStream;
|
||||
outStream << std::setprecision (roundToInt (precision)) << time;
|
||||
|
||||
g.drawText (out_stream.str(),
|
||||
Rectangle<int> (Point<int> (roundToInt (xPos) + 3, 0),
|
||||
Point<int> (roundToInt (xPos + minDivisionWidth), getHeight())),
|
||||
Justification::centredLeft,
|
||||
false);
|
||||
const auto bounds = Rectangle<int> (Point<int> (roundToInt (xPos) + 3, 0),
|
||||
Point<int> (roundToInt (xPos + minDivisionWidth), getHeight()));
|
||||
|
||||
g.drawText (outStream.str(), bounds, Justification::centredLeft, false);
|
||||
|
||||
g.drawVerticalLine (roundToInt (xPos), 2.0f, (float) getHeight());
|
||||
}
|
||||
|
|
@ -1579,8 +1615,8 @@ private:
|
|||
|
||||
//==============================================================================
|
||||
class LoopPointsOverlay : public Component,
|
||||
public DataModel::Listener,
|
||||
public VisibleRangeDataModel::Listener
|
||||
private DataModel::Listener,
|
||||
private VisibleRangeDataModel::Listener
|
||||
{
|
||||
public:
|
||||
LoopPointsOverlay (const DataModel& dModel,
|
||||
|
|
@ -1680,8 +1716,8 @@ private:
|
|||
|
||||
//==============================================================================
|
||||
class PlaybackPositionOverlay : public Component,
|
||||
public Timer,
|
||||
public VisibleRangeDataModel::Listener
|
||||
private Timer,
|
||||
private VisibleRangeDataModel::Listener
|
||||
{
|
||||
public:
|
||||
using Provider = std::function<std::vector<float>()>;
|
||||
|
|
@ -1727,9 +1763,9 @@ private:
|
|||
|
||||
//==============================================================================
|
||||
class WaveformView : public Component,
|
||||
public ChangeListener,
|
||||
public DataModel::Listener,
|
||||
public VisibleRangeDataModel::Listener
|
||||
private ChangeListener,
|
||||
private DataModel::Listener,
|
||||
private VisibleRangeDataModel::Listener
|
||||
{
|
||||
public:
|
||||
WaveformView (const DataModel& model,
|
||||
|
|
@ -1814,7 +1850,7 @@ private:
|
|||
|
||||
//==============================================================================
|
||||
class WaveformEditor : public Component,
|
||||
public DataModel::Listener
|
||||
private DataModel::Listener
|
||||
{
|
||||
public:
|
||||
WaveformEditor (const DataModel& model,
|
||||
|
|
@ -1870,7 +1906,8 @@ private:
|
|||
|
||||
//==============================================================================
|
||||
class MainSamplerView : public Component,
|
||||
public DataModel::Listener
|
||||
private DataModel::Listener,
|
||||
private ChangeListener
|
||||
{
|
||||
public:
|
||||
MainSamplerView (const DataModel& model,
|
||||
|
|
@ -1878,19 +1915,21 @@ public:
|
|||
UndoManager& um)
|
||||
: dataModel (model),
|
||||
waveformEditor (dataModel, move (provider), um),
|
||||
undoManager (&um)
|
||||
undoManager (um)
|
||||
{
|
||||
dataModel.addListener (*this);
|
||||
|
||||
addAndMakeVisible (waveformEditor);
|
||||
addAndMakeVisible (loadNewSampleButton);
|
||||
addAndMakeVisible (undoButton);
|
||||
addAndMakeVisible (redoButton);
|
||||
|
||||
auto setReader = [this] (const FileChooser& fc)
|
||||
{
|
||||
undoManager->beginNewTransaction();
|
||||
undoManager.beginNewTransaction();
|
||||
auto readerFactory = new FileAudioFormatReaderFactory (fc.getResult());
|
||||
dataModel.setSampleReader (std::unique_ptr<AudioFormatReaderFactory> (readerFactory),
|
||||
undoManager);
|
||||
&undoManager);
|
||||
};
|
||||
|
||||
loadNewSampleButton.onClick = [this, setReader]
|
||||
|
|
@ -1903,9 +1942,9 @@ public:
|
|||
addAndMakeVisible (centreFrequency);
|
||||
centreFrequency.onValueChange = [this]
|
||||
{
|
||||
undoManager->beginNewTransaction();
|
||||
undoManager.beginNewTransaction();
|
||||
dataModel.setCentreFrequencyHz (centreFrequency.getValue(),
|
||||
centreFrequency.isMouseButtonDown() ? nullptr : undoManager);
|
||||
centreFrequency.isMouseButtonDown() ? nullptr : &undoManager);
|
||||
};
|
||||
|
||||
centreFrequency.setRange (20, 20000, 1);
|
||||
|
|
@ -1925,8 +1964,8 @@ public:
|
|||
{
|
||||
if (loopKindNone.getToggleState())
|
||||
{
|
||||
undoManager->beginNewTransaction();
|
||||
dataModel.setLoopMode (LoopMode::none, undoManager);
|
||||
undoManager.beginNewTransaction();
|
||||
dataModel.setLoopMode (LoopMode::none, &undoManager);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -1934,8 +1973,8 @@ public:
|
|||
{
|
||||
if (loopKindForward.getToggleState())
|
||||
{
|
||||
undoManager->beginNewTransaction();
|
||||
dataModel.setLoopMode (LoopMode::forward, undoManager);
|
||||
undoManager.beginNewTransaction();
|
||||
dataModel.setLoopMode (LoopMode::forward, &undoManager);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -1943,16 +1982,36 @@ public:
|
|||
{
|
||||
if (loopKindPingpong.getToggleState())
|
||||
{
|
||||
undoManager->beginNewTransaction();
|
||||
dataModel.setLoopMode (LoopMode::pingpong, undoManager);
|
||||
undoManager.beginNewTransaction();
|
||||
dataModel.setLoopMode (LoopMode::pingpong, &undoManager);
|
||||
}
|
||||
};
|
||||
|
||||
undoButton.onClick = [this] { undoManager.undo(); };
|
||||
redoButton.onClick = [this] { undoManager.redo(); };
|
||||
|
||||
addAndMakeVisible (centreFrequencyLabel);
|
||||
addAndMakeVisible (loopKindLabel);
|
||||
|
||||
changeListenerCallback (&undoManager);
|
||||
undoManager.addChangeListener (this);
|
||||
}
|
||||
|
||||
~MainSamplerView() override
|
||||
{
|
||||
undoManager.removeChangeListener (this);
|
||||
}
|
||||
|
||||
private:
|
||||
void changeListenerCallback (ChangeBroadcaster* source) override
|
||||
{
|
||||
if (source == &undoManager)
|
||||
{
|
||||
undoButton.setEnabled (undoManager.canUndo());
|
||||
redoButton.setEnabled (undoManager.canRedo());
|
||||
}
|
||||
}
|
||||
|
||||
void resized() override
|
||||
{
|
||||
auto bounds = getLocalBounds();
|
||||
|
|
@ -1960,6 +2019,8 @@ private:
|
|||
auto topBar = bounds.removeFromTop (50);
|
||||
auto padding = 4;
|
||||
loadNewSampleButton .setBounds (topBar.removeFromRight (100).reduced (padding));
|
||||
redoButton .setBounds (topBar.removeFromRight (100).reduced (padding));
|
||||
undoButton .setBounds (topBar.removeFromRight (100).reduced (padding));
|
||||
centreFrequencyLabel.setBounds (topBar.removeFromLeft (100).reduced (padding));
|
||||
centreFrequency .setBounds (topBar.removeFromLeft (100).reduced (padding));
|
||||
|
||||
|
|
@ -1985,6 +2046,9 @@ private:
|
|||
case LoopMode::pingpong:
|
||||
loopKindPingpong.setToggleState (true, dontSendNotification);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1996,6 +2060,8 @@ private:
|
|||
DataModel dataModel;
|
||||
WaveformEditor waveformEditor;
|
||||
TextButton loadNewSampleButton { "Load New Sample" };
|
||||
TextButton undoButton { "Undo" };
|
||||
TextButton redoButton { "Redo" };
|
||||
Slider centreFrequency;
|
||||
|
||||
TextButton loopKindNone { "None" },
|
||||
|
|
@ -2009,7 +2075,7 @@ private:
|
|||
FileChooser fileChooser { "Select a file to load...", File(),
|
||||
dataModel.getAudioFormatManager().getWildcardForAllFormats() };
|
||||
|
||||
UndoManager* undoManager;
|
||||
UndoManager& undoManager;
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
|
|
@ -2074,7 +2140,7 @@ public:
|
|||
// This function will be called from the message thread. We lock the command
|
||||
// queue to ensure that no messages are processed for the duration of this
|
||||
// call.
|
||||
std::lock_guard<std::mutex> lock (commandQueueMutex);
|
||||
SpinLock::ScopedLockType lock (commandQueueMutex);
|
||||
|
||||
ProcessorState state;
|
||||
state.synthVoices = synthesiser.getNumVoices();
|
||||
|
|
@ -2096,7 +2162,7 @@ public:
|
|||
bool hasEditor() const override { return true; }
|
||||
|
||||
//==============================================================================
|
||||
const String getName() const override { return JucePlugin_Name; }
|
||||
const String getName() const override { return "SamplerPlugin"; }
|
||||
bool acceptsMidi() const override { return true; }
|
||||
bool producesMidi() const override { return false; }
|
||||
bool isMidiEffect() const override { return false; }
|
||||
|
|
@ -2114,49 +2180,14 @@ public:
|
|||
void setStateInformation (const void*, int) override {}
|
||||
|
||||
//==============================================================================
|
||||
void processBlock (AudioBuffer<float>& buffer, MidiBuffer& midiMessages) override
|
||||
void processBlock (AudioBuffer<float>& buffer, MidiBuffer& midi) override
|
||||
{
|
||||
// Try to acquire a lock on the command queue.
|
||||
// If we were successful, we pop all pending commands off the queue and
|
||||
// apply them to the processor.
|
||||
// If we weren't able to acquire the lock, it's because someone called
|
||||
// createEditor, which requires that the processor data model stays in
|
||||
// a valid state for the duration of the call.
|
||||
std::unique_lock<std::mutex> lock (commandQueueMutex, std::try_to_lock);
|
||||
process (buffer, midi);
|
||||
}
|
||||
|
||||
if (lock.owns_lock())
|
||||
{
|
||||
while (auto command = incomingCommands.pop())
|
||||
{
|
||||
command->run (*this);
|
||||
// We push the command onto the outgoing buffer, as long as it has
|
||||
// room. If it doesn't have room for some reason, we'll delete
|
||||
// the command right here on this thread, which might take a while
|
||||
// and cause the audio to glitch, so I hope the buffer size is big
|
||||
// enough!
|
||||
outgoingCommands.push (move (command));
|
||||
}
|
||||
}
|
||||
|
||||
synthesiser.renderNextBlock (buffer, midiMessages, 0, buffer.getNumSamples());
|
||||
|
||||
auto loadedSamplerSound = samplerSound;
|
||||
|
||||
if (loadedSamplerSound->getSample() == nullptr)
|
||||
return;
|
||||
|
||||
auto numVoices = synthesiser.getNumVoices();
|
||||
|
||||
// Update the current playback positions
|
||||
for (auto i = 0; i < maxVoices; ++i)
|
||||
{
|
||||
auto* voicePtr = dynamic_cast<MPESamplerVoice*> (synthesiser.getVoice (i));
|
||||
|
||||
if (i < numVoices && voicePtr != nullptr)
|
||||
playbackPositions[(size_t) i] = static_cast<float> (voicePtr->getCurrentSamplePosition() / loadedSamplerSound->getSample()->getSampleRate());
|
||||
else
|
||||
playbackPositions[(size_t) i] = 0.0f;
|
||||
}
|
||||
void processBlock (AudioBuffer<double>& buffer, MidiBuffer& midi) override
|
||||
{
|
||||
process (buffer, midi);
|
||||
}
|
||||
|
||||
// These should be called from the GUI thread, and will block until the
|
||||
|
|
@ -2205,75 +2236,75 @@ public:
|
|||
|
||||
if (fact == nullptr)
|
||||
{
|
||||
pushCommand (SetSampleCommand (move (fact),
|
||||
nullptr,
|
||||
move (newSamplerVoices)));
|
||||
commands.push (SetSampleCommand (move (fact),
|
||||
nullptr,
|
||||
move (newSamplerVoices)));
|
||||
}
|
||||
else
|
||||
{
|
||||
auto reader = fact->make (formatManager);
|
||||
pushCommand (SetSampleCommand (move (fact),
|
||||
std::unique_ptr<Sample> (new Sample (*reader, 10.0)),
|
||||
move (newSamplerVoices)));
|
||||
commands.push (SetSampleCommand (move (fact),
|
||||
std::unique_ptr<Sample> (new Sample (*reader, 10.0)),
|
||||
move (newSamplerVoices)));
|
||||
}
|
||||
}
|
||||
|
||||
void setCentreFrequency (double centreFrequency)
|
||||
{
|
||||
pushCommand ([centreFrequency] (SamplerAudioProcessor& proc)
|
||||
{
|
||||
auto loaded = proc.samplerSound;
|
||||
if (loaded != nullptr)
|
||||
loaded->setCentreFrequencyInHz (centreFrequency);
|
||||
});
|
||||
commands.push ([centreFrequency] (SamplerAudioProcessor& proc)
|
||||
{
|
||||
auto loaded = proc.samplerSound;
|
||||
if (loaded != nullptr)
|
||||
loaded->setCentreFrequencyInHz (centreFrequency);
|
||||
});
|
||||
}
|
||||
|
||||
void setLoopMode (LoopMode loopMode)
|
||||
{
|
||||
pushCommand ([loopMode] (SamplerAudioProcessor& proc)
|
||||
{
|
||||
auto loaded = proc.samplerSound;
|
||||
if (loaded != nullptr)
|
||||
loaded->setLoopMode (loopMode);
|
||||
});
|
||||
commands.push ([loopMode] (SamplerAudioProcessor& proc)
|
||||
{
|
||||
auto loaded = proc.samplerSound;
|
||||
if (loaded != nullptr)
|
||||
loaded->setLoopMode (loopMode);
|
||||
});
|
||||
}
|
||||
|
||||
void setLoopPoints (Range<double> loopPoints)
|
||||
{
|
||||
pushCommand ([loopPoints] (SamplerAudioProcessor& proc)
|
||||
{
|
||||
auto loaded = proc.samplerSound;
|
||||
if (loaded != nullptr)
|
||||
loaded->setLoopPointsInSeconds (loopPoints);
|
||||
});
|
||||
commands.push ([loopPoints] (SamplerAudioProcessor& proc)
|
||||
{
|
||||
auto loaded = proc.samplerSound;
|
||||
if (loaded != nullptr)
|
||||
loaded->setLoopPointsInSeconds (loopPoints);
|
||||
});
|
||||
}
|
||||
|
||||
void setMPEZoneLayout (MPEZoneLayout layout)
|
||||
{
|
||||
pushCommand ([layout] (SamplerAudioProcessor& proc)
|
||||
{
|
||||
// setZoneLayout will lock internally, so we don't care too much about
|
||||
// ensuring that the layout doesn't get copied or destroyed on the
|
||||
// audio thread. If the audio glitches while updating midi settings
|
||||
// it doesn't matter too much.
|
||||
proc.synthesiser.setZoneLayout (layout);
|
||||
});
|
||||
commands.push ([layout] (SamplerAudioProcessor& proc)
|
||||
{
|
||||
// setZoneLayout will lock internally, so we don't care too much about
|
||||
// ensuring that the layout doesn't get copied or destroyed on the
|
||||
// audio thread. If the audio glitches while updating midi settings
|
||||
// it doesn't matter too much.
|
||||
proc.synthesiser.setZoneLayout (layout);
|
||||
});
|
||||
}
|
||||
|
||||
void setLegacyModeEnabled (int pitchbendRange, Range<int> channelRange)
|
||||
{
|
||||
pushCommand ([pitchbendRange, channelRange] (SamplerAudioProcessor& proc)
|
||||
{
|
||||
proc.synthesiser.enableLegacyMode (pitchbendRange, channelRange);
|
||||
});
|
||||
commands.push ([pitchbendRange, channelRange] (SamplerAudioProcessor& proc)
|
||||
{
|
||||
proc.synthesiser.enableLegacyMode (pitchbendRange, channelRange);
|
||||
});
|
||||
}
|
||||
|
||||
void setVoiceStealingEnabled (bool voiceStealingEnabled)
|
||||
{
|
||||
pushCommand ([voiceStealingEnabled] (SamplerAudioProcessor& proc)
|
||||
{
|
||||
proc.synthesiser.setVoiceStealingEnabled (voiceStealingEnabled);
|
||||
});
|
||||
commands.push ([voiceStealingEnabled] (SamplerAudioProcessor& proc)
|
||||
{
|
||||
proc.synthesiser.setVoiceStealingEnabled (voiceStealingEnabled);
|
||||
});
|
||||
}
|
||||
|
||||
void setNumberOfVoices (int numberOfVoices)
|
||||
|
|
@ -2287,7 +2318,7 @@ public:
|
|||
{
|
||||
public:
|
||||
SetNumVoicesCommand (std::vector<std::unique_ptr<MPESamplerVoice>> newVoicesIn)
|
||||
: newVoices (move (newVoicesIn))
|
||||
: newVoices (std::move (newVoicesIn))
|
||||
{}
|
||||
|
||||
void operator() (SamplerAudioProcessor& proc)
|
||||
|
|
@ -2311,7 +2342,7 @@ public:
|
|||
for (auto i = 0; i != numberOfVoices; ++i)
|
||||
newSamplerVoices.emplace_back (new MPESamplerVoice (loadedSamplerSound));
|
||||
|
||||
pushCommand (SetNumVoicesCommand (move (newSamplerVoices)));
|
||||
commands.push (SetNumVoicesCommand (move (newSamplerVoices)));
|
||||
}
|
||||
|
||||
// These accessors are just for an 'overview' and won't give the exact
|
||||
|
|
@ -2327,8 +2358,8 @@ private:
|
|||
//==============================================================================
|
||||
class SamplerAudioProcessorEditor : public AudioProcessorEditor,
|
||||
public FileDragAndDropTarget,
|
||||
public DataModel::Listener,
|
||||
public MPESettingsDataModel::Listener
|
||||
private DataModel::Listener,
|
||||
private MPESettingsDataModel::Listener
|
||||
{
|
||||
public:
|
||||
SamplerAudioProcessorEditor (SamplerAudioProcessor& p, ProcessorState state)
|
||||
|
|
@ -2497,6 +2528,7 @@ private:
|
|||
DataModel dataModel { formatManager };
|
||||
UndoManager undoManager;
|
||||
MPESettingsDataModel mpeSettings { dataModel.mpeSettings() };
|
||||
|
||||
TabbedComponent tabbedComponent { TabbedButtonBar::Orientation::TabsAtTop };
|
||||
MPESettingsComponent settingsComponent { dataModel.mpeSettings(), undoManager };
|
||||
MainSamplerView mainSamplerView;
|
||||
|
|
@ -2505,79 +2537,43 @@ private:
|
|||
};
|
||||
|
||||
//==============================================================================
|
||||
// We want to send type-erased commands to the audio thread, but we also
|
||||
// want those commands to contain move-only resources, so that we can
|
||||
// construct resources on the gui thread, and then transfer ownership
|
||||
// cheaply to the audio thread. We can't do this with std::function
|
||||
// because it enforces that functions are copy-constructible.
|
||||
// Therefore, we use a very simple templated type-eraser here.
|
||||
struct Command
|
||||
template <typename Element>
|
||||
void process (AudioBuffer<Element>& buffer, MidiBuffer& midiMessages)
|
||||
{
|
||||
virtual ~Command() noexcept = default;
|
||||
virtual void run (SamplerAudioProcessor& proc) = 0;
|
||||
};
|
||||
// Try to acquire a lock on the command queue.
|
||||
// If we were successful, we pop all pending commands off the queue and
|
||||
// apply them to the processor.
|
||||
// If we weren't able to acquire the lock, it's because someone called
|
||||
// createEditor, which requires that the processor data model stays in
|
||||
// a valid state for the duration of the call.
|
||||
const GenericScopedTryLock<SpinLock> lock (commandQueueMutex);
|
||||
|
||||
template <typename Func>
|
||||
class TemplateCommand : public Command,
|
||||
public Func
|
||||
{
|
||||
public:
|
||||
template <typename FuncPrime>
|
||||
explicit TemplateCommand (FuncPrime&& funcPrime)
|
||||
: Func (std::forward<FuncPrime> (funcPrime))
|
||||
{}
|
||||
if (lock.isLocked())
|
||||
commands.call (*this);
|
||||
|
||||
void run (SamplerAudioProcessor& proc) override
|
||||
synthesiser.renderNextBlock (buffer, midiMessages, 0, buffer.getNumSamples());
|
||||
|
||||
auto loadedSamplerSound = samplerSound;
|
||||
|
||||
if (loadedSamplerSound->getSample() == nullptr)
|
||||
return;
|
||||
|
||||
auto numVoices = synthesiser.getNumVoices();
|
||||
|
||||
// Update the current playback positions
|
||||
for (auto i = 0; i < maxVoices; ++i)
|
||||
{
|
||||
(*this) (proc);
|
||||
}
|
||||
};
|
||||
auto* voicePtr = dynamic_cast<MPESamplerVoice*> (synthesiser.getVoice (i));
|
||||
|
||||
if (i < numVoices && voicePtr != nullptr)
|
||||
playbackPositions[(size_t) i] = static_cast<float> (voicePtr->getCurrentSamplePosition() / loadedSamplerSound->getSample()->getSampleRate());
|
||||
else
|
||||
playbackPositions[(size_t) i] = 0.0f;
|
||||
}
|
||||
|
||||
template <typename Func>
|
||||
static std::unique_ptr<Command> make_command (Func&& func)
|
||||
{
|
||||
return std::unique_ptr<TemplateCommand<Func>> (new TemplateCommand<Func> (std::forward<Func> (func)));
|
||||
}
|
||||
|
||||
using CommandFifo = MoveOnlyFifo<std::unique_ptr<Command>>;
|
||||
|
||||
class OutgoingBufferCleaner : public Timer
|
||||
{
|
||||
public:
|
||||
explicit OutgoingBufferCleaner (CommandFifo& bufferToEmpty)
|
||||
: buffer (bufferToEmpty)
|
||||
{
|
||||
startTimer (500);
|
||||
}
|
||||
|
||||
private:
|
||||
void timerCallback() override
|
||||
{
|
||||
while (auto command = buffer.pop())
|
||||
command = {};
|
||||
}
|
||||
|
||||
CommandFifo& buffer;
|
||||
};
|
||||
|
||||
// Spin, trying to post a command to the sampler sound, until there's
|
||||
// enough room in the command buffer to accept the new command.
|
||||
template <typename Func>
|
||||
void pushCommand (Func&& func)
|
||||
{
|
||||
auto command = make_command (std::forward<Func> (func));
|
||||
while (command)
|
||||
command = incomingCommands.push (move (command));
|
||||
}
|
||||
|
||||
// We have an incoming and an outgoing command queue. The incoming commands
|
||||
// are used to update the sampler sound in a thread-safe way, without
|
||||
// blocking. Once we've consumed a command, we push it back onto the
|
||||
// outgoing command queue, which is cleaned up periodically by the
|
||||
// outgoingBufferCleaner.
|
||||
CommandFifo incomingCommands;
|
||||
CommandFifo outgoingCommands;
|
||||
OutgoingBufferCleaner outgoingBufferCleaner { outgoingCommands };
|
||||
CommandFifo<SamplerAudioProcessor> commands;
|
||||
|
||||
MemoryBlock mb;
|
||||
std::unique_ptr<AudioFormatReaderFactory> readerFactory;
|
||||
|
|
@ -2587,9 +2583,9 @@ private:
|
|||
// This mutex is used to ensure we don't modify the processor state during
|
||||
// a call to createEditor, which would cause the UI to become desynched
|
||||
// with the real state of the processor.
|
||||
std::mutex commandQueueMutex;
|
||||
SpinLock commandQueueMutex;
|
||||
|
||||
static const int maxVoices { 20 };
|
||||
static constexpr auto maxVoices { 20 };
|
||||
|
||||
// This is used for visualising the current playback position of each voice.
|
||||
std::array<std::atomic<float>, maxVoices> playbackPositions;
|
||||
|
|
|
|||
|
|
@ -270,6 +270,8 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
using AudioProcessor::processBlock;
|
||||
|
||||
//==============================================================================
|
||||
AudioProcessorEditor* createEditor() override { return new SurroundEditor (*this); }
|
||||
bool hasEditor() const override { return true; }
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@
|
|||
<MODULEPATH id="juce_audio_formats" path="../../modules"/>
|
||||
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
|
||||
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
|
||||
<MODULEPATH id="juce_dsp" path="../../modules"/>
|
||||
</MODULEPATHS>
|
||||
</XCODE_MAC>
|
||||
<LINUX_MAKE targetFolder="Builds/LinuxMakefile" smallIcon="c97aUr" bigIcon="c97aUr">
|
||||
|
|
@ -51,6 +52,7 @@
|
|||
<MODULEPATH id="juce_audio_formats" path="../../modules"/>
|
||||
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
|
||||
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
|
||||
<MODULEPATH id="juce_dsp" path="../../modules"/>
|
||||
</MODULEPATHS>
|
||||
</LINUX_MAKE>
|
||||
<VS2015 targetFolder="Builds/VisualStudio2015" smallIcon="c97aUr" bigIcon="c97aUr"
|
||||
|
|
@ -74,6 +76,7 @@
|
|||
<MODULEPATH id="juce_audio_formats" path="../../modules"/>
|
||||
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
|
||||
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
|
||||
<MODULEPATH id="juce_dsp" path="../../modules"/>
|
||||
</MODULEPATHS>
|
||||
</VS2015>
|
||||
<VS2017 targetFolder="Builds/VisualStudio2017" smallIcon="c97aUr" bigIcon="c97aUr"
|
||||
|
|
@ -97,6 +100,7 @@
|
|||
<MODULEPATH id="juce_audio_formats" path="../../modules"/>
|
||||
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
|
||||
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
|
||||
<MODULEPATH id="juce_dsp" path="../../modules"/>
|
||||
</MODULEPATHS>
|
||||
</VS2017>
|
||||
<VS2019 targetFolder="Builds/VisualStudio2019" smallIcon="c97aUr" bigIcon="c97aUr"
|
||||
|
|
@ -120,6 +124,7 @@
|
|||
<MODULEPATH id="juce_audio_formats" path="../../modules"/>
|
||||
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
|
||||
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
|
||||
<MODULEPATH id="juce_dsp" path="../../modules"/>
|
||||
</MODULEPATHS>
|
||||
</VS2019>
|
||||
<XCODE_IPHONE targetFolder="Builds/iOS" iosScreenOrientation="portraitlandscape"
|
||||
|
|
@ -147,6 +152,7 @@
|
|||
<MODULEPATH id="juce_audio_formats" path="../../modules"/>
|
||||
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
|
||||
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
|
||||
<MODULEPATH id="juce_dsp" path="../../modules"/>
|
||||
</MODULEPATHS>
|
||||
</XCODE_IPHONE>
|
||||
<ANDROIDSTUDIO targetFolder="Builds/Android" androidMinimumSDK="23" androidInternetNeeded="1"
|
||||
|
|
@ -174,6 +180,7 @@
|
|||
<MODULEPATH id="juce_audio_formats" path="../../modules"/>
|
||||
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
|
||||
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
|
||||
<MODULEPATH id="juce_dsp" path="../../modules"/>
|
||||
</MODULEPATHS>
|
||||
</ANDROIDSTUDIO>
|
||||
</EXPORTFORMATS>
|
||||
|
|
@ -207,7 +214,7 @@
|
|||
</GROUP>
|
||||
</MAINGROUP>
|
||||
<JUCEOPTIONS JUCE_WASAPI="1" JUCE_DIRECTSOUND="1" JUCE_ALSA="1" JUCE_USE_FLAC="0"
|
||||
JUCE_USE_OGGVORBIS="0" JUCE_USE_CDBURNER="0" JUCE_USE_CDREADER="0"
|
||||
JUCE_USE_OGGVORBIS="1" JUCE_USE_CDBURNER="0" JUCE_USE_CDREADER="0"
|
||||
JUCE_USE_CAMERA="0" JUCE_PLUGINHOST_AU="1" JUCE_WEB_BROWSER="0"
|
||||
JUCE_PLUGINHOST_VST3="1" JUCE_PLUGINHOST_LADSPA="1"/>
|
||||
<MODULES>
|
||||
|
|
@ -219,6 +226,7 @@
|
|||
<MODULE id="juce_core" showAllCode="1"/>
|
||||
<MODULE id="juce_cryptography" showAllCode="1"/>
|
||||
<MODULE id="juce_data_structures" showAllCode="1"/>
|
||||
<MODULE id="juce_dsp" showAllCode="1" useLocalCopy="0" useGlobalPath="0"/>
|
||||
<MODULE id="juce_events" showAllCode="1"/>
|
||||
<MODULE id="juce_graphics" showAllCode="1"/>
|
||||
<MODULE id="juce_gui_basics" showAllCode="1"/>
|
||||
|
|
|
|||
|
|
@ -20,9 +20,9 @@ include_directories( AFTER
|
|||
enable_language(ASM)
|
||||
|
||||
IF(JUCE_BUILD_CONFIGURATION MATCHES "DEBUG")
|
||||
add_definitions("-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000" "-DJUCE_DISPLAY_SPLASH_SCREEN=0" "-DJUCE_REPORT_APP_USAGE=0" "-DJUCE_USE_DARK_SPLASH_SCREEN=1" "-DJUCE_PROJUCER_VERSION=0x60000" "-DJUCE_MODULE_AVAILABLE_juce_audio_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_formats=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_processors=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_utils=1" "-DJUCE_MODULE_AVAILABLE_juce_core=1" "-DJUCE_MODULE_AVAILABLE_juce_cryptography=1" "-DJUCE_MODULE_AVAILABLE_juce_data_structures=1" "-DJUCE_MODULE_AVAILABLE_juce_events=1" "-DJUCE_MODULE_AVAILABLE_juce_graphics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1" "-DJUCE_MODULE_AVAILABLE_juce_opengl=1" "-DJUCE_MODULE_AVAILABLE_juce_video=1" "-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1" "-DJUCE_WASAPI=1" "-DJUCE_DIRECTSOUND=1" "-DJUCE_ALSA=1" "-DJUCE_USE_FLAC=0" "-DJUCE_USE_OGGVORBIS=0" "-DJUCE_PLUGINHOST_VST3=1" "-DJUCE_PLUGINHOST_AU=1" "-DJUCE_PLUGINHOST_LADSPA=1" "-DJUCE_USE_CDREADER=0" "-DJUCE_USE_CDBURNER=0" "-DJUCE_WEB_BROWSER=0" "-DJUCE_USE_CAMERA=0" "-DJUCE_STANDALONE_APPLICATION=1" "-DDEBUG=1" "-D_DEBUG=1")
|
||||
add_definitions("-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000" "-DJUCE_DISPLAY_SPLASH_SCREEN=0" "-DJUCE_REPORT_APP_USAGE=0" "-DJUCE_USE_DARK_SPLASH_SCREEN=1" "-DJUCE_PROJUCER_VERSION=0x60000" "-DJUCE_MODULE_AVAILABLE_juce_audio_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_formats=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_processors=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_utils=1" "-DJUCE_MODULE_AVAILABLE_juce_core=1" "-DJUCE_MODULE_AVAILABLE_juce_cryptography=1" "-DJUCE_MODULE_AVAILABLE_juce_data_structures=1" "-DJUCE_MODULE_AVAILABLE_juce_dsp=1" "-DJUCE_MODULE_AVAILABLE_juce_events=1" "-DJUCE_MODULE_AVAILABLE_juce_graphics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1" "-DJUCE_MODULE_AVAILABLE_juce_opengl=1" "-DJUCE_MODULE_AVAILABLE_juce_video=1" "-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1" "-DJUCE_WASAPI=1" "-DJUCE_DIRECTSOUND=1" "-DJUCE_ALSA=1" "-DJUCE_USE_FLAC=0" "-DJUCE_USE_OGGVORBIS=1" "-DJUCE_PLUGINHOST_VST3=1" "-DJUCE_PLUGINHOST_AU=1" "-DJUCE_PLUGINHOST_LADSPA=1" "-DJUCE_USE_CDREADER=0" "-DJUCE_USE_CDBURNER=0" "-DJUCE_WEB_BROWSER=0" "-DJUCE_USE_CAMERA=0" "-DJUCE_STANDALONE_APPLICATION=1" "-DDEBUG=1" "-D_DEBUG=1")
|
||||
ELSEIF(JUCE_BUILD_CONFIGURATION MATCHES "RELEASE")
|
||||
add_definitions("-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000" "-DJUCE_DISPLAY_SPLASH_SCREEN=0" "-DJUCE_REPORT_APP_USAGE=0" "-DJUCE_USE_DARK_SPLASH_SCREEN=1" "-DJUCE_PROJUCER_VERSION=0x60000" "-DJUCE_MODULE_AVAILABLE_juce_audio_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_formats=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_processors=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_utils=1" "-DJUCE_MODULE_AVAILABLE_juce_core=1" "-DJUCE_MODULE_AVAILABLE_juce_cryptography=1" "-DJUCE_MODULE_AVAILABLE_juce_data_structures=1" "-DJUCE_MODULE_AVAILABLE_juce_events=1" "-DJUCE_MODULE_AVAILABLE_juce_graphics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1" "-DJUCE_MODULE_AVAILABLE_juce_opengl=1" "-DJUCE_MODULE_AVAILABLE_juce_video=1" "-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1" "-DJUCE_WASAPI=1" "-DJUCE_DIRECTSOUND=1" "-DJUCE_ALSA=1" "-DJUCE_USE_FLAC=0" "-DJUCE_USE_OGGVORBIS=0" "-DJUCE_PLUGINHOST_VST3=1" "-DJUCE_PLUGINHOST_AU=1" "-DJUCE_PLUGINHOST_LADSPA=1" "-DJUCE_USE_CDREADER=0" "-DJUCE_USE_CDBURNER=0" "-DJUCE_WEB_BROWSER=0" "-DJUCE_USE_CAMERA=0" "-DJUCE_STANDALONE_APPLICATION=1" "-DNDEBUG=1")
|
||||
add_definitions("-DJUCER_ANDROIDSTUDIO_7F0E4A25=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000" "-DJUCE_DISPLAY_SPLASH_SCREEN=0" "-DJUCE_REPORT_APP_USAGE=0" "-DJUCE_USE_DARK_SPLASH_SCREEN=1" "-DJUCE_PROJUCER_VERSION=0x60000" "-DJUCE_MODULE_AVAILABLE_juce_audio_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_formats=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_processors=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_utils=1" "-DJUCE_MODULE_AVAILABLE_juce_core=1" "-DJUCE_MODULE_AVAILABLE_juce_cryptography=1" "-DJUCE_MODULE_AVAILABLE_juce_data_structures=1" "-DJUCE_MODULE_AVAILABLE_juce_dsp=1" "-DJUCE_MODULE_AVAILABLE_juce_events=1" "-DJUCE_MODULE_AVAILABLE_juce_graphics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1" "-DJUCE_MODULE_AVAILABLE_juce_opengl=1" "-DJUCE_MODULE_AVAILABLE_juce_video=1" "-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1" "-DJUCE_WASAPI=1" "-DJUCE_DIRECTSOUND=1" "-DJUCE_ALSA=1" "-DJUCE_USE_FLAC=0" "-DJUCE_USE_OGGVORBIS=1" "-DJUCE_PLUGINHOST_VST3=1" "-DJUCE_PLUGINHOST_AU=1" "-DJUCE_PLUGINHOST_LADSPA=1" "-DJUCE_USE_CDREADER=0" "-DJUCE_USE_CDBURNER=0" "-DJUCE_WEB_BROWSER=0" "-DJUCE_USE_CAMERA=0" "-DJUCE_STANDALONE_APPLICATION=1" "-DNDEBUG=1")
|
||||
if(NOT (ANDROID_ABI STREQUAL "mips" OR ANDROID_ABI STREQUAL "mips64"))
|
||||
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -flto")
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -flto")
|
||||
|
|
@ -785,6 +785,63 @@ add_library( ${BINARY_NAME}
|
|||
"../../../../../modules/juce_data_structures/juce_data_structures.cpp"
|
||||
"../../../../../modules/juce_data_structures/juce_data_structures.mm"
|
||||
"../../../../../modules/juce_data_structures/juce_data_structures.h"
|
||||
"../../../../../modules/juce_dsp/containers/juce_AudioBlock.h"
|
||||
"../../../../../modules/juce_dsp/containers/juce_AudioBlock_test.cpp"
|
||||
"../../../../../modules/juce_dsp/containers/juce_SIMDRegister.h"
|
||||
"../../../../../modules/juce_dsp/containers/juce_SIMDRegister_Impl.h"
|
||||
"../../../../../modules/juce_dsp/containers/juce_SIMDRegister_test.cpp"
|
||||
"../../../../../modules/juce_dsp/filter_design/juce_FilterDesign.cpp"
|
||||
"../../../../../modules/juce_dsp/filter_design/juce_FilterDesign.h"
|
||||
"../../../../../modules/juce_dsp/frequency/juce_Convolution.cpp"
|
||||
"../../../../../modules/juce_dsp/frequency/juce_Convolution.h"
|
||||
"../../../../../modules/juce_dsp/frequency/juce_FFT.cpp"
|
||||
"../../../../../modules/juce_dsp/frequency/juce_FFT.h"
|
||||
"../../../../../modules/juce_dsp/frequency/juce_FFT_test.cpp"
|
||||
"../../../../../modules/juce_dsp/frequency/juce_Windowing.cpp"
|
||||
"../../../../../modules/juce_dsp/frequency/juce_Windowing.h"
|
||||
"../../../../../modules/juce_dsp/maths/juce_FastMathApproximations.h"
|
||||
"../../../../../modules/juce_dsp/maths/juce_LogRampedValue.h"
|
||||
"../../../../../modules/juce_dsp/maths/juce_LogRampedValue_test.cpp"
|
||||
"../../../../../modules/juce_dsp/maths/juce_LookupTable.cpp"
|
||||
"../../../../../modules/juce_dsp/maths/juce_LookupTable.h"
|
||||
"../../../../../modules/juce_dsp/maths/juce_Matrix.cpp"
|
||||
"../../../../../modules/juce_dsp/maths/juce_Matrix.h"
|
||||
"../../../../../modules/juce_dsp/maths/juce_Matrix_test.cpp"
|
||||
"../../../../../modules/juce_dsp/maths/juce_Phase.h"
|
||||
"../../../../../modules/juce_dsp/maths/juce_Polynomial.h"
|
||||
"../../../../../modules/juce_dsp/maths/juce_SpecialFunctions.cpp"
|
||||
"../../../../../modules/juce_dsp/maths/juce_SpecialFunctions.h"
|
||||
"../../../../../modules/juce_dsp/native/juce_avx_SIMDNativeOps.cpp"
|
||||
"../../../../../modules/juce_dsp/native/juce_avx_SIMDNativeOps.h"
|
||||
"../../../../../modules/juce_dsp/native/juce_fallback_SIMDNativeOps.h"
|
||||
"../../../../../modules/juce_dsp/native/juce_neon_SIMDNativeOps.cpp"
|
||||
"../../../../../modules/juce_dsp/native/juce_neon_SIMDNativeOps.h"
|
||||
"../../../../../modules/juce_dsp/native/juce_sse_SIMDNativeOps.cpp"
|
||||
"../../../../../modules/juce_dsp/native/juce_sse_SIMDNativeOps.h"
|
||||
"../../../../../modules/juce_dsp/processors/juce_Bias.h"
|
||||
"../../../../../modules/juce_dsp/processors/juce_FIRFilter.cpp"
|
||||
"../../../../../modules/juce_dsp/processors/juce_FIRFilter.h"
|
||||
"../../../../../modules/juce_dsp/processors/juce_FIRFilter_test.cpp"
|
||||
"../../../../../modules/juce_dsp/processors/juce_Gain.h"
|
||||
"../../../../../modules/juce_dsp/processors/juce_IIRFilter.cpp"
|
||||
"../../../../../modules/juce_dsp/processors/juce_IIRFilter.h"
|
||||
"../../../../../modules/juce_dsp/processors/juce_IIRFilter_Impl.h"
|
||||
"../../../../../modules/juce_dsp/processors/juce_LadderFilter.cpp"
|
||||
"../../../../../modules/juce_dsp/processors/juce_LadderFilter.h"
|
||||
"../../../../../modules/juce_dsp/processors/juce_Oscillator.h"
|
||||
"../../../../../modules/juce_dsp/processors/juce_Oversampling.cpp"
|
||||
"../../../../../modules/juce_dsp/processors/juce_Oversampling.h"
|
||||
"../../../../../modules/juce_dsp/processors/juce_ProcessContext.h"
|
||||
"../../../../../modules/juce_dsp/processors/juce_ProcessorChain.h"
|
||||
"../../../../../modules/juce_dsp/processors/juce_ProcessorChain_test.cpp"
|
||||
"../../../../../modules/juce_dsp/processors/juce_ProcessorDuplicator.h"
|
||||
"../../../../../modules/juce_dsp/processors/juce_ProcessorWrapper.h"
|
||||
"../../../../../modules/juce_dsp/processors/juce_Reverb.h"
|
||||
"../../../../../modules/juce_dsp/processors/juce_StateVariableFilter.h"
|
||||
"../../../../../modules/juce_dsp/processors/juce_WaveShaper.h"
|
||||
"../../../../../modules/juce_dsp/juce_dsp.cpp"
|
||||
"../../../../../modules/juce_dsp/juce_dsp.mm"
|
||||
"../../../../../modules/juce_dsp/juce_dsp.h"
|
||||
"../../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp"
|
||||
"../../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.h"
|
||||
"../../../../../modules/juce_events/broadcasters/juce_ActionListener.h"
|
||||
|
|
@ -1398,6 +1455,7 @@ add_library( ${BINARY_NAME}
|
|||
"../../../JuceLibraryCode/include_juce_core.cpp"
|
||||
"../../../JuceLibraryCode/include_juce_cryptography.cpp"
|
||||
"../../../JuceLibraryCode/include_juce_data_structures.cpp"
|
||||
"../../../JuceLibraryCode/include_juce_dsp.cpp"
|
||||
"../../../JuceLibraryCode/include_juce_events.cpp"
|
||||
"../../../JuceLibraryCode/include_juce_graphics.cpp"
|
||||
"../../../JuceLibraryCode/include_juce_gui_basics.cpp"
|
||||
|
|
@ -2150,6 +2208,63 @@ set_source_files_properties("../../../../../modules/juce_data_structures/values/
|
|||
set_source_files_properties("../../../../../modules/juce_data_structures/juce_data_structures.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_data_structures/juce_data_structures.mm" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_data_structures/juce_data_structures.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/containers/juce_AudioBlock.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/containers/juce_AudioBlock_test.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/containers/juce_SIMDRegister.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/containers/juce_SIMDRegister_Impl.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/containers/juce_SIMDRegister_test.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/filter_design/juce_FilterDesign.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/filter_design/juce_FilterDesign.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/frequency/juce_Convolution.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/frequency/juce_Convolution.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/frequency/juce_FFT.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/frequency/juce_FFT.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/frequency/juce_FFT_test.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/frequency/juce_Windowing.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/frequency/juce_Windowing.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/maths/juce_FastMathApproximations.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/maths/juce_LogRampedValue.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/maths/juce_LogRampedValue_test.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/maths/juce_LookupTable.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/maths/juce_LookupTable.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/maths/juce_Matrix.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/maths/juce_Matrix.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/maths/juce_Matrix_test.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/maths/juce_Phase.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/maths/juce_Polynomial.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/maths/juce_SpecialFunctions.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/maths/juce_SpecialFunctions.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/native/juce_avx_SIMDNativeOps.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/native/juce_avx_SIMDNativeOps.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/native/juce_fallback_SIMDNativeOps.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/native/juce_neon_SIMDNativeOps.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/native/juce_neon_SIMDNativeOps.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/native/juce_sse_SIMDNativeOps.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/native/juce_sse_SIMDNativeOps.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_Bias.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_FIRFilter.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_FIRFilter.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_FIRFilter_test.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_Gain.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_IIRFilter.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_IIRFilter.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_IIRFilter_Impl.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_LadderFilter.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_LadderFilter.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_Oscillator.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_Oversampling.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_Oversampling.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_ProcessContext.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_ProcessorChain.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_ProcessorChain_test.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_ProcessorDuplicator.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_ProcessorWrapper.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_Reverb.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_StateVariableFilter.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/processors/juce_WaveShaper.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/juce_dsp.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/juce_dsp.mm" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_dsp/juce_dsp.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
set_source_files_properties("../../../../../modules/juce_events/broadcasters/juce_ActionListener.h" PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ ifeq ($(CONFIG),Debug)
|
|||
TARGET_ARCH :=
|
||||
endif
|
||||
|
||||
JUCE_CPPFLAGS := $(DEPFLAGS) "-DLINUX=1" "-DDEBUG=1" "-D_DEBUG=1" "-DJUCER_LINUX_MAKE_6D53C8B4=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000" "-DJUCE_DISPLAY_SPLASH_SCREEN=0" "-DJUCE_REPORT_APP_USAGE=0" "-DJUCE_USE_DARK_SPLASH_SCREEN=1" "-DJUCE_PROJUCER_VERSION=0x60000" "-DJUCE_MODULE_AVAILABLE_juce_audio_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_formats=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_processors=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_utils=1" "-DJUCE_MODULE_AVAILABLE_juce_core=1" "-DJUCE_MODULE_AVAILABLE_juce_cryptography=1" "-DJUCE_MODULE_AVAILABLE_juce_data_structures=1" "-DJUCE_MODULE_AVAILABLE_juce_events=1" "-DJUCE_MODULE_AVAILABLE_juce_graphics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1" "-DJUCE_MODULE_AVAILABLE_juce_opengl=1" "-DJUCE_MODULE_AVAILABLE_juce_video=1" "-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1" "-DJUCE_WASAPI=1" "-DJUCE_DIRECTSOUND=1" "-DJUCE_ALSA=1" "-DJUCE_USE_FLAC=0" "-DJUCE_USE_OGGVORBIS=0" "-DJUCE_PLUGINHOST_VST3=1" "-DJUCE_PLUGINHOST_AU=1" "-DJUCE_PLUGINHOST_LADSPA=1" "-DJUCE_USE_CDREADER=0" "-DJUCE_USE_CDBURNER=0" "-DJUCE_WEB_BROWSER=0" "-DJUCE_USE_CAMERA=0" "-DJUCE_STANDALONE_APPLICATION=1" $(shell pkg-config --cflags alsa x11 xinerama xext freetype2 libcurl) -pthread -I../../../../modules/juce_audio_processors/format_types/VST3_SDK -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS)
|
||||
JUCE_CPPFLAGS := $(DEPFLAGS) "-DLINUX=1" "-DDEBUG=1" "-D_DEBUG=1" "-DJUCER_LINUX_MAKE_6D53C8B4=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000" "-DJUCE_DISPLAY_SPLASH_SCREEN=0" "-DJUCE_REPORT_APP_USAGE=0" "-DJUCE_USE_DARK_SPLASH_SCREEN=1" "-DJUCE_PROJUCER_VERSION=0x60000" "-DJUCE_MODULE_AVAILABLE_juce_audio_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_formats=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_processors=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_utils=1" "-DJUCE_MODULE_AVAILABLE_juce_core=1" "-DJUCE_MODULE_AVAILABLE_juce_cryptography=1" "-DJUCE_MODULE_AVAILABLE_juce_data_structures=1" "-DJUCE_MODULE_AVAILABLE_juce_dsp=1" "-DJUCE_MODULE_AVAILABLE_juce_events=1" "-DJUCE_MODULE_AVAILABLE_juce_graphics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1" "-DJUCE_MODULE_AVAILABLE_juce_opengl=1" "-DJUCE_MODULE_AVAILABLE_juce_video=1" "-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1" "-DJUCE_WASAPI=1" "-DJUCE_DIRECTSOUND=1" "-DJUCE_ALSA=1" "-DJUCE_USE_FLAC=0" "-DJUCE_USE_OGGVORBIS=1" "-DJUCE_PLUGINHOST_VST3=1" "-DJUCE_PLUGINHOST_AU=1" "-DJUCE_PLUGINHOST_LADSPA=1" "-DJUCE_USE_CDREADER=0" "-DJUCE_USE_CDBURNER=0" "-DJUCE_WEB_BROWSER=0" "-DJUCE_USE_CAMERA=0" "-DJUCE_STANDALONE_APPLICATION=1" $(shell pkg-config --cflags alsa x11 xinerama xext freetype2 libcurl) -pthread -I../../../../modules/juce_audio_processors/format_types/VST3_SDK -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS)
|
||||
JUCE_CPPFLAGS_APP := "-DJucePlugin_Build_VST=0" "-DJucePlugin_Build_VST3=0" "-DJucePlugin_Build_AU=0" "-DJucePlugin_Build_AUv3=0" "-DJucePlugin_Build_RTAS=0" "-DJucePlugin_Build_AAX=0" "-DJucePlugin_Build_Standalone=0" "-DJucePlugin_Build_Unity=0"
|
||||
JUCE_TARGET_APP := AudioPluginHost
|
||||
|
||||
|
|
@ -56,7 +56,7 @@ ifeq ($(CONFIG),Release)
|
|||
TARGET_ARCH :=
|
||||
endif
|
||||
|
||||
JUCE_CPPFLAGS := $(DEPFLAGS) "-DLINUX=1" "-DNDEBUG=1" "-DJUCER_LINUX_MAKE_6D53C8B4=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000" "-DJUCE_DISPLAY_SPLASH_SCREEN=0" "-DJUCE_REPORT_APP_USAGE=0" "-DJUCE_USE_DARK_SPLASH_SCREEN=1" "-DJUCE_PROJUCER_VERSION=0x60000" "-DJUCE_MODULE_AVAILABLE_juce_audio_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_formats=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_processors=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_utils=1" "-DJUCE_MODULE_AVAILABLE_juce_core=1" "-DJUCE_MODULE_AVAILABLE_juce_cryptography=1" "-DJUCE_MODULE_AVAILABLE_juce_data_structures=1" "-DJUCE_MODULE_AVAILABLE_juce_events=1" "-DJUCE_MODULE_AVAILABLE_juce_graphics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1" "-DJUCE_MODULE_AVAILABLE_juce_opengl=1" "-DJUCE_MODULE_AVAILABLE_juce_video=1" "-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1" "-DJUCE_WASAPI=1" "-DJUCE_DIRECTSOUND=1" "-DJUCE_ALSA=1" "-DJUCE_USE_FLAC=0" "-DJUCE_USE_OGGVORBIS=0" "-DJUCE_PLUGINHOST_VST3=1" "-DJUCE_PLUGINHOST_AU=1" "-DJUCE_PLUGINHOST_LADSPA=1" "-DJUCE_USE_CDREADER=0" "-DJUCE_USE_CDBURNER=0" "-DJUCE_WEB_BROWSER=0" "-DJUCE_USE_CAMERA=0" "-DJUCE_STANDALONE_APPLICATION=1" $(shell pkg-config --cflags alsa x11 xinerama xext freetype2 libcurl) -pthread -I../../../../modules/juce_audio_processors/format_types/VST3_SDK -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS)
|
||||
JUCE_CPPFLAGS := $(DEPFLAGS) "-DLINUX=1" "-DNDEBUG=1" "-DJUCER_LINUX_MAKE_6D53C8B4=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000" "-DJUCE_DISPLAY_SPLASH_SCREEN=0" "-DJUCE_REPORT_APP_USAGE=0" "-DJUCE_USE_DARK_SPLASH_SCREEN=1" "-DJUCE_PROJUCER_VERSION=0x60000" "-DJUCE_MODULE_AVAILABLE_juce_audio_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_formats=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_processors=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_utils=1" "-DJUCE_MODULE_AVAILABLE_juce_core=1" "-DJUCE_MODULE_AVAILABLE_juce_cryptography=1" "-DJUCE_MODULE_AVAILABLE_juce_data_structures=1" "-DJUCE_MODULE_AVAILABLE_juce_dsp=1" "-DJUCE_MODULE_AVAILABLE_juce_events=1" "-DJUCE_MODULE_AVAILABLE_juce_graphics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1" "-DJUCE_MODULE_AVAILABLE_juce_opengl=1" "-DJUCE_MODULE_AVAILABLE_juce_video=1" "-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1" "-DJUCE_WASAPI=1" "-DJUCE_DIRECTSOUND=1" "-DJUCE_ALSA=1" "-DJUCE_USE_FLAC=0" "-DJUCE_USE_OGGVORBIS=1" "-DJUCE_PLUGINHOST_VST3=1" "-DJUCE_PLUGINHOST_AU=1" "-DJUCE_PLUGINHOST_LADSPA=1" "-DJUCE_USE_CDREADER=0" "-DJUCE_USE_CDBURNER=0" "-DJUCE_WEB_BROWSER=0" "-DJUCE_USE_CAMERA=0" "-DJUCE_STANDALONE_APPLICATION=1" $(shell pkg-config --cflags alsa x11 xinerama xext freetype2 libcurl) -pthread -I../../../../modules/juce_audio_processors/format_types/VST3_SDK -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS)
|
||||
JUCE_CPPFLAGS_APP := "-DJucePlugin_Build_VST=0" "-DJucePlugin_Build_VST3=0" "-DJucePlugin_Build_AU=0" "-DJucePlugin_Build_AUv3=0" "-DJucePlugin_Build_RTAS=0" "-DJucePlugin_Build_AAX=0" "-DJucePlugin_Build_Standalone=0" "-DJucePlugin_Build_Unity=0"
|
||||
JUCE_TARGET_APP := AudioPluginHost
|
||||
|
||||
|
|
@ -83,6 +83,7 @@ OBJECTS_APP := \
|
|||
$(JUCE_OBJDIR)/include_juce_core_f26d17db.o \
|
||||
$(JUCE_OBJDIR)/include_juce_cryptography_8cb807a8.o \
|
||||
$(JUCE_OBJDIR)/include_juce_data_structures_7471b1e3.o \
|
||||
$(JUCE_OBJDIR)/include_juce_dsp_aeb2060f.o \
|
||||
$(JUCE_OBJDIR)/include_juce_events_fd7d695.o \
|
||||
$(JUCE_OBJDIR)/include_juce_graphics_f817e147.o \
|
||||
$(JUCE_OBJDIR)/include_juce_gui_basics_e3f79785.o \
|
||||
|
|
@ -178,6 +179,11 @@ $(JUCE_OBJDIR)/include_juce_data_structures_7471b1e3.o: ../../JuceLibraryCode/in
|
|||
@echo "Compiling include_juce_data_structures.cpp"
|
||||
$(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<"
|
||||
|
||||
$(JUCE_OBJDIR)/include_juce_dsp_aeb2060f.o: ../../JuceLibraryCode/include_juce_dsp.cpp
|
||||
-$(V_AT)mkdir -p $(JUCE_OBJDIR)
|
||||
@echo "Compiling include_juce_dsp.cpp"
|
||||
$(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<"
|
||||
|
||||
$(JUCE_OBJDIR)/include_juce_events_fd7d695.o: ../../JuceLibraryCode/include_juce_events.cpp
|
||||
-$(V_AT)mkdir -p $(JUCE_OBJDIR)
|
||||
@echo "Compiling include_juce_events.cpp"
|
||||
|
|
|
|||
|
|
@ -141,6 +141,10 @@
|
|||
isa = PBXBuildFile;
|
||||
fileRef = 5EF1D381F42AA8764597F189;
|
||||
};
|
||||
A5F0B3B7175766C8AF1D6C3E = {
|
||||
isa = PBXBuildFile;
|
||||
fileRef = 36689CA4EFC2AF183A0848AE;
|
||||
};
|
||||
7DE202DC1D876F49266D9E7D = {
|
||||
isa = PBXBuildFile;
|
||||
fileRef = 8290D7BAC160B3A56B66891A;
|
||||
|
|
@ -221,6 +225,13 @@
|
|||
path = System/Library/Frameworks/CoreMedia.framework;
|
||||
sourceTree = SDKROOT;
|
||||
};
|
||||
36689CA4EFC2AF183A0848AE = {
|
||||
isa = PBXFileReference;
|
||||
lastKnownFileType = sourcecode.cpp.objcpp;
|
||||
name = "include_juce_dsp.mm";
|
||||
path = "../../JuceLibraryCode/include_juce_dsp.mm";
|
||||
sourceTree = "SOURCE_ROOT";
|
||||
};
|
||||
37E4D5C341406B7072120006 = {
|
||||
isa = PBXFileReference;
|
||||
lastKnownFileType = sourcecode.cpp.objcpp;
|
||||
|
|
@ -417,6 +428,13 @@
|
|||
path = "../../JuceLibraryCode/include_juce_gui_basics.mm";
|
||||
sourceTree = "SOURCE_ROOT";
|
||||
};
|
||||
9320A145F2A8ACD687D6608E = {
|
||||
isa = PBXFileReference;
|
||||
lastKnownFileType = file;
|
||||
name = "juce_dsp";
|
||||
path = "../../../../modules/juce_dsp";
|
||||
sourceTree = "SOURCE_ROOT";
|
||||
};
|
||||
938AE72315C6C93949F6220E = {
|
||||
isa = PBXFileReference;
|
||||
lastKnownFileType = file;
|
||||
|
|
@ -668,6 +686,7 @@
|
|||
3D57FE2A8877F12A61054726,
|
||||
FA21631C5536EA3DF55C7FA6,
|
||||
B86B918291E1090C6A720971,
|
||||
9320A145F2A8ACD687D6608E,
|
||||
59842A98E5EBBC54B50C04CD,
|
||||
94CB96C8E4B51F52776C2638,
|
||||
938AE72315C6C93949F6220E,
|
||||
|
|
@ -691,6 +710,7 @@
|
|||
683CEE986A2467C850FE99E6,
|
||||
B8E24A5CEE6B7055537725CF,
|
||||
5EF1D381F42AA8764597F189,
|
||||
36689CA4EFC2AF183A0848AE,
|
||||
8290D7BAC160B3A56B66891A,
|
||||
82800DBA287EF4BAB13B42FB,
|
||||
8FE7B37CDE0818DB27BDDEBD,
|
||||
|
|
@ -794,6 +814,7 @@
|
|||
"JUCE_MODULE_AVAILABLE_juce_core=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_cryptography=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_data_structures=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_dsp=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_events=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_graphics=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_gui_basics=1",
|
||||
|
|
@ -805,7 +826,7 @@
|
|||
"JUCE_DIRECTSOUND=1",
|
||||
"JUCE_ALSA=1",
|
||||
"JUCE_USE_FLAC=0",
|
||||
"JUCE_USE_OGGVORBIS=0",
|
||||
"JUCE_USE_OGGVORBIS=1",
|
||||
"JUCE_PLUGINHOST_VST3=1",
|
||||
"JUCE_PLUGINHOST_AU=1",
|
||||
"JUCE_PLUGINHOST_LADSPA=1",
|
||||
|
|
@ -871,6 +892,7 @@
|
|||
"JUCE_MODULE_AVAILABLE_juce_core=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_cryptography=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_data_structures=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_dsp=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_events=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_graphics=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_gui_basics=1",
|
||||
|
|
@ -882,7 +904,7 @@
|
|||
"JUCE_DIRECTSOUND=1",
|
||||
"JUCE_ALSA=1",
|
||||
"JUCE_USE_FLAC=0",
|
||||
"JUCE_USE_OGGVORBIS=0",
|
||||
"JUCE_USE_OGGVORBIS=1",
|
||||
"JUCE_PLUGINHOST_VST3=1",
|
||||
"JUCE_PLUGINHOST_AU=1",
|
||||
"JUCE_PLUGINHOST_LADSPA=1",
|
||||
|
|
@ -1058,6 +1080,7 @@
|
|||
76A80851698FC773D2479B4E,
|
||||
E4A926EF695823F0F13268FF,
|
||||
A09E93F1B354E1FF8B3E9ABE,
|
||||
A5F0B3B7175766C8AF1D6C3E,
|
||||
7DE202DC1D876F49266D9E7D,
|
||||
075C54DDDBDEA5AAD2F60154,
|
||||
2C3D221D2AA87F07B3F1044D,
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@
|
|||
<Optimization>Disabled</Optimization>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_REPORT_APP_USAGE=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_WASAPI=1;JUCE_DIRECTSOUND=1;JUCE_ALSA=1;JUCE_USE_FLAC=0;JUCE_USE_OGGVORBIS=0;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_AU=1;JUCE_PLUGINHOST_LADSPA=1;JUCE_USE_CDREADER=0;JUCE_USE_CDBURNER=0;JUCE_WEB_BROWSER=0;JUCE_USE_CAMERA=0;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_REPORT_APP_USAGE=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_WASAPI=1;JUCE_DIRECTSOUND=1;JUCE_ALSA=1;JUCE_USE_FLAC=0;JUCE_USE_OGGVORBIS=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_AU=1;JUCE_PLUGINHOST_LADSPA=1;JUCE_USE_CDREADER=0;JUCE_USE_CDBURNER=0;JUCE_WEB_BROWSER=0;JUCE_USE_CAMERA=0;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||
<PrecompiledHeader/>
|
||||
|
|
@ -106,7 +106,7 @@
|
|||
<ClCompile>
|
||||
<Optimization>Full</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_REPORT_APP_USAGE=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_WASAPI=1;JUCE_DIRECTSOUND=1;JUCE_ALSA=1;JUCE_USE_FLAC=0;JUCE_USE_OGGVORBIS=0;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_AU=1;JUCE_PLUGINHOST_LADSPA=1;JUCE_USE_CDREADER=0;JUCE_USE_CDBURNER=0;JUCE_WEB_BROWSER=0;JUCE_USE_CAMERA=0;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_REPORT_APP_USAGE=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_WASAPI=1;JUCE_DIRECTSOUND=1;JUCE_ALSA=1;JUCE_USE_FLAC=0;JUCE_USE_OGGVORBIS=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_AU=1;JUCE_PLUGINHOST_LADSPA=1;JUCE_USE_CDREADER=0;JUCE_USE_CDBURNER=0;JUCE_WEB_BROWSER=0;JUCE_USE_CAMERA=0;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||
<PrecompiledHeader/>
|
||||
|
|
@ -1025,6 +1025,72 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_data_structures\juce_data_structures.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\containers\juce_AudioBlock_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\containers\juce_SIMDRegister_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\filter_design\juce_FilterDesign.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_Convolution.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_FFT.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_FFT_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_Windowing.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_LogRampedValue_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_LookupTable.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_Matrix.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_Matrix_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_SpecialFunctions.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\native\juce_avx_SIMDNativeOps.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\native\juce_neon_SIMDNativeOps.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\native\juce_sse_SIMDNativeOps.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_FIRFilter.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_FIRFilter_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_IIRFilter.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_LadderFilter.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_Oversampling.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorChain_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\juce_dsp.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_events\broadcasters\juce_ActionBroadcaster.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -1919,6 +1985,7 @@
|
|||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_core.cpp"/>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_cryptography.cpp"/>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_data_structures.cpp"/>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_dsp.cpp"/>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_events.cpp"/>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_graphics.cpp"/>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_gui_basics.cpp"/>
|
||||
|
|
@ -2346,6 +2413,40 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_data_structures\values\juce_ValueTreeSynchroniser.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_data_structures\values\juce_ValueWithDefault.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_data_structures\juce_data_structures.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\containers\juce_AudioBlock.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\containers\juce_SIMDRegister.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\containers\juce_SIMDRegister_Impl.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\filter_design\juce_FilterDesign.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\frequency\juce_Convolution.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\frequency\juce_FFT.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\frequency\juce_Windowing.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_FastMathApproximations.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_LogRampedValue.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_LookupTable.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_Matrix.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_Phase.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_Polynomial.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_SpecialFunctions.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_avx_SIMDNativeOps.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_fallback_SIMDNativeOps.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_neon_SIMDNativeOps.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_sse_SIMDNativeOps.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Bias.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_FIRFilter.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Gain.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_IIRFilter.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_IIRFilter_Impl.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_LadderFilter.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Oscillator.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Oversampling.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessContext.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorChain.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorDuplicator.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorWrapper.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Reverb.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_StateVariableFilter.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_WaveShaper.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\juce_dsp.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_events\broadcasters\juce_ActionBroadcaster.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_events\broadcasters\juce_ActionListener.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_events\broadcasters\juce_AsyncUpdater.h"/>
|
||||
|
|
|
|||
|
|
@ -266,6 +266,27 @@
|
|||
<Filter Include="JUCE Modules\juce_data_structures">
|
||||
<UniqueIdentifier>{911F0159-A7A8-4A43-3FD4-154F62F4A44B}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp\containers">
|
||||
<UniqueIdentifier>{53CF03D3-988B-CD28-9130-CE08FDCEF7E9}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp\filter_design">
|
||||
<UniqueIdentifier>{29C6FE02-507E-F3FE-16CD-74D84842C1EA}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp\frequency">
|
||||
<UniqueIdentifier>{8001BD68-125B-E392-8D3B-1F9C9520A65A}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp\maths">
|
||||
<UniqueIdentifier>{EDC17061-CFA0-8EA0-0ADA-90F31C2FB0F2}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp\native">
|
||||
<UniqueIdentifier>{B813BD14-6565-2525-9AC3-E3AA48EDDA85}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp\processors">
|
||||
<UniqueIdentifier>{DDF4BA73-8578-406D-21F8-06B9BC70BFEA}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp">
|
||||
<UniqueIdentifier>{5DD60D0E-B16A-0BED-EDC4-C56E6960CA9E}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_events\broadcasters">
|
||||
<UniqueIdentifier>{9D5816C2-E2B2-2E3F-B095-AC8BD1100D29}</UniqueIdentifier>
|
||||
</Filter>
|
||||
|
|
@ -1381,6 +1402,75 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_data_structures\juce_data_structures.mm">
|
||||
<Filter>JUCE Modules\juce_data_structures</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\containers\juce_AudioBlock_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\containers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\containers\juce_SIMDRegister_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\containers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\filter_design\juce_FilterDesign.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\filter_design</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_Convolution.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_FFT.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_FFT_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_Windowing.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_LogRampedValue_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_LookupTable.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_Matrix.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_Matrix_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_SpecialFunctions.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\native\juce_avx_SIMDNativeOps.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\native\juce_neon_SIMDNativeOps.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\native\juce_sse_SIMDNativeOps.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_FIRFilter.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_FIRFilter_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_IIRFilter.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_LadderFilter.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_Oversampling.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorChain_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\juce_dsp.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\juce_dsp.mm">
|
||||
<Filter>JUCE Modules\juce_dsp</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_events\broadcasters\juce_ActionBroadcaster.cpp">
|
||||
<Filter>JUCE Modules\juce_events\broadcasters</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -2359,6 +2449,9 @@
|
|||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_data_structures.cpp">
|
||||
<Filter>JUCE Library Code</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_dsp.cpp">
|
||||
<Filter>JUCE Library Code</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_events.cpp">
|
||||
<Filter>JUCE Library Code</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -3636,6 +3729,108 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_data_structures\juce_data_structures.h">
|
||||
<Filter>JUCE Modules\juce_data_structures</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\containers\juce_AudioBlock.h">
|
||||
<Filter>JUCE Modules\juce_dsp\containers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\containers\juce_SIMDRegister.h">
|
||||
<Filter>JUCE Modules\juce_dsp\containers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\containers\juce_SIMDRegister_Impl.h">
|
||||
<Filter>JUCE Modules\juce_dsp\containers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\filter_design\juce_FilterDesign.h">
|
||||
<Filter>JUCE Modules\juce_dsp\filter_design</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\frequency\juce_Convolution.h">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\frequency\juce_FFT.h">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\frequency\juce_Windowing.h">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_FastMathApproximations.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_LogRampedValue.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_LookupTable.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_Matrix.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_Phase.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_Polynomial.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_SpecialFunctions.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_avx_SIMDNativeOps.h">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_fallback_SIMDNativeOps.h">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_neon_SIMDNativeOps.h">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_sse_SIMDNativeOps.h">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Bias.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_FIRFilter.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Gain.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_IIRFilter.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_IIRFilter_Impl.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_LadderFilter.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Oscillator.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Oversampling.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessContext.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorChain.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorDuplicator.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorWrapper.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Reverb.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_StateVariableFilter.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_WaveShaper.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\juce_dsp.h">
|
||||
<Filter>JUCE Modules\juce_dsp</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_events\broadcasters\juce_ActionBroadcaster.h">
|
||||
<Filter>JUCE Modules\juce_events\broadcasters</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@
|
|||
<Optimization>Disabled</Optimization>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_REPORT_APP_USAGE=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_WASAPI=1;JUCE_DIRECTSOUND=1;JUCE_ALSA=1;JUCE_USE_FLAC=0;JUCE_USE_OGGVORBIS=0;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_AU=1;JUCE_PLUGINHOST_LADSPA=1;JUCE_USE_CDREADER=0;JUCE_USE_CDBURNER=0;JUCE_WEB_BROWSER=0;JUCE_USE_CAMERA=0;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_REPORT_APP_USAGE=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_WASAPI=1;JUCE_DIRECTSOUND=1;JUCE_ALSA=1;JUCE_USE_FLAC=0;JUCE_USE_OGGVORBIS=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_AU=1;JUCE_PLUGINHOST_LADSPA=1;JUCE_USE_CDREADER=0;JUCE_USE_CDBURNER=0;JUCE_WEB_BROWSER=0;JUCE_USE_CAMERA=0;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||
<PrecompiledHeader/>
|
||||
|
|
@ -106,7 +106,7 @@
|
|||
<ClCompile>
|
||||
<Optimization>Full</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_REPORT_APP_USAGE=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_WASAPI=1;JUCE_DIRECTSOUND=1;JUCE_ALSA=1;JUCE_USE_FLAC=0;JUCE_USE_OGGVORBIS=0;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_AU=1;JUCE_PLUGINHOST_LADSPA=1;JUCE_USE_CDREADER=0;JUCE_USE_CDBURNER=0;JUCE_WEB_BROWSER=0;JUCE_USE_CAMERA=0;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_REPORT_APP_USAGE=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_WASAPI=1;JUCE_DIRECTSOUND=1;JUCE_ALSA=1;JUCE_USE_FLAC=0;JUCE_USE_OGGVORBIS=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_AU=1;JUCE_PLUGINHOST_LADSPA=1;JUCE_USE_CDREADER=0;JUCE_USE_CDBURNER=0;JUCE_WEB_BROWSER=0;JUCE_USE_CAMERA=0;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||
<PrecompiledHeader/>
|
||||
|
|
@ -1025,6 +1025,72 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_data_structures\juce_data_structures.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\containers\juce_AudioBlock_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\containers\juce_SIMDRegister_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\filter_design\juce_FilterDesign.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_Convolution.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_FFT.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_FFT_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_Windowing.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_LogRampedValue_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_LookupTable.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_Matrix.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_Matrix_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_SpecialFunctions.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\native\juce_avx_SIMDNativeOps.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\native\juce_neon_SIMDNativeOps.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\native\juce_sse_SIMDNativeOps.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_FIRFilter.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_FIRFilter_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_IIRFilter.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_LadderFilter.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_Oversampling.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorChain_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\juce_dsp.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_events\broadcasters\juce_ActionBroadcaster.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -1919,6 +1985,7 @@
|
|||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_core.cpp"/>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_cryptography.cpp"/>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_data_structures.cpp"/>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_dsp.cpp"/>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_events.cpp"/>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_graphics.cpp"/>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_gui_basics.cpp"/>
|
||||
|
|
@ -2346,6 +2413,40 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_data_structures\values\juce_ValueTreeSynchroniser.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_data_structures\values\juce_ValueWithDefault.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_data_structures\juce_data_structures.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\containers\juce_AudioBlock.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\containers\juce_SIMDRegister.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\containers\juce_SIMDRegister_Impl.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\filter_design\juce_FilterDesign.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\frequency\juce_Convolution.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\frequency\juce_FFT.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\frequency\juce_Windowing.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_FastMathApproximations.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_LogRampedValue.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_LookupTable.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_Matrix.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_Phase.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_Polynomial.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_SpecialFunctions.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_avx_SIMDNativeOps.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_fallback_SIMDNativeOps.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_neon_SIMDNativeOps.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_sse_SIMDNativeOps.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Bias.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_FIRFilter.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Gain.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_IIRFilter.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_IIRFilter_Impl.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_LadderFilter.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Oscillator.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Oversampling.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessContext.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorChain.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorDuplicator.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorWrapper.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Reverb.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_StateVariableFilter.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_WaveShaper.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\juce_dsp.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_events\broadcasters\juce_ActionBroadcaster.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_events\broadcasters\juce_ActionListener.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_events\broadcasters\juce_AsyncUpdater.h"/>
|
||||
|
|
|
|||
|
|
@ -266,6 +266,27 @@
|
|||
<Filter Include="JUCE Modules\juce_data_structures">
|
||||
<UniqueIdentifier>{911F0159-A7A8-4A43-3FD4-154F62F4A44B}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp\containers">
|
||||
<UniqueIdentifier>{53CF03D3-988B-CD28-9130-CE08FDCEF7E9}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp\filter_design">
|
||||
<UniqueIdentifier>{29C6FE02-507E-F3FE-16CD-74D84842C1EA}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp\frequency">
|
||||
<UniqueIdentifier>{8001BD68-125B-E392-8D3B-1F9C9520A65A}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp\maths">
|
||||
<UniqueIdentifier>{EDC17061-CFA0-8EA0-0ADA-90F31C2FB0F2}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp\native">
|
||||
<UniqueIdentifier>{B813BD14-6565-2525-9AC3-E3AA48EDDA85}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp\processors">
|
||||
<UniqueIdentifier>{DDF4BA73-8578-406D-21F8-06B9BC70BFEA}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp">
|
||||
<UniqueIdentifier>{5DD60D0E-B16A-0BED-EDC4-C56E6960CA9E}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_events\broadcasters">
|
||||
<UniqueIdentifier>{9D5816C2-E2B2-2E3F-B095-AC8BD1100D29}</UniqueIdentifier>
|
||||
</Filter>
|
||||
|
|
@ -1381,6 +1402,75 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_data_structures\juce_data_structures.mm">
|
||||
<Filter>JUCE Modules\juce_data_structures</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\containers\juce_AudioBlock_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\containers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\containers\juce_SIMDRegister_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\containers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\filter_design\juce_FilterDesign.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\filter_design</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_Convolution.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_FFT.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_FFT_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_Windowing.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_LogRampedValue_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_LookupTable.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_Matrix.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_Matrix_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_SpecialFunctions.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\native\juce_avx_SIMDNativeOps.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\native\juce_neon_SIMDNativeOps.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\native\juce_sse_SIMDNativeOps.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_FIRFilter.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_FIRFilter_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_IIRFilter.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_LadderFilter.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_Oversampling.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorChain_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\juce_dsp.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\juce_dsp.mm">
|
||||
<Filter>JUCE Modules\juce_dsp</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_events\broadcasters\juce_ActionBroadcaster.cpp">
|
||||
<Filter>JUCE Modules\juce_events\broadcasters</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -2359,6 +2449,9 @@
|
|||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_data_structures.cpp">
|
||||
<Filter>JUCE Library Code</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_dsp.cpp">
|
||||
<Filter>JUCE Library Code</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_events.cpp">
|
||||
<Filter>JUCE Library Code</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -3636,6 +3729,108 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_data_structures\juce_data_structures.h">
|
||||
<Filter>JUCE Modules\juce_data_structures</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\containers\juce_AudioBlock.h">
|
||||
<Filter>JUCE Modules\juce_dsp\containers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\containers\juce_SIMDRegister.h">
|
||||
<Filter>JUCE Modules\juce_dsp\containers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\containers\juce_SIMDRegister_Impl.h">
|
||||
<Filter>JUCE Modules\juce_dsp\containers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\filter_design\juce_FilterDesign.h">
|
||||
<Filter>JUCE Modules\juce_dsp\filter_design</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\frequency\juce_Convolution.h">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\frequency\juce_FFT.h">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\frequency\juce_Windowing.h">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_FastMathApproximations.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_LogRampedValue.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_LookupTable.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_Matrix.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_Phase.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_Polynomial.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_SpecialFunctions.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_avx_SIMDNativeOps.h">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_fallback_SIMDNativeOps.h">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_neon_SIMDNativeOps.h">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_sse_SIMDNativeOps.h">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Bias.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_FIRFilter.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Gain.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_IIRFilter.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_IIRFilter_Impl.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_LadderFilter.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Oscillator.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Oversampling.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessContext.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorChain.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorDuplicator.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorWrapper.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Reverb.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_StateVariableFilter.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_WaveShaper.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\juce_dsp.h">
|
||||
<Filter>JUCE Modules\juce_dsp</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_events\broadcasters\juce_ActionBroadcaster.h">
|
||||
<Filter>JUCE Modules\juce_events\broadcasters</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@
|
|||
<Optimization>Disabled</Optimization>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_REPORT_APP_USAGE=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_WASAPI=1;JUCE_DIRECTSOUND=1;JUCE_ALSA=1;JUCE_USE_FLAC=0;JUCE_USE_OGGVORBIS=0;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_AU=1;JUCE_PLUGINHOST_LADSPA=1;JUCE_USE_CDREADER=0;JUCE_USE_CDBURNER=0;JUCE_WEB_BROWSER=0;JUCE_USE_CAMERA=0;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_REPORT_APP_USAGE=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_WASAPI=1;JUCE_DIRECTSOUND=1;JUCE_ALSA=1;JUCE_USE_FLAC=0;JUCE_USE_OGGVORBIS=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_AU=1;JUCE_PLUGINHOST_LADSPA=1;JUCE_USE_CDREADER=0;JUCE_USE_CDBURNER=0;JUCE_WEB_BROWSER=0;JUCE_USE_CAMERA=0;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||
<PrecompiledHeader/>
|
||||
|
|
@ -106,7 +106,7 @@
|
|||
<ClCompile>
|
||||
<Optimization>Full</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_REPORT_APP_USAGE=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_WASAPI=1;JUCE_DIRECTSOUND=1;JUCE_ALSA=1;JUCE_USE_FLAC=0;JUCE_USE_OGGVORBIS=0;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_AU=1;JUCE_PLUGINHOST_LADSPA=1;JUCE_USE_CDREADER=0;JUCE_USE_CDBURNER=0;JUCE_WEB_BROWSER=0;JUCE_USE_CAMERA=0;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_REPORT_APP_USAGE=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_WASAPI=1;JUCE_DIRECTSOUND=1;JUCE_ALSA=1;JUCE_USE_FLAC=0;JUCE_USE_OGGVORBIS=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_AU=1;JUCE_PLUGINHOST_LADSPA=1;JUCE_USE_CDREADER=0;JUCE_USE_CDBURNER=0;JUCE_WEB_BROWSER=0;JUCE_USE_CAMERA=0;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||
<PrecompiledHeader/>
|
||||
|
|
@ -1025,6 +1025,72 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_data_structures\juce_data_structures.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\containers\juce_AudioBlock_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\containers\juce_SIMDRegister_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\filter_design\juce_FilterDesign.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_Convolution.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_FFT.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_FFT_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_Windowing.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_LogRampedValue_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_LookupTable.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_Matrix.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_Matrix_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_SpecialFunctions.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\native\juce_avx_SIMDNativeOps.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\native\juce_neon_SIMDNativeOps.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\native\juce_sse_SIMDNativeOps.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_FIRFilter.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_FIRFilter_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_IIRFilter.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_LadderFilter.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_Oversampling.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorChain_test.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\juce_dsp.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_events\broadcasters\juce_ActionBroadcaster.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -1919,6 +1985,7 @@
|
|||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_core.cpp"/>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_cryptography.cpp"/>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_data_structures.cpp"/>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_dsp.cpp"/>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_events.cpp"/>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_graphics.cpp"/>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_gui_basics.cpp"/>
|
||||
|
|
@ -2346,6 +2413,40 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_data_structures\values\juce_ValueTreeSynchroniser.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_data_structures\values\juce_ValueWithDefault.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_data_structures\juce_data_structures.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\containers\juce_AudioBlock.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\containers\juce_SIMDRegister.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\containers\juce_SIMDRegister_Impl.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\filter_design\juce_FilterDesign.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\frequency\juce_Convolution.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\frequency\juce_FFT.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\frequency\juce_Windowing.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_FastMathApproximations.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_LogRampedValue.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_LookupTable.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_Matrix.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_Phase.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_Polynomial.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_SpecialFunctions.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_avx_SIMDNativeOps.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_fallback_SIMDNativeOps.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_neon_SIMDNativeOps.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_sse_SIMDNativeOps.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Bias.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_FIRFilter.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Gain.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_IIRFilter.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_IIRFilter_Impl.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_LadderFilter.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Oscillator.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Oversampling.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessContext.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorChain.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorDuplicator.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorWrapper.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Reverb.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_StateVariableFilter.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_WaveShaper.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\juce_dsp.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_events\broadcasters\juce_ActionBroadcaster.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_events\broadcasters\juce_ActionListener.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_events\broadcasters\juce_AsyncUpdater.h"/>
|
||||
|
|
|
|||
|
|
@ -266,6 +266,27 @@
|
|||
<Filter Include="JUCE Modules\juce_data_structures">
|
||||
<UniqueIdentifier>{911F0159-A7A8-4A43-3FD4-154F62F4A44B}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp\containers">
|
||||
<UniqueIdentifier>{53CF03D3-988B-CD28-9130-CE08FDCEF7E9}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp\filter_design">
|
||||
<UniqueIdentifier>{29C6FE02-507E-F3FE-16CD-74D84842C1EA}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp\frequency">
|
||||
<UniqueIdentifier>{8001BD68-125B-E392-8D3B-1F9C9520A65A}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp\maths">
|
||||
<UniqueIdentifier>{EDC17061-CFA0-8EA0-0ADA-90F31C2FB0F2}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp\native">
|
||||
<UniqueIdentifier>{B813BD14-6565-2525-9AC3-E3AA48EDDA85}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp\processors">
|
||||
<UniqueIdentifier>{DDF4BA73-8578-406D-21F8-06B9BC70BFEA}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_dsp">
|
||||
<UniqueIdentifier>{5DD60D0E-B16A-0BED-EDC4-C56E6960CA9E}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="JUCE Modules\juce_events\broadcasters">
|
||||
<UniqueIdentifier>{9D5816C2-E2B2-2E3F-B095-AC8BD1100D29}</UniqueIdentifier>
|
||||
</Filter>
|
||||
|
|
@ -1381,6 +1402,75 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_data_structures\juce_data_structures.mm">
|
||||
<Filter>JUCE Modules\juce_data_structures</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\containers\juce_AudioBlock_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\containers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\containers\juce_SIMDRegister_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\containers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\filter_design\juce_FilterDesign.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\filter_design</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_Convolution.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_FFT.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_FFT_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\frequency\juce_Windowing.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_LogRampedValue_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_LookupTable.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_Matrix.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_Matrix_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\maths\juce_SpecialFunctions.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\native\juce_avx_SIMDNativeOps.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\native\juce_neon_SIMDNativeOps.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\native\juce_sse_SIMDNativeOps.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_FIRFilter.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_FIRFilter_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_IIRFilter.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_LadderFilter.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_Oversampling.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorChain_test.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\juce_dsp.cpp">
|
||||
<Filter>JUCE Modules\juce_dsp</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_dsp\juce_dsp.mm">
|
||||
<Filter>JUCE Modules\juce_dsp</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_events\broadcasters\juce_ActionBroadcaster.cpp">
|
||||
<Filter>JUCE Modules\juce_events\broadcasters</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -2359,6 +2449,9 @@
|
|||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_data_structures.cpp">
|
||||
<Filter>JUCE Library Code</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_dsp.cpp">
|
||||
<Filter>JUCE Library Code</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_events.cpp">
|
||||
<Filter>JUCE Library Code</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -3636,6 +3729,108 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_data_structures\juce_data_structures.h">
|
||||
<Filter>JUCE Modules\juce_data_structures</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\containers\juce_AudioBlock.h">
|
||||
<Filter>JUCE Modules\juce_dsp\containers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\containers\juce_SIMDRegister.h">
|
||||
<Filter>JUCE Modules\juce_dsp\containers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\containers\juce_SIMDRegister_Impl.h">
|
||||
<Filter>JUCE Modules\juce_dsp\containers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\filter_design\juce_FilterDesign.h">
|
||||
<Filter>JUCE Modules\juce_dsp\filter_design</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\frequency\juce_Convolution.h">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\frequency\juce_FFT.h">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\frequency\juce_Windowing.h">
|
||||
<Filter>JUCE Modules\juce_dsp\frequency</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_FastMathApproximations.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_LogRampedValue.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_LookupTable.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_Matrix.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_Phase.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_Polynomial.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\maths\juce_SpecialFunctions.h">
|
||||
<Filter>JUCE Modules\juce_dsp\maths</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_avx_SIMDNativeOps.h">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_fallback_SIMDNativeOps.h">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_neon_SIMDNativeOps.h">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\native\juce_sse_SIMDNativeOps.h">
|
||||
<Filter>JUCE Modules\juce_dsp\native</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Bias.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_FIRFilter.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Gain.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_IIRFilter.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_IIRFilter_Impl.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_LadderFilter.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Oscillator.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Oversampling.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessContext.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorChain.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorDuplicator.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_ProcessorWrapper.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_Reverb.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_StateVariableFilter.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\processors\juce_WaveShaper.h">
|
||||
<Filter>JUCE Modules\juce_dsp\processors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_dsp\juce_dsp.h">
|
||||
<Filter>JUCE Modules\juce_dsp</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_events\broadcasters\juce_ActionBroadcaster.h">
|
||||
<Filter>JUCE Modules\juce_events\broadcasters</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -145,6 +145,10 @@
|
|||
isa = PBXBuildFile;
|
||||
fileRef = 5EF1D381F42AA8764597F189;
|
||||
};
|
||||
A5F0B3B7175766C8AF1D6C3E = {
|
||||
isa = PBXBuildFile;
|
||||
fileRef = 36689CA4EFC2AF183A0848AE;
|
||||
};
|
||||
7DE202DC1D876F49266D9E7D = {
|
||||
isa = PBXBuildFile;
|
||||
fileRef = 8290D7BAC160B3A56B66891A;
|
||||
|
|
@ -246,6 +250,13 @@
|
|||
path = System/Library/Frameworks/CoreMedia.framework;
|
||||
sourceTree = SDKROOT;
|
||||
};
|
||||
36689CA4EFC2AF183A0848AE = {
|
||||
isa = PBXFileReference;
|
||||
lastKnownFileType = sourcecode.cpp.objcpp;
|
||||
name = "include_juce_dsp.mm";
|
||||
path = "../../JuceLibraryCode/include_juce_dsp.mm";
|
||||
sourceTree = "SOURCE_ROOT";
|
||||
};
|
||||
37E4D5C341406B7072120006 = {
|
||||
isa = PBXFileReference;
|
||||
lastKnownFileType = sourcecode.cpp.objcpp;
|
||||
|
|
@ -428,6 +439,13 @@
|
|||
path = "../../JuceLibraryCode/include_juce_gui_basics.mm";
|
||||
sourceTree = "SOURCE_ROOT";
|
||||
};
|
||||
9320A145F2A8ACD687D6608E = {
|
||||
isa = PBXFileReference;
|
||||
lastKnownFileType = file;
|
||||
name = "juce_dsp";
|
||||
path = "../../../../modules/juce_dsp";
|
||||
sourceTree = "SOURCE_ROOT";
|
||||
};
|
||||
938AE72315C6C93949F6220E = {
|
||||
isa = PBXFileReference;
|
||||
lastKnownFileType = file;
|
||||
|
|
@ -679,6 +697,7 @@
|
|||
3D57FE2A8877F12A61054726,
|
||||
FA21631C5536EA3DF55C7FA6,
|
||||
B86B918291E1090C6A720971,
|
||||
9320A145F2A8ACD687D6608E,
|
||||
59842A98E5EBBC54B50C04CD,
|
||||
94CB96C8E4B51F52776C2638,
|
||||
938AE72315C6C93949F6220E,
|
||||
|
|
@ -702,6 +721,7 @@
|
|||
683CEE986A2467C850FE99E6,
|
||||
B8E24A5CEE6B7055537725CF,
|
||||
5EF1D381F42AA8764597F189,
|
||||
36689CA4EFC2AF183A0848AE,
|
||||
8290D7BAC160B3A56B66891A,
|
||||
82800DBA287EF4BAB13B42FB,
|
||||
8FE7B37CDE0818DB27BDDEBD,
|
||||
|
|
@ -808,6 +828,7 @@
|
|||
"JUCE_MODULE_AVAILABLE_juce_core=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_cryptography=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_data_structures=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_dsp=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_events=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_graphics=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_gui_basics=1",
|
||||
|
|
@ -819,7 +840,7 @@
|
|||
"JUCE_DIRECTSOUND=1",
|
||||
"JUCE_ALSA=1",
|
||||
"JUCE_USE_FLAC=0",
|
||||
"JUCE_USE_OGGVORBIS=0",
|
||||
"JUCE_USE_OGGVORBIS=1",
|
||||
"JUCE_PLUGINHOST_VST3=1",
|
||||
"JUCE_PLUGINHOST_AU=1",
|
||||
"JUCE_PLUGINHOST_LADSPA=1",
|
||||
|
|
@ -886,6 +907,7 @@
|
|||
"JUCE_MODULE_AVAILABLE_juce_core=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_cryptography=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_data_structures=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_dsp=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_events=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_graphics=1",
|
||||
"JUCE_MODULE_AVAILABLE_juce_gui_basics=1",
|
||||
|
|
@ -897,7 +919,7 @@
|
|||
"JUCE_DIRECTSOUND=1",
|
||||
"JUCE_ALSA=1",
|
||||
"JUCE_USE_FLAC=0",
|
||||
"JUCE_USE_OGGVORBIS=0",
|
||||
"JUCE_USE_OGGVORBIS=1",
|
||||
"JUCE_PLUGINHOST_VST3=1",
|
||||
"JUCE_PLUGINHOST_AU=1",
|
||||
"JUCE_PLUGINHOST_LADSPA=1",
|
||||
|
|
@ -1077,6 +1099,7 @@
|
|||
76A80851698FC773D2479B4E,
|
||||
E4A926EF695823F0F13268FF,
|
||||
A09E93F1B354E1FF8B3E9ABE,
|
||||
A5F0B3B7175766C8AF1D6C3E,
|
||||
7DE202DC1D876F49266D9E7D,
|
||||
075C54DDDBDEA5AAD2F60154,
|
||||
2C3D221D2AA87F07B3F1044D,
|
||||
|
|
|
|||
|
|
@ -48,5 +48,6 @@ target_compile_definitions(AudioPluginHost PRIVATE
|
|||
target_link_libraries(AudioPluginHost PRIVATE
|
||||
juce::juce_audio_utils
|
||||
juce::juce_cryptography
|
||||
juce::juce_dsp
|
||||
juce::juce_opengl
|
||||
juce::juce_video)
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
#include <juce_core/juce_core.h>
|
||||
#include <juce_cryptography/juce_cryptography.h>
|
||||
#include <juce_data_structures/juce_data_structures.h>
|
||||
#include <juce_dsp/juce_dsp.h>
|
||||
#include <juce_events/juce_events.h>
|
||||
#include <juce_graphics/juce_graphics.h>
|
||||
#include <juce_gui_basics/juce_gui_basics.h>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
/*
|
||||
|
||||
IMPORTANT! This file is auto-generated each time you save your
|
||||
project - if you alter its contents, your changes may be overwritten!
|
||||
|
||||
*/
|
||||
|
||||
#include <juce_dsp/juce_dsp.cpp>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
/*
|
||||
|
||||
IMPORTANT! This file is auto-generated each time you save your
|
||||
project - if you alter its contents, your changes may be overwritten!
|
||||
|
||||
*/
|
||||
|
||||
#include <juce_dsp/juce_dsp.mm>
|
||||
|
|
@ -20,109 +20,127 @@
|
|||
#include "InternalPlugins.h"
|
||||
#include "PluginGraph.h"
|
||||
|
||||
#include "../../../../examples/Plugins/AUv3SynthPluginDemo.h"
|
||||
#include "../../../../examples/Plugins/ArpeggiatorPluginDemo.h"
|
||||
#include "../../../../examples/Plugins/AudioPluginDemo.h"
|
||||
#include "../../../../examples/Plugins/DSPModulePluginDemo.h"
|
||||
#include "../../../../examples/Plugins/GainPluginDemo.h"
|
||||
#include "../../../../examples/Plugins/MidiLoggerPluginDemo.h"
|
||||
#include "../../../../examples/Plugins/MultiOutSynthPluginDemo.h"
|
||||
#include "../../../../examples/Plugins/NoiseGatePluginDemo.h"
|
||||
#include "../../../../examples/Plugins/SamplerPluginDemo.h"
|
||||
#include "../../../../examples/Plugins/SurroundPluginDemo.h"
|
||||
|
||||
//==============================================================================
|
||||
class InternalPlugin : public AudioPluginInstance
|
||||
{
|
||||
protected:
|
||||
InternalPlugin (const PluginDescription& descr,
|
||||
const AudioChannelSet& channelSetToUse = AudioChannelSet::stereo())
|
||||
: AudioPluginInstance (getBusProperties (descr.numInputChannels == 0, channelSetToUse)),
|
||||
name (descr.fileOrIdentifier.upToFirstOccurrenceOf (":", false, false)),
|
||||
state (descr.fileOrIdentifier.fromFirstOccurrenceOf (":", false, false)),
|
||||
isGenerator (descr.numInputChannels == 0),
|
||||
hasMidi (descr.isInstrument),
|
||||
channelSet (channelSetToUse)
|
||||
{
|
||||
jassert (channelSetToUse.size() == descr.numOutputChannels);
|
||||
}
|
||||
|
||||
public:
|
||||
//==============================================================================
|
||||
const String getName() const override { return name; }
|
||||
double getTailLengthSeconds() const override { return 0.0; }
|
||||
bool acceptsMidi() const override { return hasMidi; }
|
||||
bool producesMidi() const override { return hasMidi; }
|
||||
AudioProcessorEditor* createEditor() override { return nullptr; }
|
||||
bool hasEditor() const override { return false; }
|
||||
int getNumPrograms() override { return 0; }
|
||||
int getCurrentProgram() override { return 0; }
|
||||
void setCurrentProgram (int) override {}
|
||||
const String getProgramName (int) override { return {}; }
|
||||
void changeProgramName (int, const String&) override {}
|
||||
void getStateInformation (juce::MemoryBlock&) override {}
|
||||
void setStateInformation (const void*, int) override {}
|
||||
|
||||
//==============================================================================
|
||||
bool isBusesLayoutSupported (const BusesLayout& layout) const override
|
||||
explicit InternalPlugin (std::unique_ptr<AudioProcessor> innerIn)
|
||||
: inner (std::move (innerIn))
|
||||
{
|
||||
if (! isGenerator)
|
||||
if (layout.getMainOutputChannelSet() != channelSet)
|
||||
return false;
|
||||
jassert (inner != nullptr);
|
||||
|
||||
if (layout.getMainInputChannelSet() != channelSet)
|
||||
return false;
|
||||
for (auto isInput : { true, false })
|
||||
matchChannels (isInput);
|
||||
|
||||
return true;
|
||||
setBusesLayout (inner->getBusesLayout());
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
const String getName() const override { return inner->getName(); }
|
||||
StringArray getAlternateDisplayNames() const override { return inner->getAlternateDisplayNames(); }
|
||||
double getTailLengthSeconds() const override { return inner->getTailLengthSeconds(); }
|
||||
bool acceptsMidi() const override { return inner->acceptsMidi(); }
|
||||
bool producesMidi() const override { return inner->producesMidi(); }
|
||||
AudioProcessorEditor* createEditor() override { return inner->createEditor(); }
|
||||
bool hasEditor() const override { return inner->hasEditor(); }
|
||||
int getNumPrograms() override { return inner->getNumPrograms(); }
|
||||
int getCurrentProgram() override { return inner->getCurrentProgram(); }
|
||||
void setCurrentProgram (int i) override { inner->setCurrentProgram (i); }
|
||||
const String getProgramName (int i) override { return inner->getProgramName (i); }
|
||||
void changeProgramName (int i, const String& n) override { inner->changeProgramName (i, n); }
|
||||
void getStateInformation (juce::MemoryBlock& b) override { inner->getStateInformation (b); }
|
||||
void setStateInformation (const void* d, int s) override { inner->setStateInformation (d, s); }
|
||||
void getCurrentProgramStateInformation (juce::MemoryBlock& b) override { inner->getCurrentProgramStateInformation (b); }
|
||||
void setCurrentProgramStateInformation (const void* d, int s) override { inner->setCurrentProgramStateInformation (d, s); }
|
||||
void prepareToPlay (double sr, int bs) override { inner->setRateAndBufferSizeDetails (sr, bs); inner->prepareToPlay (sr, bs); }
|
||||
void releaseResources() override { inner->releaseResources(); }
|
||||
void memoryWarningReceived() override { inner->memoryWarningReceived(); }
|
||||
void processBlock (AudioBuffer<float>& a, MidiBuffer& m) override { inner->processBlock (a, m); }
|
||||
void processBlock (AudioBuffer<double>& a, MidiBuffer& m) override { inner->processBlock (a, m); }
|
||||
void processBlockBypassed (AudioBuffer<float>& a, MidiBuffer& m) override { inner->processBlockBypassed (a, m); }
|
||||
void processBlockBypassed (AudioBuffer<double>& a, MidiBuffer& m) override { inner->processBlockBypassed (a, m); }
|
||||
bool supportsDoublePrecisionProcessing() const override { return inner->supportsDoublePrecisionProcessing(); }
|
||||
bool supportsMPE() const override { return inner->supportsMPE(); }
|
||||
bool isMidiEffect() const override { return inner->isMidiEffect(); }
|
||||
void reset() override { inner->reset(); }
|
||||
void setNonRealtime (bool b) noexcept override { inner->setNonRealtime (b); }
|
||||
void refreshParameterList() override { inner->refreshParameterList(); }
|
||||
void numChannelsChanged() override { inner->numChannelsChanged(); }
|
||||
void numBusesChanged() override { inner->numBusesChanged(); }
|
||||
void processorLayoutsChanged() override { inner->processorLayoutsChanged(); }
|
||||
void setPlayHead (AudioPlayHead* p) override { inner->setPlayHead (p); }
|
||||
void updateTrackProperties (const TrackProperties& p) override { inner->updateTrackProperties (p); }
|
||||
bool isBusesLayoutSupported (const BusesLayout& layout) const override { return inner->checkBusesLayoutSupported (layout); }
|
||||
|
||||
bool canAddBus (bool) const override { return true; }
|
||||
bool canRemoveBus (bool) const override { return true; }
|
||||
|
||||
//==============================================================================
|
||||
void fillInPluginDescription (PluginDescription& description) const override
|
||||
{
|
||||
description = getPluginDescription (name + ":" + state,
|
||||
isGenerator,
|
||||
hasMidi,
|
||||
channelSet);
|
||||
description = getPluginDescription (*inner);
|
||||
}
|
||||
|
||||
static PluginDescription getPluginDescription (const String& identifier,
|
||||
bool registerAsGenerator,
|
||||
bool acceptsMidi,
|
||||
const AudioChannelSet& channelSetToUse
|
||||
= AudioChannelSet::stereo())
|
||||
private:
|
||||
static PluginDescription getPluginDescription (const AudioProcessor& proc)
|
||||
{
|
||||
PluginDescription descr;
|
||||
auto pluginName = identifier.upToFirstOccurrenceOf (":", false, false);
|
||||
auto pluginState = identifier.fromFirstOccurrenceOf (":", false, false);
|
||||
const auto ins = proc.getTotalNumInputChannels();
|
||||
const auto outs = proc.getTotalNumOutputChannels();
|
||||
const auto identifier = proc.getName();
|
||||
const auto registerAsGenerator = ins == 0;
|
||||
const auto acceptsMidi = proc.acceptsMidi();
|
||||
|
||||
descr.name = pluginName;
|
||||
descr.descriptiveName = pluginName;
|
||||
descr.pluginFormatName = "Internal";
|
||||
PluginDescription descr;
|
||||
|
||||
descr.name = identifier;
|
||||
descr.descriptiveName = identifier;
|
||||
descr.pluginFormatName = InternalPluginFormat::getIdentifier();
|
||||
descr.category = (registerAsGenerator ? (acceptsMidi ? "Synth" : "Generator") : "Effect");
|
||||
descr.manufacturerName = "JUCE";
|
||||
descr.version = ProjectInfo::versionString;
|
||||
descr.fileOrIdentifier = pluginName + ":" + pluginState;
|
||||
descr.uid = pluginName.hashCode();
|
||||
descr.fileOrIdentifier = identifier;
|
||||
descr.uid = identifier.hashCode();
|
||||
descr.isInstrument = (acceptsMidi && registerAsGenerator);
|
||||
descr.numInputChannels = (registerAsGenerator ? 0 : channelSetToUse.size());
|
||||
descr.numOutputChannels = channelSetToUse.size();
|
||||
descr.numInputChannels = ins;
|
||||
descr.numOutputChannels = outs;
|
||||
|
||||
return descr;
|
||||
}
|
||||
private:
|
||||
static BusesProperties getBusProperties (bool registerAsGenerator,
|
||||
const AudioChannelSet& channelSetToUse)
|
||||
|
||||
void matchChannels (bool isInput)
|
||||
{
|
||||
return registerAsGenerator ? BusesProperties().withOutput ("Output", channelSetToUse)
|
||||
: BusesProperties().withInput ("Input", channelSetToUse)
|
||||
.withOutput ("Output", channelSetToUse);
|
||||
const auto inBuses = inner->getBusCount (isInput);
|
||||
|
||||
while (getBusCount (isInput) < inBuses)
|
||||
addBus (isInput);
|
||||
|
||||
while (inBuses < getBusCount (isInput))
|
||||
removeBus (isInput);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
String name, state;
|
||||
bool isGenerator, hasMidi;
|
||||
AudioChannelSet channelSet;
|
||||
std::unique_ptr<AudioProcessor> inner;
|
||||
|
||||
//==============================================================================
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (InternalPlugin)
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
class SineWaveSynth : public InternalPlugin
|
||||
class SineWaveSynth : public AudioProcessor
|
||||
{
|
||||
public:
|
||||
SineWaveSynth (const PluginDescription& descr) : InternalPlugin (descr)
|
||||
SineWaveSynth()
|
||||
: AudioProcessor (BusesProperties().withOutput ("Output", AudioChannelSet::stereo()))
|
||||
{
|
||||
const int numVoices = 8;
|
||||
|
||||
|
|
@ -139,11 +157,6 @@ public:
|
|||
return "Sine Wave Synth";
|
||||
}
|
||||
|
||||
static PluginDescription getPluginDescription()
|
||||
{
|
||||
return InternalPlugin::getPluginDescription (getIdentifier(), true, true);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void prepareToPlay (double newSampleRate, int) override
|
||||
{
|
||||
|
|
@ -162,7 +175,21 @@ public:
|
|||
buffer.applyGain (0.8f);
|
||||
}
|
||||
|
||||
using InternalPlugin::processBlock;
|
||||
using AudioProcessor::processBlock;
|
||||
|
||||
const String getName() const override { return getIdentifier(); }
|
||||
double getTailLengthSeconds() const override { return 0.0; }
|
||||
bool acceptsMidi() const override { return true; }
|
||||
bool producesMidi() const override { return true; }
|
||||
AudioProcessorEditor* createEditor() override { return nullptr; }
|
||||
bool hasEditor() const override { return false; }
|
||||
int getNumPrograms() override { return 1; }
|
||||
int getCurrentProgram() override { return 0; }
|
||||
void setCurrentProgram (int) override {}
|
||||
const String getProgramName (int) override { return {}; }
|
||||
void changeProgramName (int, const String&) override {}
|
||||
void getStateInformation (juce::MemoryBlock&) override {}
|
||||
void setStateInformation (const void*, int) override {}
|
||||
|
||||
private:
|
||||
//==============================================================================
|
||||
|
|
@ -285,10 +312,12 @@ private:
|
|||
};
|
||||
|
||||
//==============================================================================
|
||||
class ReverbPlugin : public InternalPlugin
|
||||
class ReverbPlugin : public AudioProcessor
|
||||
{
|
||||
public:
|
||||
ReverbPlugin (const PluginDescription& descr) : InternalPlugin (descr)
|
||||
ReverbPlugin()
|
||||
: AudioProcessor (BusesProperties().withInput ("Input", AudioChannelSet::stereo())
|
||||
.withOutput ("Output", AudioChannelSet::stereo()))
|
||||
{}
|
||||
|
||||
static String getIdentifier()
|
||||
|
|
@ -296,11 +325,6 @@ public:
|
|||
return "Reverb";
|
||||
}
|
||||
|
||||
static PluginDescription getPluginDescription()
|
||||
{
|
||||
return InternalPlugin::getPluginDescription (getIdentifier(), false, false);
|
||||
}
|
||||
|
||||
void prepareToPlay (double newSampleRate, int) override
|
||||
{
|
||||
reverb.setSampleRate (newSampleRate);
|
||||
|
|
@ -328,53 +352,82 @@ public:
|
|||
buffer.clear (ch, 0, buffer.getNumSamples());
|
||||
}
|
||||
|
||||
using InternalPlugin::processBlock;
|
||||
using AudioProcessor::processBlock;
|
||||
|
||||
const String getName() const override { return getIdentifier(); }
|
||||
double getTailLengthSeconds() const override { return 0.0; }
|
||||
bool acceptsMidi() const override { return false; }
|
||||
bool producesMidi() const override { return false; }
|
||||
AudioProcessorEditor* createEditor() override { return nullptr; }
|
||||
bool hasEditor() const override { return false; }
|
||||
int getNumPrograms() override { return 1; }
|
||||
int getCurrentProgram() override { return 0; }
|
||||
void setCurrentProgram (int) override {}
|
||||
const String getProgramName (int) override { return {}; }
|
||||
void changeProgramName (int, const String&) override {}
|
||||
void getStateInformation (juce::MemoryBlock&) override {}
|
||||
void setStateInformation (const void*, int) override {}
|
||||
|
||||
private:
|
||||
Reverb reverb;
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
InternalPluginFormat::InternalPluginFormat()
|
||||
|
||||
InternalPluginFormat::InternalPluginFactory::InternalPluginFactory (const std::initializer_list<Constructor>& constructorsIn)
|
||||
: constructors (constructorsIn),
|
||||
descriptions ([&]
|
||||
{
|
||||
std::vector<PluginDescription> result;
|
||||
|
||||
for (const auto& constructor : constructors)
|
||||
result.push_back (constructor()->getPluginDescription());
|
||||
|
||||
return result;
|
||||
}())
|
||||
{}
|
||||
|
||||
std::unique_ptr<AudioPluginInstance> InternalPluginFormat::InternalPluginFactory::createInstance (const String& name) const
|
||||
{
|
||||
{
|
||||
AudioProcessorGraph::AudioGraphIOProcessor p (AudioProcessorGraph::AudioGraphIOProcessor::audioOutputNode);
|
||||
p.fillInPluginDescription (audioOutDesc);
|
||||
}
|
||||
const auto begin = descriptions.begin();
|
||||
const auto it = std::find_if (begin,
|
||||
descriptions.end(),
|
||||
[&] (const PluginDescription& desc) { return name == desc.name; });
|
||||
|
||||
{
|
||||
AudioProcessorGraph::AudioGraphIOProcessor p (AudioProcessorGraph::AudioGraphIOProcessor::audioInputNode);
|
||||
p.fillInPluginDescription (audioInDesc);
|
||||
}
|
||||
if (it == descriptions.end())
|
||||
return nullptr;
|
||||
|
||||
{
|
||||
AudioProcessorGraph::AudioGraphIOProcessor p (AudioProcessorGraph::AudioGraphIOProcessor::midiInputNode);
|
||||
p.fillInPluginDescription (midiInDesc);
|
||||
}
|
||||
const auto index = (size_t) std::distance (begin, it);
|
||||
return constructors[index]();
|
||||
}
|
||||
|
||||
{
|
||||
AudioProcessorGraph::AudioGraphIOProcessor p (AudioProcessorGraph::AudioGraphIOProcessor::midiOutputNode);
|
||||
p.fillInPluginDescription (midiOutDesc);
|
||||
}
|
||||
InternalPluginFormat::InternalPluginFormat()
|
||||
: factory {
|
||||
[] { return std::make_unique<AudioProcessorGraph::AudioGraphIOProcessor> (AudioProcessorGraph::AudioGraphIOProcessor::audioInputNode); },
|
||||
[] { return std::make_unique<AudioProcessorGraph::AudioGraphIOProcessor> (AudioProcessorGraph::AudioGraphIOProcessor::midiInputNode); },
|
||||
[] { return std::make_unique<AudioProcessorGraph::AudioGraphIOProcessor> (AudioProcessorGraph::AudioGraphIOProcessor::audioOutputNode); },
|
||||
[] { return std::make_unique<AudioProcessorGraph::AudioGraphIOProcessor> (AudioProcessorGraph::AudioGraphIOProcessor::midiOutputNode); },
|
||||
|
||||
{
|
||||
MidiLoggerPluginDemoProcessor p;
|
||||
p.fillInPluginDescription (midiMonitorDesc);
|
||||
[] { return std::make_unique<InternalPlugin> (std::make_unique<SineWaveSynth>()); },
|
||||
[] { return std::make_unique<InternalPlugin> (std::make_unique<ReverbPlugin>()); },
|
||||
|
||||
[] { return std::make_unique<InternalPlugin> (std::make_unique<AUv3SynthProcessor>()); },
|
||||
[] { return std::make_unique<InternalPlugin> (std::make_unique<Arpeggiator>()); },
|
||||
[] { return std::make_unique<InternalPlugin> (std::make_unique<DspModulePluginDemoAudioProcessor>()); },
|
||||
[] { return std::make_unique<InternalPlugin> (std::make_unique<GainProcessor>()); },
|
||||
[] { return std::make_unique<InternalPlugin> (std::make_unique<JuceDemoPluginAudioProcessor>()); },
|
||||
[] { return std::make_unique<InternalPlugin> (std::make_unique<MidiLoggerPluginDemoProcessor>()); },
|
||||
[] { return std::make_unique<InternalPlugin> (std::make_unique<MultiOutSynth>()); },
|
||||
[] { return std::make_unique<InternalPlugin> (std::make_unique<NoiseGate>()); },
|
||||
[] { return std::make_unique<InternalPlugin> (std::make_unique<SamplerAudioProcessor>()); },
|
||||
[] { return std::make_unique<InternalPlugin> (std::make_unique<SurroundProcessor>()); }
|
||||
}
|
||||
{
|
||||
}
|
||||
|
||||
std::unique_ptr<AudioPluginInstance> InternalPluginFormat::createInstance (const String& name)
|
||||
{
|
||||
if (name == audioOutDesc.name) return std::make_unique<AudioProcessorGraph::AudioGraphIOProcessor> (AudioProcessorGraph::AudioGraphIOProcessor::audioOutputNode);
|
||||
if (name == audioInDesc.name) return std::make_unique<AudioProcessorGraph::AudioGraphIOProcessor> (AudioProcessorGraph::AudioGraphIOProcessor::audioInputNode);
|
||||
if (name == midiInDesc.name) return std::make_unique<AudioProcessorGraph::AudioGraphIOProcessor> (AudioProcessorGraph::AudioGraphIOProcessor::midiInputNode);
|
||||
if (name == midiOutDesc.name) return std::make_unique<AudioProcessorGraph::AudioGraphIOProcessor> (AudioProcessorGraph::AudioGraphIOProcessor::midiOutputNode);
|
||||
if (name == midiMonitorDesc.name) return std::make_unique<MidiLoggerPluginDemoProcessor>();
|
||||
|
||||
if (name == SineWaveSynth::getIdentifier()) return std::make_unique<SineWaveSynth> (SineWaveSynth::getPluginDescription());
|
||||
if (name == ReverbPlugin::getIdentifier()) return std::make_unique<ReverbPlugin> (ReverbPlugin::getPluginDescription());
|
||||
|
||||
return {};
|
||||
return factory.createInstance (name);
|
||||
}
|
||||
|
||||
void InternalPluginFormat::createPluginInstance (const PluginDescription& desc,
|
||||
|
|
@ -392,13 +445,7 @@ bool InternalPluginFormat::requiresUnblockedMessageThreadDuringCreation (const P
|
|||
return false;
|
||||
}
|
||||
|
||||
Array<PluginDescription> InternalPluginFormat::getAllTypes() const
|
||||
const std::vector<PluginDescription>& InternalPluginFormat::getAllTypes() const
|
||||
{
|
||||
return { audioInDesc,
|
||||
audioOutDesc,
|
||||
midiInDesc,
|
||||
midiOutDesc,
|
||||
midiMonitorDesc,
|
||||
SineWaveSynth::getPluginDescription(),
|
||||
ReverbPlugin::getPluginDescription() };
|
||||
return factory.getDescriptions();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,11 +32,11 @@ public:
|
|||
InternalPluginFormat();
|
||||
|
||||
//==============================================================================
|
||||
PluginDescription audioInDesc, audioOutDesc, midiInDesc, midiOutDesc, midiMonitorDesc;
|
||||
Array<PluginDescription> getAllTypes() const;
|
||||
const std::vector<PluginDescription>& getAllTypes() const;
|
||||
|
||||
//==============================================================================
|
||||
String getName() const override { return "Internal"; }
|
||||
static String getIdentifier() { return "Internal"; }
|
||||
String getName() const override { return getIdentifier(); }
|
||||
bool fileMightContainThisPluginType (const String&) override { return true; }
|
||||
FileSearchPath getDefaultLocationsToSearch() override { return {}; }
|
||||
bool canScanForPlugins() const override { return false; }
|
||||
|
|
@ -48,6 +48,22 @@ public:
|
|||
StringArray searchPathsForPlugins (const FileSearchPath&, bool, bool) override { return {}; }
|
||||
|
||||
private:
|
||||
class InternalPluginFactory
|
||||
{
|
||||
public:
|
||||
using Constructor = std::function<std::unique_ptr<AudioPluginInstance>()>;
|
||||
|
||||
explicit InternalPluginFactory (const std::initializer_list<Constructor>& constructorsIn);
|
||||
|
||||
const std::vector<PluginDescription>& getDescriptions() const { return descriptions; }
|
||||
|
||||
std::unique_ptr<AudioPluginInstance> createInstance (const String& name) const;
|
||||
|
||||
private:
|
||||
const std::vector<Constructor> constructors;
|
||||
const std::vector<PluginDescription> descriptions;
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
void createPluginInstance (const PluginDescription&,
|
||||
double initialSampleRate, int initialBufferSize,
|
||||
|
|
@ -56,4 +72,6 @@ private:
|
|||
std::unique_ptr<AudioPluginInstance> createInstance (const String& name);
|
||||
|
||||
bool requiresUnblockedMessageThreadDuringCreation (const PluginDescription&) const override;
|
||||
|
||||
InternalPluginFactory factory;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -191,10 +191,12 @@ void PluginGraph::newDocument()
|
|||
|
||||
InternalPluginFormat internalFormat;
|
||||
|
||||
addPlugin (internalFormat.audioInDesc, { 0.5, 0.1 });
|
||||
addPlugin (internalFormat.midiInDesc, { 0.25, 0.1 });
|
||||
addPlugin (internalFormat.audioOutDesc, { 0.5, 0.9 });
|
||||
addPlugin (internalFormat.midiOutDesc, { 0.25, 0.9 });
|
||||
jassert (internalFormat.getAllTypes().size() > 3);
|
||||
|
||||
addPlugin (internalFormat.getAllTypes()[0], { 0.5, 0.1 });
|
||||
addPlugin (internalFormat.getAllTypes()[1], { 0.25, 0.1 });
|
||||
addPlugin (internalFormat.getAllTypes()[2], { 0.5, 0.9 });
|
||||
addPlugin (internalFormat.getAllTypes()[3], { 0.25, 0.9 });
|
||||
|
||||
MessageManager::callAsync ([this]
|
||||
{
|
||||
|
|
|
|||
|
|
@ -363,20 +363,26 @@ void MainHostWindow::addPluginsToMenu (PopupMenu& m)
|
|||
int i = 0;
|
||||
|
||||
for (auto& t : internalTypes)
|
||||
m.addItem (++i, t.name + " (" + t.pluginFormatName + ")",
|
||||
graphHolder->graph->getNodeForName (t.name) == nullptr);
|
||||
m.addItem (++i, t.name + " (" + t.pluginFormatName + ")");
|
||||
}
|
||||
|
||||
m.addSeparator();
|
||||
|
||||
pluginDescriptions = knownPluginList.getTypes();
|
||||
KnownPluginList::addToMenu (m, pluginDescriptions, pluginSortMethod);
|
||||
auto pluginDescriptionsToShow = knownPluginList.getTypes();
|
||||
|
||||
// This avoids showing the internal types again later on in the list
|
||||
pluginDescriptionsToShow.removeIf ([] (PluginDescription& desc)
|
||||
{
|
||||
return desc.pluginFormatName == InternalPluginFormat::getIdentifier();
|
||||
});
|
||||
|
||||
KnownPluginList::addToMenu (m, pluginDescriptionsToShow, pluginSortMethod);
|
||||
}
|
||||
|
||||
PluginDescription MainHostWindow::getChosenType (const int menuID) const
|
||||
{
|
||||
if (menuID >= 1 && menuID < 1 + internalTypes.size())
|
||||
return internalTypes [menuID - 1];
|
||||
if (menuID >= 1 && menuID < (int) (1 + internalTypes.size()))
|
||||
return internalTypes[(size_t) (menuID - 1)];
|
||||
|
||||
return pluginDescriptions[KnownPluginList::getIndexChosenByMenu (pluginDescriptions, menuID)];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ private:
|
|||
AudioDeviceManager deviceManager;
|
||||
AudioPluginFormatManager formatManager;
|
||||
|
||||
Array<PluginDescription> internalTypes;
|
||||
std::vector<PluginDescription> internalTypes;
|
||||
KnownPluginList knownPluginList;
|
||||
KnownPluginList::SortMethod pluginSortMethod;
|
||||
Array<PluginDescription> pluginDescriptions;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue