title: Get AVAudioEngineGraph programmatically
body: <p>In my app I created an AVAudioEngine and attached AVAudioNodes on it.</p>
  
  <ul>
  <li>Is it possible to get the attached nodes programmatically? </li>
  <li>Is it possible to get the nodes connected to a given AVAudioNode?</li>
  </ul>
  
  <p>When I log the engine's description I can see all the AVAudioEngineGraph, but I cannot find the way to get this information programmatically, can someone give me a solution?</p>
  
  <pre><code>(lldb) po _engine
  
  ________ GraphDescription ________
  AVAudioEngineGraph 0x7fb04541ac60: initialized = 1, running = 1, number of nodes = 4
  
   ******** output chain ********
  
   node 0x600002448c00 {'auou' 'rioc' 'appl'}, 'I'
       inputs = 1
           (bus0, en1) &lt;- (bus0) 0x60000244cd00, {'aumx' 'mcmx' 'appl'}, [ 2 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
  
   node 0x60000244cd00 {'aumx' 'mcmx' 'appl'}, 'I'
       inputs = 1
           (bus0, en1) &lt;- (bus0) 0x600002473680, {'aumx' 'mcmx' 'appl'}, [ 2 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
       outputs = 1
           (bus0, en1) -&gt; (bus0) 0x600002448c00, {'auou' 'rioc' 'appl'}, [ 2 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
  
   node 0x600002473680 {'aumx' 'mcmx' 'appl'}, 'I'
       inputs = 1
           (bus0, en1) &lt;- (bus1) 0x600002462580, {'auou' 'rioc' 'appl'}, [ 2 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
       outputs = 1
           (bus0, en1) -&gt; (bus0) 0x60000244cd00, {'aumx' 'mcmx' 'appl'}, [ 2 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
  
   node 0x600002462580 {'auou' 'rioc' 'appl'}, 'I'
       outputs = 2
           (bus0, en0) -&gt; (bus0) 0x0, {}, [ 2 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
           (bus1, en1) -&gt; (bus0) 0x600002473680, {'aumx' 'mcmx' 'appl'}, [ 2 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
  
   ******** input chain ********
  
   node 0x600002462580 {'auou' 'rioc' 'appl'}, 'I'
       outputs = 2
           (bus0, en0) -&gt; (bus0) 0x0, {}, [ 2 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
           (bus1, en1) -&gt; (bus0) 0x600002473680, {'aumx' 'mcmx' 'appl'}, [ 2 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
  
   node 0x600002473680 {'aumx' 'mcmx' 'appl'}, 'I'
       inputs = 1
           (bus0, en1) &lt;- (bus1) 0x600002462580, {'auou' 'rioc' 'appl'}, [ 2 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
       outputs = 1
           (bus0, en1) -&gt; (bus0) 0x60000244cd00, {'aumx' 'mcmx' 'appl'}, [ 2 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
  
   node 0x60000244cd00 {'aumx' 'mcmx' 'appl'}, 'I'
       inputs = 1
           (bus0, en1) &lt;- (bus0) 0x600002473680, {'aumx' 'mcmx' 'appl'}, [ 2 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
       outputs = 1
           (bus0, en1) -&gt; (bus0) 0x600002448c00, {'auou' 'rioc' 'appl'}, [ 2 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
  
   node 0x600002448c00 {'auou' 'rioc' 'appl'}, 'I'
       inputs = 1
           (bus0, en1) &lt;- (bus0) 0x60000244cd00, {'aumx' 'mcmx' 'appl'}, [ 2 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
  </code></pre>
  
  <hr>