code: def __init__(self, text="", right=10, top=30, width=None, height=20):
      self.text = text
      self.top = top
      self.height = height
      self.colour1 = (220, 220, 220)  # main
      self.colour2 = (100, 100, 100)  # border
      self.colour3 = (172, 220, 247)  # hover
      self.colour4 = (225, 243, 252)
      self.fontname = "freesansbold.ttf"
      self.fontsize = self.height - 6
      self.mouse_over = False
      self.mouse_down = False
      self.mouse = "off"
      self.clicked = False
      self.pyg = pygame
      self.font = pygame.font.SysFont(self.fontname, self.fontsize)
      self.text_width, self.text_height = self.pyg.font.Font.size(
          self.font, self.text
      )
      if width == None:
          self.width = int(self.text_width * 1.3)
          self.width_type = "text"
      else:
          self.width = width
          self.width_type = "user"
  
      self.left = right - self.width
      self.buttonUP = self.pyg.Surface((self.width, self.height))
      self.buttonDOWN = self.pyg.Surface((self.width, self.height))
      self.buttonHOVER = self.pyg.Surface((self.width, self.height))
      self.__update__()
  
file_path: rt-audio-fft/src/utils.py
imports: import numpy
  import math, scipy, pygame
label_desc: Use image node_id 1 to create a new Button object  with example: obj = Button(text, right, top, width, height)