class_docstr: Abstract base class for pitch shifting transformations
class_docstr_tok: ["Abstract","base","class","for","pitch","shifting","transformations"]
code: def deform_note(annotation, state):
      # First, figure out the tuning after deformation
      if -0.5 < (state["tuning"] + state["n_semitones"]) <= 0.5:
          # If our tuning was off by more than the deformation,
          # then no label modification is necessary
          return
  
      for obs in annotation.pop_data():
          annotation.append(
              time=obs.time,
              duration=obs.duration,
              confidence=obs.confidence,
              value=transpose(obs.value, state["n_semitones"]),
          )
  
imports: import librosa
  import pyrubberband
  import re
  import numpy
  import six
  from copy import deepcopy
  from ..base import BaseTransformer, _get_rng
label_desc: Use image node_id 8 for calling the AbstractPitchShift obj's underlying member method code with example usage: obj.deform_note(annotation, state) without return types