code: def complex_domain(spectrogram):
      """
      Complex Domain.
  
      Parameters
      ----------
      spectrogram : :class:`Spectrogram` instance
          :class:`Spectrogram` instance.
  
      Returns
      -------
      complex_domain : numpy array
          Complex domain onset detection function.
  
      References
      ----------
      .. [1] Juan Pablo Bello, Chris Duxbury, Matthew Davies and Mark Sandler,
             "On the use of phase and energy for musical onset detection in the
             complex domain",
             IEEE Signal Processing Letters, Volume 11, Number 6, 2004.
  
      """
      # take the sum of the absolute changes
      return np.asarray(
          np.sum(np.abs(_complex_domain(spectrogram)), axis=1)
      )
  
imports: from __future__ import absolute_import, division, print_function
  import numpy
  from scipy.ndimage import maximum_filter, minimum_filter, uniform_filter
  from ..audio.signal import smooth
  from ..processors import BufferProcessor, OnlineProcessor, ParallelProcessor, SequentialProcessor
  from ..utils import combine_events
label_desc: Use image node_id 14 for calling a global function with example usage: complex_domain(spectrogram) and returns: np