code: def analysisSynthesisStreaming(params, signal):
      out = numpy.array(0)
      pool = essentia.Pool()
      fcut = es.FrameCutter(
          frameSize=params["frameSize"],
          hopSize=params["hopSize"],
          startFromZero=False,
      )
      w = es.Windowing(type="hann")
      fft = es.FFT(size=params["frameSize"])
      ifft = es.IFFT(size=params["frameSize"])
      overl = es.OverlapAdd(
          frameSize=params["frameSize"], hopSize=params["hopSize"]
      )
  
      # add half window of zeros to input signal to reach same ooutput length
      signal = numpy.append(signal, zeros(params["frameSize"] // 2))
      insignal = VectorInput(signal)
      insignal.data >> fcut.signal
      fcut.frame >> w.frame
      w.frame >> fft.frame
      fft.fft >> ifft.fft
      ifft.frame >> overl.frame
      overl.signal >> (pool, "audio")
  
      essentia.run(insignal)
  
      # remove first half window frames
      outaudio = pool["audio"]
      outaudio = outaudio[2 * params["hopSize"] :]
      return outaudio
  
file_path: essentia/test/src/unittests/synthesis/test_stft_streaming.py
imports: from essentia_test import *
  import math
  import essentia
  import essentia.streaming
  import essentia.standard
label_desc: Use image node_id 3 for calling a global function with example usage: analysisSynthesisStreaming(params, signal) and returns: outaudio