Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2019
303
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. N = 7
  2. PITCHES = ["до", "ре", "ми", "фа", "соль", "ля", "си"]
  3. LONG_PITCHES = ["до-о", "ре-э", "ми-и", "фа-а", "со-оль", "ля-а", "си-и"]
  4. INTERVALS = ["прима", "секунда", "терция", "кварта", "квинта", "секста", "септима"]
  5.  
  6.  
  7. class Note:
  8. def long_note(self, note):
  9. self.note = LONG_PITCHES[PITCHES.index(self.note)]
  10. return self.note
  11.  
  12. def __str__(self):
  13. if self.is_long is True:
  14. self.note = self.long_note(self.note)
  15.  
  16. def __init__(self, note=None, is_long=False):
  17. self.note = note
  18. self.is_long = is_long
  19.  
  20. def __eq__(self, other):
  21. if PITCHES.index(self.note) == PITCHES.index(other.note):
  22. return True
  23. else:
  24. return False
  25.  
  26. def __lt__(self, other):
  27. if PITCHES.index(self.note) < PITCHES.index(other.note):
  28. return True
  29. else:
  30. return False
  31.  
  32. def __rt__(self, other):
  33. if PITCHES.index(self.note) > PITCHES.index(other.note):
  34. return True
  35. else:
  36. return False
  37.  
  38. def __le__(self, other):
  39. if PITCHES.index(self.note) <= PITCHES.index(other.note):
  40. return True
  41. else:
  42. return False
  43.  
  44. def __re__(self, other):
  45. if PITCHES.index(self.note) >= PITCHES.index(other.note):
  46. return True
  47. else:
  48. return False
  49.  
  50. def __rlshift__(self, shift):
  51. self.shift = shift
  52. self.index = PITCHES.index(self.note)
  53. self.note = PITCHES.index(self.index - shift % 7)
  54. return self.note
  55.  
  56. def __rrshift__(self, shift):
  57. self.shift = shift
  58. self.index = PITCHES.index(self.note)
  59. self.note = PITCHES.index(self.index + shift % 7)
  60. return self.note
  61.  
  62.  
  63. fa2 = Note("фа")
  64. la = Note("ля", True)
  65. print(la > 1)
  66. print(la >> 2)
  67. x = fa2 << 4
  68. print(x)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement