def _get_track_list(self): key = 'album/p_tracks.json' try: track_list = self._store[key] except KeyError: track_list = get_default_value(key) return track_list
def _get_order_list(self): key = self._get_order_list_key() try: order_list = self._store[key] except KeyError: order_list = get_default_value(key) return order_list or []
def get_control_ids(self): key = 'p_control_map.json' input_map = self._store.get(key, get_default_value(key)) control_ids = set() for (control_number, _) in input_map: control_id = 'control_{0:02x}'.format(control_number) control_ids.add(control_id) return control_ids
def get_edit_connect_to_au(self, au_id): control_num = int(self._control_id.split('_')[1], 16) au_num = int(au_id.split('_')[1], 16) cmap_key = 'p_control_map.json' control_map = self._store.get(cmap_key, get_default_value(cmap_key)) controls = dict(control_map) controls[control_num] = au_num return { cmap_key: list(controls.items()) }
def _check_update_random_seed(self): rand_seed_update_key = 'i_random_seed_auto_update.json' rand_seed_key = 'p_random_seed.json' if self._store.get(rand_seed_update_key, False): old_seed = self._store.get( rand_seed_key, get_default_value(rand_seed_key)) new_seed = (old_seed + 1) % 2**63 transaction = { rand_seed_key: new_seed } self._store.put(transaction, mark_modified=False) self._updater.signal_update('signal_random_seed')
def _check_update_control_id_cache(self): if self._control_ids: return key = 'p_control_map.json' input_map = self._store.get(key, get_default_value(key)) self._control_ids = set() for control_number, _ in input_map: control_id = 'control_{:02x}'.format(control_number) self._control_ids.add(control_id)
def connect_to_au(self, au_id): control_num = int(self._control_id.split('_')[1], 16) au_num = int(au_id.split('_')[1], 16) cmap_key = 'p_control_map.json' control_map = self._store.get(cmap_key, get_default_value(cmap_key)) controls = dict(control_map) controls[control_num] = au_num self._store[cmap_key] = list(controls.items()) self._au_number = au_num
def add_tuning_table(self, table_id): assert table_id not in self.get_tuning_table_ids() table_key = '{}/p_tuning_table.json'.format(table_id) name_key = '{}/m_name.json'.format(table_id) note_names_key = '{}/m_note_names.json'.format(table_id) transaction = { table_key : get_default_value(table_key), name_key : 'Tuning {}'.format(int(table_id.split('_')[1], 16)), note_names_key: ['A'], } self._store.put(transaction)
def add_tuning_table(self, table_id): assert table_id not in self.get_tuning_table_ids() table_key = '{}/p_tuning_table.json'.format(table_id) name_key = '{}/m_name.json'.format(table_id) note_names_key = '{}/m_note_names.json'.format(table_id) transaction = { table_key: get_default_value(table_key), name_key: 'Tuning {}'.format(int(table_id.split('_')[1], 16)), note_names_key: ['A'], } self._store.put(transaction)
def get_audio_unit(self): parts = self._control_id.split('_') second = parts[1] control_number = int(second, 16) cmap_key = 'p_control_map.json' input_map = self._store.get(cmap_key, get_default_value(cmap_key)) controls = dict(input_map) au_number = controls[control_number] au_id = 'au_{0:02x}'.format(au_number) module = self._ui_model.get_module() au = module.get_audio_unit(au_id) return au
def remove_controls_to_audio_unit(self, au_id): transaction = {} # Update channel defaults fallback_au_ids = self.get_au_ids() fallback_au_ids.discard(au_id) fallback_au_id = min(fallback_au_ids) if fallback_au_ids else 'au_00' if fallback_au_id == au_id: return fallback_control_id = (self.get_control_id_by_au_id(fallback_au_id) or 'control_00') ch_defs = self.get_channel_defaults() transaction.update( ch_defs.get_edit_remove_controls_to_audio_unit( au_id, fallback_control_id)) # Remove controls remove_control_nums = [] for i in range(CONTROLS_MAX): control_id = 'control_{:02x}'.format(i) control = Control(control_id) control.set_controller(self._controller) control.set_ui_model(self._ui_model) if control.get_existence() and (control.get_audio_unit().get_id() == au_id): remove_control_nums.append(i) transaction.update(control.get_edit_remove_control()) # Update the control map cmap_key = 'p_control_map.json' control_map = self._store.get(cmap_key, get_default_value(cmap_key)) new_map = [] for pair in control_map: cnum, au_num = pair cur_au_id = 'au_{:02x}'.format(au_num) if cur_au_id != au_id: new_map.append(pair) transaction.update({cmap_key: new_map}) self._store.put(transaction)
def remove_controls_to_audio_unit(self, au_id): transaction = {} # Update channel defaults fallback_au_ids = self.get_au_ids() fallback_au_ids.discard(au_id) fallback_au_id = min(fallback_au_ids) if fallback_au_ids else 'au_00' if fallback_au_id == au_id: return fallback_control_id = ( self.get_control_id_by_au_id(fallback_au_id) or 'control_00') ch_defs = self.get_channel_defaults() transaction.update(ch_defs.get_edit_remove_controls_to_audio_unit( au_id, fallback_control_id)) # Remove controls remove_control_nums = [] for i in range(CONTROLS_MAX): control_id = 'control_{:02x}'.format(i) control = Control(control_id) control.set_controller(self._controller) control.set_ui_model(self._ui_model) if control.get_existence() and (control.get_audio_unit().get_id() == au_id): remove_control_nums.append(i) transaction.update(control.get_edit_remove_control()) # Update the control map cmap_key = 'p_control_map.json' control_map = self._store.get(cmap_key, get_default_value(cmap_key)) new_map = [] for pair in control_map: cnum, au_num = pair cur_au_id = 'au_{:02x}'.format(au_num) if cur_au_id != au_id: new_map.append(pair) transaction.update({ cmap_key: new_map }) self._store.put(transaction)
def get_connections(self): key = self._get_graph_key() return self._store.get(key, get_default_value(key))
def get_length(self): key = '{}/p_length.json'.format(self._pattern_id) return tstamp.Tstamp(self._store.get(key, get_default_value(key)))
def _get_event_list(self): key = self._get_key('p_events.json') ret = self._store.get(key, get_default_value(key)) return ret
def get_random_seed(self): key = 'p_random_seed.json' return self._store.get(key, get_default_value(key))
def get_mixing_volume(self): key = 'p_mixing_volume.json' return self._store.get(key, get_default_value(key))
def _get_default_entry(self): default_list = get_default_value(self._get_key()) return default_list[0]
def _get_env_list(self): key = self._get_key() return self._store.get(key, get_default_value(key))
def _get_control_var_list(self): key = self._get_key('p_control_vars.json') ret = self._store.get(key, get_default_value(key)) return ret
def get_force_shift(self): key = 'p_force_shift.json' return self._store.get(key, get_default_value(key))
def _get_table(self): key = self._get_key('p_tuning_table.json') return self._store.get(key, get_default_value(key))
def get_initial_tempo(self): key = '{}/p_tempo.json'.format(self._song_id) return self._store.get(key, get_default_value(key))
def get_signal_type(self): key = self._get_key('p_signal_type.json') return self._store.get(key, get_default_value(key))
def get_dc_blocker_enabled(self): key = 'p_dc_blocker_enabled.json' return self._store.get(key, get_default_value(key))
def _get_stream_list(self): key = self._get_key('p_streams.json') ret = self._store.get(key, get_default_value(key)) return ret
def get_connections(self, pending_changes=None): key = self._get_graph_key() return self._store.get( key, get_default_value(key), pending_changes=pending_changes)