code: def testMidiSignal_Args(self):
      sig = midi_hub.MidiSignal(type="note_on", note=1)
      self.assertEqual(
          r"^note_on channel=\d+ note=1 velocity=\d+ time=\d+.\d+$",
          str(sig),
      )
  
      sig = midi_hub.MidiSignal(type="note_off", velocity=127)
      self.assertEqual(
          r"^note_off channel=\d+ note=\d+ velocity=127 time=\d+.\d+$",
          str(sig),
      )
  
      sig = midi_hub.MidiSignal(type="control_change", value=2)
      self.assertEqual(
          r"^control_change channel=\d+ control=\d+ value=2 time=\d+.\d+$",
          str(sig),
      )
  
imports: import collections
  import queue
  import threading
  import time
  from magenta.common import concurrency
  from magenta.interfaces.midi import midi_hub
  import mido
  from note_seq import testing_lib
  from note_seq.protobuf import music_pb2
  import tensorflow.compat.v1
label_desc: Use image node_id 6 for calling the MidiHubTest obj's underlying member method code with example usage: obj.testMidiSignal_Args() without return types