class_docstr: A MidiAutoencoder that has additional z encoders.
  
  This is set up similar to the base MidiAutoencoder, except that there are
  many more places to learn encoding "z" variables to enable better
  reconstruction or better learnable representations.
docstr: Encode other latents besides pitch and velocity.
docstr_tok: ["Encode","other","latents","besides","pitch","and","velocity","."]
code: def z_global_encode(self, features):
      """Encode other latents besides pitch and velocity."""
      z = None
      if self.z_global_encoders is not None:
          z = [
              z_encoder(features)["z"]
              for z_encoder in self.z_global_encoders
          ]
          z = tf.concat(z, axis=-1)
      return z
  
imports: import ddsp
  from ddsp.training import nn
  from ddsp.training import preprocessing
  from ddsp.training.models.model import Model
  import tensorflow
label_desc: Use image node_id 3 for calling the ZMidiAutoencoder obj's underlying member method code with example usage: obj.z_global_encode(features) and returns: z