def create_instance(c_instance):
def __init__(self, c_instance):
def disconnect(self):
def _enqueue_main_thread_task(self, callback):
def update_display(self):
def start_server(self):
def _server_thread(self):
def _handle_client(self, client):
def _process_command(self, command):
def main_thread_task():
def _get_session_info(self):
def _get_track_info(self, track_index, track_type="track"):
def _summarize_track(self, track, index, track_type):
def _get_tracks(self):
def _safe_getattr(self, obj, attr_name, default=None):
def _safe_mixer_value(self, track, attr_name, default=None):
def _safe_session_clip_count(self, track):
def _summarize_arrangement_clips(self, track, max_items=8):
def _refresh_session_track_count(self):
def _track_matches_generation_type(self, track, track_type):
def _normalize_generation_base_track(self, desired_type):
def _collect_generation_clips(self, track_cfg):
def _ensure_generation_scenes(self, tracks_config):
def _configure_generated_track(self, track_index, track_cfg):
def _populate_generated_clip(self, track_index, clip_cfg):
def _create_midi_track(self, index):
def _create_audio_track(self, index):
def _create_return_track(self):
def _resolve_track_reference(self, track_index, track_type):
def _set_track_mute(self, track_index, mute, track_type="track"):
def _set_track_solo(self, track_index, solo, track_type="track"):
def _set_track_arm(self, track_index, arm, track_type="track"):
def _set_track_volume(self, track_index, volume, track_type="track"):
def _set_track_pan(self, track_index, pan, track_type="track"):
def _set_track_send(self, track_index, send_index, value, track_type="track"):
def _set_track_color(self, track_index, color, track_type="track"):
def _set_track_monitoring(self, track_index, state, track_type="track"):
def _set_master_volume(self, volume):
def _set_master_pan(self, pan):
def _set_track_name(self, track_index, name, track_type="track"):
def _delete_track(self, track_index):
def _create_clip(self, track_index, clip_index, length):
def _find_or_create_empty_clip_slot(self, track):
def _locate_arrangement_clip(self, track, start_time, tolerance=0.05, expected_length=None):
def _record_session_clip_to_arrangement(self, track_index, clip_index, start_time, length, track_type="track"):
def __init__(self, l, n, st):
def set_notes(self, notes):
def _defer_task(self, delay_ms, callback, *args):
def _recording_step_start_playback(self, record_state):
def _recording_step_stop_playback(self, record_state):
def _create_arrangement_clip(self, track_index, start_time, length, track_type="track"):
def _create_arrangement_audio_pattern(self, track_index, file_path, positions, name=""):
def _get_clip_info(self, track_index, clip_index, track_type="track"):
def _get_arrangement_clip_info(self, track_index, start_time, track_type="track"):
def _delete_clip(self, track_index, clip_index):
def _set_clip_loop(self, track_index, clip_index, loop_start, loop_end, loop_length, looping):
def _coerce_live_notes(self, notes):
def _add_notes_to_clip(self, track_index, clip_index, notes):
def _add_notes_to_arrangement_clip(self, track_index, start_time, notes, track_type="track"):
def _set_clip_name(self, track_index, clip_index, name):
def _set_tempo(self, tempo):
def _set_signature(self, numerator, denominator):
def _set_current_song_time(self, time_value):
def _jump_to(self, time_value):
def _set_loop(self, enabled):
def _set_loop_region(self, start, length):
def _loop_selection(self, start, length, enable=None):
def _set_metronome(self, enabled):
def _set_overdub(self, enabled):
def _set_record_mode(self, enabled):
def _duplicate_clip_to_arrangement(self, track_index, clip_index, start_time, track_type="track"):
def _fire_clip(self, track_index, clip_index):
def _stop_clip(self, track_index, clip_index):
def _stop_all_clips(self):
def _get_scenes(self):
def _create_scene(self, index):
def _set_scene_name(self, scene_index, name):
def _set_scene_color(self, scene_index, color):
def _fire_scene(self, scene_index):
def _delete_scene(self, scene_index):
def _start_playback(self):
def _stop_playback(self):
def _show_arrangement_view(self):
def _get_track_devices(self, track_index):
def _get_clips_for_type(self, track_index, track_type):
def _get_track_devices_for_type(self, track_index, track_type):
def _get_master_info(self):
def _get_device_parameters(self, track_index, device_index, track_type="track"):
def _set_device_parameter(self, track_index, device_index, parameter_index, parameter_name, value, track_type="track"):
def _set_device_on(self, track_index, device_index, enabled, track_type="track"):
def _get_browser_categories(self, category_type):
def _get_browser_items(self, path, item_type):
def _get_browser_item(self, uri, path):
def _load_browser_item(self, track_index, item_uri, track_type="track"):
def _load_instrument_or_effect(self, track_index, uri):
def _load_device(self, track_index, device_name, track_type="track"):
def _get_browser_roots(self, category_type):
def _search_browser_items_internal(self, query, category_type, max_results, max_depth, loadable_only):
def visit(item, path_parts, depth):
def _search_browser_items(self, query, category_type, max_results, max_depth, loadable_only):
def _load_browser_item_by_name(self, track_index, query, category_type, max_depth):
def _load_browser_item_at_path(self, track_index, path, item_name):
def _find_browser_item_by_uri(self, browser_or_item, uri, max_depth=10, current_depth=0):
def _get_device_type(self, device):
def get_browser_tree(self, category_type="all", max_depth=2):
def process_item(item, depth=0, path_parts=None):
def get_browser_items_at_path(self, path):
def _generate_track(self, params):
def _generate_track_async(self, params, response_queue):
def fail(exc):
def finish():
def queue_next():
def step():
def _clear_all_tracks(self):
def _get_arrangement_track_timeline(self, track_index, track_type="track"):
def _clear_arrangement_range(self, track_index, start_time, end_time, track_type="track"):
def _duplicate_arrangement_region(
def _write_filter_automation(self, track_index, filter_type, points):
def _write_reverb_automation(self, track_index, parameter, points):
def _write_pitch_automation(self, track_index, points):
def _write_track_automation(self, track_index, parameter_name, points, track_type="track"):
def _create_fx_clip(self, fx_type, position_bar, duration, intensity, automation):
def _apply_track_delay(self, track_index, delay_ms, track_type="track"):
def _apply_groove_to_section(self, section, groove_template):
def _setup_sidechain(self, target_track, intensity, style):
def _inject_pattern_fills(self, track_index, fill_density, section):