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):