Add comprehensive browser API with 25 endpoints#194
Open
bimsonz wants to merge 1 commit intoideoforms:masterfrom
Open
Add comprehensive browser API with 25 endpoints#194bimsonz wants to merge 1 commit intoideoforms:masterfrom
bimsonz wants to merge 1 commit intoideoforms:masterfrom
Conversation
Adds BrowserHandler with full browser integration for programmatic control of Ableton's content browser. Combines and improves on ideas from ideoforms#183, ideoforms#192, and ideoforms#191. Endpoints (25): - Load by name (10): load_instrument, load_drum_kit, load_audio_effect, load_midi_effect, load_effect, load_sound, load_sample, load_plugin, load_max_device, load_user_preset - Load by target (2): load_to_slot (session view via highlighted_clip_slot), load_to_arrangement (arrangement view, best-effort positioning) - Discovery (8): get/categories, get/children, search, list_audio_effects, list_midi_effects, list_sounds, list_plugins, list_user_presets - Preview (2): preview, stop_preview - Utility (3): refresh (cache invalidation), hotswap_start, hotswap_load Key design decisions: - Explicit track_index on all load endpoints for reliable programmatic use - Tiered name matching: exact > case-insensitive > extension-stripped > substring - Depth-limited recursive search (max_depth=4) for safety on large libraries - Session view loading via highlighted_clip_slot for precise slot targeting - Browser cache invalidation via filter_type toggle for detecting new content - Common _load_from_categories helper to DRY up load-by-name pattern Closes ideoforms#183, closes ideoforms#192, closes ideoforms#191
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a
BrowserHandlerwith full browser integration for programmatic control of Ableton's content browser. This combines and improves on ideas from #183, #192, and #191 which have stalled.25 endpoints across 5 categories:
load_instrument,load_drum_kit,load_audio_effect,load_midi_effect,load_effect,load_sound,load_sample,load_plugin,load_max_device,load_user_presetload_to_slot(session view),load_to_arrangement(arrangement view)get/categories,get/children,search,list_audio_effects,list_midi_effects,list_sounds,list_plugins,list_user_presetspreview,stop_previewrefresh,hotswap_start,hotswap_loadKey design decisions
track_indexon all load endpoints — avoids race conditions for programmatic use (improvement over Add comprehensive browser API for loading effects, sounds, samples, and navigation #183 which relied on selected track)max_depth=4) — safer than unbounded recursion on large browser treeshighlighted_clip_slot— reliable slot targeting technique from feat: Add Browser API support #192filter_typetoggle — essential for detecting newly added content, inspired by Add browser API, chain management, and sidechain routing #191_load_from_categorieshelper — all load-by-name endpoints share the same search/load patternRelated issues
Closes #183, closes #192, closes #191
Testing
Tested against Ableton Live 12 on macOS. All 25 endpoints verified working via OSC UDP.