From 20f116dc7055350f7eb1e9d1e898ad98baf3967a Mon Sep 17 00:00:00 2001
From: jsiegle <jsiegle@mit.edu>
Date: Fri, 21 Mar 2014 23:00:59 -0400
Subject: [PATCH] Update ProcessorGraph::clearConnections() to prevent channel
 skipping bug

---
 Source/Processors/ProcessorGraph.cpp | 32 +++++++++++++++-------------
 1 file changed, 17 insertions(+), 15 deletions(-)

diff --git a/Source/Processors/ProcessorGraph.cpp b/Source/Processors/ProcessorGraph.cpp
index 93cd7fc33..5a0b59322 100644
--- a/Source/Processors/ProcessorGraph.cpp
+++ b/Source/Processors/ProcessorGraph.cpp
@@ -252,31 +252,33 @@ Array<GenericProcessor*> ProcessorGraph::getListOfProcessors()
 void ProcessorGraph::clearConnections()
 {
 
-    for (int i = 0; i < getNumConnections(); i++)
-    {
-        const Connection* connection = getConnection(i);
-
-        if (connection->destNodeId == RESAMPLING_NODE_ID ||
-            connection->destNodeId == OUTPUT_NODE_ID)
-        {
-            ; // leave it
-        }
-        else
-        {
-            removeConnection(i);
-        }
-    }
-
     for (int i = 0; i < getNumNodes(); i++)
     {
         Node* node = getNode(i);
 
         if (node->nodeId != OUTPUT_NODE_ID)
         {
+            disconnectNode(node->nodeId);
             GenericProcessor* p =(GenericProcessor*) node->getProcessor();
             p->resetConnections();
+
         }
     }
+
+    // connect audio subnetwork
+    for (int n = 0; n < 2; n++)
+    {
+
+        addConnection(AUDIO_NODE_ID, n,
+                      RESAMPLING_NODE_ID, n);
+
+        addConnection(RESAMPLING_NODE_ID, n,
+                      OUTPUT_NODE_ID, n);
+
+    }
+
+    addConnection(AUDIO_NODE_ID, midiChannelIndex,
+                  RESAMPLING_NODE_ID, midiChannelIndex);
 }
 
 
-- 
GitLab