code: def analsynthSineModelStreaming(params, signal):
      out = numpy.array(0)
  
      pool = essentia.Pool()
      fcut = es.FrameCutter(
          frameSize=params["frameSize"],
          hopSize=params["hopSize"],
          startFromZero=False,
      )
      w = es.Windowing(type="blackmanharris92")
      fft = es.FFT(size=params["frameSize"])
      smanal = es.SineModelAnal(
          sampleRate=params["sampleRate"],
          maxnSines=params["maxnSines"],
          magnitudeThreshold=params["magnitudeThreshold"],
          freqDevOffset=params["freqDevOffset"],
          freqDevSlope=params["freqDevSlope"],
      )
      smsyn = es.SineModelSynth(
          sampleRate=params["sampleRate"],
          fftSize=params["frameSize"],
          hopSize=params["hopSize"],
      )
      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)
      # analysis
      insignal.data >> fcut.signal
      fcut.frame >> w.frame
      w.frame >> fft.frame
      fft.fft >> smanal.fft
      smanal.magnitudes >> (pool, "magnitudes")
      smanal.frequencies >> (pool, "frequencies")
      smanal.phases >> (pool, "phases")
      # synthesis
      smanal.magnitudes >> smsyn.magnitudes
      smanal.frequencies >> smsyn.frequencies
      smanal.phases >> smsyn.phases
      smsyn.fft >> ifft.fft
      ifft.frame >> overl.frame
      overl.signal >> (pool, "audio")
  
      essentia.run(insignal)
  
      # remove short tracks
      freqs = pool["frequencies"]
      minFrames = int(
          params["minSineDur"]
          * params["sampleRate"]
          / params["hopSize"]
      )
      freqsClean = cleaningSineTracks(freqs, minFrames)
      pool["frequencies"].data = freqsClean
  
      # remove first half window frames
      outaudio = pool["audio"]
      outaudio = outaudio[2 * params["hopSize"] :]
  
      return outaudio, pool
  
file_path: essentia/test/src/unittests/synthesis/test_sinemodel_streaming.py
imports: from essentia_test import *
  import math
  import essentia
  import essentia.streaming
  import essentia.standard
label_desc: Use image node_id 4 for calling a global function with example usage: analsynthSineModelStreaming(params, signal) and returns: outaudio,  pool