Sorry it took me longer than I expected to get around to this.
I’m getting errors trying to build Cabbage as you described; I managed to fix some of them but I’m stuck on this:
Compiling AudioGraph.cpp
../../Source/Audio/Graph/AudioGraph.cpp: In member function ‘void AudioGraph::setDefaultConnections(int)’:
../../Source/Audio/Graph/AudioGraph.cpp:228:103: error: no matching function for call to ‘juce::AudioProcessorGraph::addConnection(int, int, int&, int)’
bool connectInput1 = graph.addConnection (internalNodeIds[InternalNodes::AudioInput], 0, nodeID, 0);
^
In file included from ../../JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h:116,
from ../../JuceLibraryCode/../JuceLibraryCode/JuceHeader.h:20,
from ../../Source/Audio/Graph/AudioGraph.h:23,
from ../../Source/Audio/Graph/AudioGraph.cpp:20:
../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h:243:10: note: candidate: ‘bool juce::AudioProcessorGraph::addConnection(const juce::AudioProcessorGraph::Connection&)’
bool addConnection (const Connection&);
^~~~~~~~~~~~~
../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h:243:10: note: candidate expects 1 argument, 4 provided
../../Source/Audio/Graph/AudioGraph.cpp:229:103: error: no matching function for call to ‘juce::AudioProcessorGraph::addConnection(int, int, int&, int)’
bool connectInput2 = graph.addConnection (internalNodeIds[InternalNodes::AudioInput], 1, nodeID, 1);
^
In file included from ../../JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h:116,
from ../../JuceLibraryCode/../JuceLibraryCode/JuceHeader.h:20,
from ../../Source/Audio/Graph/AudioGraph.h:23,
from ../../Source/Audio/Graph/AudioGraph.cpp:20:
../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h:243:10: note: candidate: ‘bool juce::AudioProcessorGraph::addConnection(const juce::AudioProcessorGraph::Connection&)’
bool addConnection (const Connection&);
^~~~~~~~~~~~~
../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h:243:10: note: candidate expects 1 argument, 4 provided
../../Source/Audio/Graph/AudioGraph.cpp:231:102: error: no matching function for call to ‘juce::AudioProcessorGraph::addConnection(int&, int, int, int)’
bool connection1 = graph.addConnection (nodeID, 0, internalNodeIds[InternalNodes::AudioOutput], 0);
^
In file included from ../../JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h:116,
from ../../JuceLibraryCode/../JuceLibraryCode/JuceHeader.h:20,
from ../../Source/Audio/Graph/AudioGraph.h:23,
from ../../Source/Audio/Graph/AudioGraph.cpp:20:
../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h:243:10: note: candidate: ‘bool juce::AudioProcessorGraph::addConnection(const juce::AudioProcessorGraph::Connection&)’
bool addConnection (const Connection&);
^~~~~~~~~~~~~
../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h:243:10: note: candidate expects 1 argument, 4 provided
../../Source/Audio/Graph/AudioGraph.cpp:232:102: error: no matching function for call to ‘juce::AudioProcessorGraph::addConnection(int&, int, int, int)’
bool connection2 = graph.addConnection (nodeID, 1, internalNodeIds[InternalNodes::AudioOutput], 1);
^
In file included from ../../JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h:116,
from ../../JuceLibraryCode/../JuceLibraryCode/JuceHeader.h:20,
from ../../Source/Audio/Graph/AudioGraph.h:23,
from ../../Source/Audio/Graph/AudioGraph.cpp:20:
../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h:243:10: note: candidate: ‘bool juce::AudioProcessorGraph::addConnection(const juce::AudioProcessorGraph::Connection&)’
bool addConnection (const Connection&);
^~~~~~~~~~~~~
../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h:243:10: note: candidate expects 1 argument, 4 provided
../../Source/Audio/Graph/AudioGraph.cpp:237:172: error: no matching function for call to ‘juce::AudioProcessorGraph::addConnection(int, juce::AudioProcessorGraph::<unnamed enum>, int&, juce::AudioProcessorGraph::<unnamed enum>)’
bool connection3 = graph.addConnection (internalNodeIds[InternalNodes::MIDIInput], AudioProcessorGraph::midiChannelIndex, nodeID, AudioProcessorGraph::midiChannelIndex);
^
In file included from ../../JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h:116,
from ../../JuceLibraryCode/../JuceLibraryCode/JuceHeader.h:20,
from ../../Source/Audio/Graph/AudioGraph.h:23,
from ../../Source/Audio/Graph/AudioGraph.cpp:20:
../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h:243:10: note: candidate: ‘bool juce::AudioProcessorGraph::addConnection(const juce::AudioProcessorGraph::Connection&)’
bool addConnection (const Connection&);
^~~~~~~~~~~~~
../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h:243:10: note: candidate expects 1 argument, 4 provided
../../Source/Audio/Graph/AudioGraph.cpp: In member function ‘int AudioGraph::getNumConnections() const’:
../../Source/Audio/Graph/AudioGraph.cpp:385:18: error: ‘const class juce::AudioProcessorGraph’ has no member named ‘getNumConnections’; did you mean ‘getConnections’?
return graph.getNumConnections();
^~~~~~~~~~~~~~~~~
getConnections
../../Source/Audio/Graph/AudioGraph.cpp: In member function ‘const juce::AudioProcessorGraph::Connection* AudioGraph::getConnection(int) const’:
../../Source/Audio/Graph/AudioGraph.cpp:390:18: error: ‘const class juce::AudioProcessorGraph’ has no member named ‘getConnection’; did you mean ‘getConnections’?
return graph.getConnection (index);
^~~~~~~~~~~~~
getConnections
../../Source/Audio/Graph/AudioGraph.cpp: In member function ‘const juce::AudioProcessorGraph::Connection* AudioGraph::getConnectionBetween(uint32, int, uint32, int) const’:
../../Source/Audio/Graph/AudioGraph.cpp:396:18: error: ‘const class juce::AudioProcessorGraph’ has no member named ‘getConnectionBetween’; did you mean ‘getConnections’?
return graph.getConnectionBetween (sourceFilterUID, sourceFilterChannel,
^~~~~~~~~~~~~~~~~~~~
getConnections
../../Source/Audio/Graph/AudioGraph.cpp: In member function ‘bool AudioGraph::canConnect(uint32, int, uint32, int) const’:
../../Source/Audio/Graph/AudioGraph.cpp:404:62: error: ‘bool juce::AudioProcessorGraph::canConnect(juce::AudioProcessorGraph::Node*, int, juce::AudioProcessorGraph::Node*, int) const’ is private within this context
destFilterUID, destFilterChannel);
^
In file included from ../../JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h:116,
from ../../JuceLibraryCode/../JuceLibraryCode/JuceHeader.h:20,
from ../../Source/Audio/Graph/AudioGraph.h:23,
from ../../Source/Audio/Graph/AudioGraph.cpp:20:
../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h:397:10: note: declared private here
bool canConnect (Node* src, int sourceChannel, Node* dest, int destChannel) const noexcept;
^~~~~~~~~~
../../Source/Audio/Graph/AudioGraph.cpp:403:30: error: invalid conversion from ‘uint32’ {aka ‘unsigned int’} to ‘juce::AudioProcessorGraph::Node*’ [-fpermissive]
return graph.canConnect (sourceFilterUID, sourceFilterChannel,
^~~~~~~~~~~~~~~
In file included from ../../JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h:116,
from ../../JuceLibraryCode/../JuceLibraryCode/JuceHeader.h:20,
from ../../Source/Audio/Graph/AudioGraph.h:23,
from ../../Source/Audio/Graph/AudioGraph.cpp:20:
../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h:397:28: note: initializing argument 1 of ‘bool juce::AudioProcessorGraph::canConnect(juce::AudioProcessorGraph::Node*, int, juce::AudioProcessorGraph::Node*, int) const’
bool canConnect (Node* src, int sourceChannel, Node* dest, int destChannel) const noexcept;
~~~~~~^~~
../../Source/Audio/Graph/AudioGraph.cpp:404:30: error: invalid conversion from ‘uint32’ {aka ‘unsigned int’} to ‘juce::AudioProcessorGraph::Node*’ [-fpermissive]
destFilterUID, destFilterChannel);
^~~~~~~~~~~~~
In file included from ../../JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h:116,
from ../../JuceLibraryCode/../JuceLibraryCode/JuceHeader.h:20,
from ../../Source/Audio/Graph/AudioGraph.h:23,
from ../../Source/Audio/Graph/AudioGraph.cpp:20:
../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h:397:58: note: initializing argument 3 of ‘bool juce::AudioProcessorGraph::canConnect(juce::AudioProcessorGraph::Node*, int, juce::AudioProcessorGraph::Node*, int) const’
bool canConnect (Node* src, int sourceChannel, Node* dest, int destChannel) const noexcept;
~~~~~~^~~~
../../Source/Audio/Graph/AudioGraph.cpp: In member function ‘bool AudioGraph::addConnection(uint32, int, uint32, int)’:
../../Source/Audio/Graph/AudioGraph.cpp:411:78: error: no matching function for call to ‘juce::AudioProcessorGraph::addConnection(uint32&, int&, uint32&, int&)’
destFilterUID, destFilterChannel);
^
In file included from ../../JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h:116,
from ../../JuceLibraryCode/../JuceLibraryCode/JuceHeader.h:20,
from ../../Source/Audio/Graph/AudioGraph.h:23,
from ../../Source/Audio/Graph/AudioGraph.cpp:20:
../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h:243:10: note: candidate: ‘bool juce::AudioProcessorGraph::addConnection(const juce::AudioProcessorGraph::Connection&)’
bool addConnection (const Connection&);
^~~~~~~~~~~~~
../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h:243:10: note: candidate expects 1 argument, 4 provided
../../Source/Audio/Graph/AudioGraph.cpp: In member function ‘void AudioGraph::removeConnection(int)’:
../../Source/Audio/Graph/AudioGraph.cpp:450:34: error: no matching function for call to ‘juce::AudioProcessorGraph::removeConnection(const int&)’
graph.removeConnection (index);
^
In file included from ../../JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h:116,
from ../../JuceLibraryCode/../JuceLibraryCode/JuceHeader.h:20,
from ../../Source/Audio/Graph/AudioGraph.h:23,
from ../../Source/Audio/Graph/AudioGraph.cpp:20:
../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h:246:10: note: candidate: ‘bool juce::AudioProcessorGraph::removeConnection(const juce::AudioProcessorGraph::Connection&)’
bool removeConnection (const Connection&);
^~~~~~~~~~~~~~~~
../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h:246:10: note: no known conversion for argument 1 from ‘const int’ to ‘const juce::AudioProcessorGraph::Connection&’
../../Source/Audio/Graph/AudioGraph.cpp: In member function ‘void AudioGraph::removeConnection(uint32, int, uint32, int)’:
../../Source/Audio/Graph/AudioGraph.cpp:458:65: error: no matching function for call to ‘juce::AudioProcessorGraph::removeConnection(uint32&, int&, uint32&, int&)’
destFilterUID, destFilterChannel))
^
In file included from ../../JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h:116,
from ../../JuceLibraryCode/../JuceLibraryCode/JuceHeader.h:20,
from ../../Source/Audio/Graph/AudioGraph.h:23,
from ../../Source/Audio/Graph/AudioGraph.cpp:20:
../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h:246:10: note: candidate: ‘bool juce::AudioProcessorGraph::removeConnection(const juce::AudioProcessorGraph::Connection&)’
bool removeConnection (const Connection&);
^~~~~~~~~~~~~~~~
../../JuceLibraryCode/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h:246:10: note: candidate expects 1 argument, 4 provided
../../Source/Audio/Graph/AudioGraph.cpp: In member function ‘juce::XmlElement* AudioGraph::createXml() const’:
../../Source/Audio/Graph/AudioGraph.cpp:644:31: error: ‘const class juce::AudioProcessorGraph’ has no member named ‘getNumConnections’; did you mean ‘getConnections’?
for (int i = 0; i < graph.getNumConnections(); ++i)
^~~~~~~~~~~~~~~~~
getConnections
../../Source/Audio/Graph/AudioGraph.cpp:646:65: error: ‘const class juce::AudioProcessorGraph’ has no member named ‘getConnection’; did you mean ‘getConnections’?
const AudioProcessorGraph::Connection* const fc = graph.getConnection (i);
^~~~~~~~~~~~~
getConnections
../../Source/Audio/Graph/AudioGraph.cpp: In member function ‘juce::XmlElement* AudioGraph::createConnectionsXml() const’:
../../Source/Audio/Graph/AudioGraph.cpp:665:31: error: ‘const class juce::AudioProcessorGraph’ has no member named ‘getNumConnections’; did you mean ‘getConnections’?
for (int i = 0; i < graph.getNumConnections(); ++i)
^~~~~~~~~~~~~~~~~
getConnections
../../Source/Audio/Graph/AudioGraph.cpp:667:65: error: ‘const class juce::AudioProcessorGraph’ has no member named ‘getConnection’; did you mean ‘getConnections’?
const AudioProcessorGraph::Connection* const fc = graph.getConnection (i);
^~~~~~~~~~~~~
getConnections
In file included from ../../Source/Audio/Graph/AudioGraph.cpp:21:
../../Source/Audio/Graph/../../Application/CabbageMainComponent.h: In member function ‘FileTab* CabbageMainComponent::getFileTabForNodeId(int32)’:
../../Source/Audio/Graph/../../Application/CabbageMainComponent.h:113:5: warning: control reaches end of non-void function [-Wreturn-type]
}
^
make: *** [Makefile:188: build/intermediate/Debug/AudioGraph_b22f6a5b.o] Error 1
I’ll be out for a while, but I’ll try to get you that pull request this evening.