@@ -93,6 +93,15 @@ def next_mode(self, ofs=1):
93
93
self .set_mode ((self .mode_index + ofs ) % self .scale_notes .count ('x' ))
94
94
self .dirty = self .dirty_lights = True
95
95
96
+ def toggle_sharps_flats (self , ofs = 1 ):
97
+ if (self .use_sharps ):
98
+ self .use_sharps = False
99
+ self .NOTES = NOTES_FLATS
100
+ else :
101
+ self .use_sharps = True
102
+ self .NOTES = NOTES_SHARPS
103
+ self .dirty = self .dirty_lights = True
104
+
96
105
def prev_scale (self , ofs = 1 ):
97
106
self .next_scale (- ofs )
98
107
@@ -324,7 +333,7 @@ def get_note_index(self, x, y, transpose=True):
324
333
y = self .board_h - y - 1
325
334
x += self .options .base_offset
326
335
tr = self .tonic if transpose else 0
327
- return (row_offset * y + column_offset * x + tr ) % len (NOTES )
336
+ return (row_offset * y + column_offset * x + tr ) % len (self . NOTES )
328
337
# ofs = (self.board_h - y) // 2 + BASE_OFFSET
329
338
# step = 2 if WHOLETONE else 1
330
339
# tr = self.tonic if transpose else 0
@@ -335,7 +344,7 @@ def get_note_index(self, x, y, transpose=True):
335
344
336
345
def get_note (self , x , y , transpose = True ):
337
346
"""Get note name for x, y"""
338
- return NOTES [self .get_note_index (x , y , transpose = transpose )]
347
+ return self . NOTES [self .get_note_index (x , y , transpose = transpose )]
339
348
340
349
def get_color (self , x , y ):
341
350
"""Get color for x, y"""
@@ -1629,6 +1638,11 @@ def __init__(self):
1629
1638
text = 'MOD>' ,
1630
1639
manager = self .gui
1631
1640
)
1641
+ self .btn_sharps_flats = pygame_gui .elements .UIButton (
1642
+ relative_rect = pygame .Rect ((bs .x * 16 + 2 , y ), (bs .x , bs .y )),
1643
+ text = '#/b' ,
1644
+ manager = self .gui
1645
+ )
1632
1646
# self.next_scale = pygame_gui.elements.UIButton(
1633
1647
# relative_rect=pygame.Rect((bs.x * 11 + 2, y), (bs.x, bs.y)),
1634
1648
# text='SCL>',
@@ -1695,6 +1709,9 @@ def __init__(self):
1695
1709
self .linn_out = None
1696
1710
self .midi_out = None
1697
1711
self .split_out = None
1712
+ self .use_sharps = True
1713
+ self .NOTES = NOTES_SHARPS
1714
+
1698
1715
1699
1716
outnames = rtmidi2 .get_out_ports ()
1700
1717
for i in range (len (outnames )):
@@ -2223,6 +2240,8 @@ def logic(self, dt):
2223
2240
self .next_mode ()
2224
2241
elif ev .ui_element == self .btn_prev_mode :
2225
2242
self .prev_mode ()
2243
+ elif ev .ui_element == self .btn_sharps_flats :
2244
+ self .toggle_sharps_flats ()
2226
2245
# elif ev.type == pygame_gui.UI_HORIZONTAL_SLIDER_MOVED:
2227
2246
# if ev.ui_element == self.slider_velocity:
2228
2247
# global self.options.velocity_curve
0 commit comments