You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.7KB

  1. require_relative '../module'
  2. module DHE
  3. class Xycloid < DHE::Module
  4. def initialize
  5. super(name: 'XYCLOID', hp: 11, foreground: [270, 100, 50], background: [270, 66, 97])
  6. left = @width / 7.0
  7. right = @width - left
  8. left_center = (right - left) / 3.0 + left
  9. right_center = @width - left_center
  10. y = 30.0
  11. delta_y = 22.0
  12. port_offset = 1.25
  13. connector(left: left, right: right, y: y)
  14. cv_port(x: left, y: y)
  15. attenuverter(x: left_center, y: y)
  16. large_knob(x: right_center, y: y, label: 'RATIO')
  17. toggle(x: right, y: y, labels: %w(LOCK FREE), selection: 2)
  18. y += delta_y
  19. connector(left: left, right: right, y: y)
  20. cv_port(x: left, y: y)
  21. attenuverter(x: left_center, y: y)
  22. large_knob(x: right_center, y: y, label: 'DEPTH')
  23. toggle(x: right, y: y, labels: ['IN', ' ', 'OUT'], selection: 2)
  24. y += delta_y
  25. connector(left: left, right: right_center, y: y)
  26. cv_port(x: left, y: y)
  27. attenuverter(x: left_center, y: y)
  28. large_knob(x: right_center, y: y, label: 'SPEED')
  29. small_knob(x: right, y: y, label: 'PHASE')
  30. y = 97.0
  31. delta_y = 15.0
  32. connector(left: left, right: right, y: y)
  33. cv_port(x: left, y: y)
  34. small_knob(x: left_center, y: y, label: 'GAIN')
  35. polarity_toggle(x: right_center, y: y)
  36. output_port(x: right, y: y + port_offset, label: 'X OUT')
  37. y += delta_y
  38. connector(left: left, right: right, y: y)
  39. cv_port(x: left, y: y)
  40. small_knob(x: left_center, y: y, label: 'GAIN')
  41. polarity_toggle(x: right_center, y: y)
  42. output_port(x: right, y: y + port_offset, label: 'Y OUT')
  43. end
  44. end
  45. end
  46. MODULE_TO_FILENAME[DHE::Xycloid.new] = __FILE__