def __init__(self, callback, keyboard_system): Gtk.DrawingArea.__init__(self) CairoCommon.__init__(self) self.m_callback = callback def ff(first, count): i = mpd.notename_to_int(first) return [mpd.int_to_octave_notename(i + x * 3) for x in range(count)] keyboard_def = {'norwegian': (ff("g,", 19), ff("f,", 20), ff("fis,", 19), ff("e,", 20), ff("f,", 19))} keyboard_def['swedish'] = ( ff("e,", 19), ff("dis,", 20), ff("f,", 19), ff("e,", 20), ff("fis,", 19)) keyboard_def['finnish'] = ( ff("dis,", 19), ff("d,", 20), ff("e,", 19), ff("dis,", 20), ff("f,", 19)) keyboard_def['belgian'] = ( ff("fis,", 19), ff("e,", 20), ff("f,", 19), ff("es,", 20), ff("e,", 19) ) self.m_notenames = keyboard_def[keyboard_system] self.m_lowest_tone = mpd.HIGHEST_NOTENAME self.m_highest_tone = mpd.LOWEST_NOTENAME for v in self.m_notenames: if mpd.compare_notenames(self.m_lowest_tone, v[0]) > 0: self.m_lowest_tone = v[0] if mpd.compare_notenames(self.m_highest_tone, v[-1]) < 0: self.m_highest_tone = v[-1] self.m_button_radius = 9 self.m_button_xdist = 20 self.m_button_ydist = 18 self.connect('draw', self.draw) self.connect('button-press-event', self._on_button_press) self.set_events(Gdk.EventMask.BUTTON_PRESS_MASK)
def set_range(self, lowest_value, highest_value): """ Set the lowest and highest tone allowed. make a separate function for NotenameRangeController if we need it. """ assert mpd.compare_notenames(lowest_value, highest_value) <= 0 self.m_lowest_value = mpd.notename_to_int(lowest_value) self.m_highest_value = mpd.notename_to_int(highest_value) if self.m_lowest_value > self.g_spin_low.get_value(): self.set_string(self.m_name_low, lowest_value) self.g_spin_low.set_value(self.m_lowest_value) if self.m_highest_value < self.g_spin_high.get_value(): self.set_string(self.m_name_high, highest_value) self.g_spin_high.set_value(self.m_highest_value)
def __init__(self, callback, keyboard_system): gtk.DrawingArea.__init__(self) CairoCommon.__init__(self) self.m_callback = callback def ff(first, count): i = mpd.notename_to_int(first) return [ mpd.int_to_octave_notename(i + x * 3) for x in range(count) ] keyboard_def = { 'norwegian': (ff("g,", 19), ff("f,", 20), ff("fis,", 19), ff("e,", 20), ff("f,", 19)) } keyboard_def['swedish'] = (ff("e,", 19), ff("dis,", 20), ff("f,", 19), ff("e,", 20), ff("fis,", 19)) keyboard_def['finnish'] = (ff("dis,", 19), ff("d,", 20), ff("e,", 19), ff("dis,", 20), ff("f,", 19)) keyboard_def['belgian'] = (ff("fis,", 19), ff("e,", 20), ff("f,", 19), ff("es,", 20), ff("e,", 19)) self.m_notenames = keyboard_def[keyboard_system] self.m_lowest_tone = mpd.HIGHEST_NOTENAME self.m_highest_tone = mpd.LOWEST_NOTENAME for v in self.m_notenames: if mpd.compare_notenames(self.m_lowest_tone, v[0]) > 0: self.m_lowest_tone = v[0] if mpd.compare_notenames(self.m_highest_tone, v[-1]) < 0: self.m_highest_tone = v[-1] self.m_button_radius = 9 self.m_button_xdist = 20 self.m_button_ydist = 18 self.connect('expose_event', self.expose) self.connect('button-press-event', self._on_button_press) self.set_events(gtk.gdk.BUTTON_PRESS_MASK)
def __init__(self, callback, keyboard_system): gtk.DrawingArea.__init__(self) CairoCommon.__init__(self) self.m_callback = callback self.m_notenames_norwegian = (("g,", "bes,", "des", "e", "g", "bes", "des'", "e'", "g'", "bes'", "des''", "e''", "g''", "bes''", "des'''", "e'''", "g'''", "bes'''", "des''''"), ("f,", "aes,", "b,", "d", "f", "aes", "b", "d'", "f'", "aes'", "b'", "d''", "f''", "aes''", "b''", "d'''", "f'''", "aes'''", "b'''", "d''''"), ("fis,", "a,", "c", "ees", "fis", "a", "c'", "ees'", "fis'", "a'", "c''", "ees''", "fis''", "a''", "c'''", "ees'''", "fis'''", "a'''", "c''''"), ("e,", "g,", "bes,", "des", "e", "g", "bes", "des'", "e'", "g'", "bes'", "des''", "e''", "g''", "bes''", "des'''", "e'''", "g'''", "bes'''", "des''''"), ("f,", "aes,", "b,", "d", "f", "aes", "b", "d'", "f'", "aes'", "b'", "d''", "f''", "aes''", "b''", "d'''", "f'''", "aes'''", "b'''")) self.m_notenames_swedish = ( ("e,", "g,", "bes,", "des", "e", "g", "bes", "des'", "e'", "g'", "bes'", "des''", "e''", "g''", "bes''", "des'''", "e'''", "g'''", "bes'''"), ("dis,", "fis,", "a,", "c", "ees", "fis", "a", "c'", "ees'", "fis'", "a'", "c''", "ees''", "fis''", "a''", "c'''", "ees'''", "fis'''", "a'''", "c''''"), ("f,", "aes,", "b,", "d", "f", "aes", "b", "d'", "f'", "aes'", "b'", "d''", "f''", "aes''", "b''", "d'''", "f'''", "aes'''", "b'''"), ("e,", "g,", "bes,", "des", "e", "g", "bes", "des'", "e'", "g'", "bes'", "des''", "e''", "g''", "bes''", "des'''", "e'''", "g'''", "bes'''", "des''''"), ("fis,", "a,", "c", "ees", "fis", "a", "c'", "ees'", "fis'", "a'", "c''", "ees''", "fis''", "a''", "c'''", "ees'''", "fis'''", "a'''", "c''''"), ) self.m_notenames_finnish = ( ("dis,", "fis,", "a,", "c", "ees", "fis", "a", "c'", "ees'", "fis'", "a'", "c''", "ees''", "fis''", "a''", "c'''", "ees'''", "fis'''", "a'''", "c''''"), ("d,", "f,", "aes,", "b,", "d", "f", "aes", "b", "d'", "f'", "aes'", "b'", "d''", "f''", "aes''", "b''", "d'''", "f'''", "aes'''", "b'''"), ("e,", "g,", "bes,", "des", "e", "g", "bes", "des'", "e'", "g'", "bes'", "des''", "e''", "g''", "bes''", "des'''", "e'''", "g'''", "bes'''", "des''''"), ("dis,", "fis,", "a,", "c", "ees", "fis", "a", "c'", "ees'", "fis'", "a'", "c''", "ees''", "fis''", "a''", "c'''", "ees'''", "fis'''", "a'''", "c''''"), ("f,", "aes,", "b,", "d", "f", "aes", "b", "d'", "f'", "aes'", "b'", "d''", "f''", "aes''", "b''", "d'''", "f'''", "aes'''", "b'''", "d''''"), ) self.m_notenames = {'norwegian': self.m_notenames_norwegian, 'swedish': self.m_notenames_swedish, 'finnish': self.m_notenames_finnish}[keyboard_system] self.m_lowest_tone = mpd.HIGHEST_NOTENAME self.m_highest_tone = mpd.LOWEST_NOTENAME for v in self.m_notenames: if mpd.compare_notenames(self.m_lowest_tone, v[0]) > 0: self.m_lowest_tone = v[0] if mpd.compare_notenames(self.m_highest_tone, v[-1]) < 0: self.m_highest_tone = v[-1] self.m_button_radius = 9 self.m_button_xdist = 20 self.m_button_ydist = 18 self.connect('expose_event', self.expose) self.connect('button-press-event', self._on_button_press) self.set_events(gtk.gdk.BUTTON_PRESS_MASK)