Skip to content

Commit a87b307

Browse files
committed
Added Unified Tool Selector, Miscellaneous Documentation Updates, Disclaimers and Notes of AI usage.
- Added a new Unified Tool Selector script package to provide consistent tool command access across different views. - Revised command_reference.md to reorganize section commands. - Updated debugging_utilities.md so all examples show writing output to a .txt file rather than using a modal dialog. - Added disclaimers and notes throughout the repo documentation and example script source files indicating the use of agentic coding tools for transparency.
1 parent 8305dd3 commit a87b307

32 files changed

Lines changed: 377 additions & 76 deletions

File tree

README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
**Platform:** Fender Studio Pro / PreSonus Studio One
44

5-
> ⚠️ **Disclaimer:** Fender/PreSonus does not provide official public documentation for this API. This reference is entirely community-derived and incomplete. The API is internal and undocumented.
5+
> ⚠️ **Disclaimer:** Fender/PreSonus does not provide official public documentation for this API. This reference is entirely community-derived and incomplete. The API is internal and undocumented. The documentation and included example scripts were developed with the assistance of agentic coding agents. All included script examples have been tested within Studio Pro but should be reviewed for edge cases.
66
77
[![Documentation](https://img.shields.io/badge/docs-GitHub%20Pages-blue)](https://CSources.github.io/Studio-Pro-Scripting-API-Reference/)
88

@@ -42,6 +42,7 @@
4242
### Open Items
4343

4444
- Complete `skin.xml` element and attribute reference. Still missing documentation.
45+
- Locate and remove any remaining probe findings in the documentation that are not applicable, accessible, or relevant to the scripting API.
4546

4647
---
4748

@@ -63,8 +64,6 @@
6364
- **Track-Actions** (Jamesg545454) - reference multi-command .JS files
6465
- **Logical Editor** (Jamesg545454) - reference display formatter for parameter-backed controls, form background, view layout wrapper
6566

66-
*Community-compiled, not affiliated with Fender or PreSonus*
67-
6867
## Running Locally
6968

7069
**Prerequisites:** Node.js >= 20

docs/host/command_reference.md

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,6 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
4949
- Goto Previous Section
5050
- Goto Section
5151
- Goto Section 1
52-
- Goto Section 10
53-
- Goto Section 11
54-
- Goto Section 12
55-
- Goto Section 13
56-
- Goto Section 14
57-
- Goto Section 15
58-
- Goto Section 16
5952
- Goto Section 2
6053
- Goto Section 3
6154
- Goto Section 4
@@ -64,6 +57,13 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
6457
- Goto Section 7
6558
- Goto Section 8
6659
- Goto Section 9
60+
- Goto Section 10
61+
- Goto Section 11
62+
- Goto Section 12
63+
- Goto Section 13
64+
- Goto Section 14
65+
- Goto Section 15
66+
- Goto Section 16
6767
- Move to new Scratch Pad
6868
- Select Events in Section
6969
- Set Sync Mode 1 Bar
@@ -266,7 +266,6 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
266266
- Select Mix FX
267267
- Select Scene
268268
- Select Scene 1
269-
- Select Scene 10
270269
- Select Scene 2
271270
- Select Scene 3
272271
- Select Scene 4
@@ -275,6 +274,7 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
275274
- Select Scene 7
276275
- Select Scene 8
277276
- Select Scene 9
277+
- Select Scene 10
278278
- Set Pan for All Channels
279279
- Set Pan for Selected Channels
280280
- Set Volume for Selected Channels
@@ -550,7 +550,6 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
550550
- Suspend All Groups
551551
- Suspend Group
552552
- Suspend Group 1
553-
- Suspend Group 10
554553
- Suspend Group 2
555554
- Suspend Group 3
556555
- Suspend Group 4
@@ -559,6 +558,7 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
559558
- Suspend Group 7
560559
- Suspend Group 8
561560
- Suspend Group 9
561+
- Suspend Group 10
562562

563563
### Help
564564
- About
@@ -600,11 +600,11 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
600600
- Cell Launch Mode Trigger
601601
- Cell Play Mode Loop
602602
- Cell Play Mode One Shot
603-
- Cell Quantize 1 Bar
604-
- Cell Quantize 1/16 Note
605603
- Cell Quantize 1/2 Note
606604
- Cell Quantize 1/4 Note
607605
- Cell Quantize 1/8 Note
606+
- Cell Quantize 1/16 Note
607+
- Cell Quantize 1 Bar
608608
- Cell Quantize 2 Bars
609609
- Cell Quantize 4 Bars
610610
- Cell Quantize 8 Bars
@@ -620,11 +620,11 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
620620
- Global Launch Mode Gate
621621
- Global Launch Mode Toggle
622622
- Global Launch Mode Trigger
623-
- Global Quantize 1 Bar
624-
- Global Quantize 1/16 Note
625623
- Global Quantize 1/2 Note
626624
- Global Quantize 1/4 Note
627625
- Global Quantize 1/8 Note
626+
- Global Quantize 1/16 Note
627+
- Global Quantize 1 Bar
628628
- Global Quantize 2 Bars
629629
- Global Quantize 4 Bars
630630
- Global Quantize 8 Bars
@@ -654,6 +654,14 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
654654
- Insert Named
655655
- Recall Marker
656656
- Recall Marker 1
657+
- Recall Marker 2
658+
- Recall Marker 3
659+
- Recall Marker 4
660+
- Recall Marker 5
661+
- Recall Marker 6
662+
- Recall Marker 7
663+
- Recall Marker 8
664+
- Recall Marker 9
657665
- Recall Marker 10
658666
- Recall Marker 11
659667
- Recall Marker 12
@@ -664,15 +672,7 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
664672
- Recall Marker 17
665673
- Recall Marker 18
666674
- Recall Marker 19
667-
- Recall Marker 2
668675
- Recall Marker 20
669-
- Recall Marker 3
670-
- Recall Marker 4
671-
- Recall Marker 5
672-
- Recall Marker 6
673-
- Recall Marker 7
674-
- Recall Marker 8
675-
- Recall Marker 9
676676
- Set Start and End to Selection
677677

678678
### Media
@@ -780,12 +780,12 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
780780

781781
### Note Length
782782
- 1/1
783-
- 1/16
784783
- 1/2
785-
- 1/32
786784
- 1/4
787-
- 1/64
788785
- 1/8
786+
- 1/16
787+
- 1/32
788+
- 1/64
789789
- Dotted
790790
- Follow Quantize
791791
- Next Base
@@ -805,18 +805,18 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
805805
- Set Gate 0.5
806806
- Set Gate 1.0
807807
- Set Gate 1.5
808-
- Set Rate 1/16
809-
- Set Rate 1/16 T
810808
- Set Rate 1/2
811809
- Set Rate 1/2 T
812-
- Set Rate 1/32
813-
- Set Rate 1/32 T
814810
- Set Rate 1/4
815811
- Set Rate 1/4 T
816-
- Set Rate 1/64
817-
- Set Rate 1/64 T
818812
- Set Rate 1/8
819813
- Set Rate 1/8 T
814+
- Set Rate 1/16
815+
- Set Rate 1/16 T
816+
- Set Rate 1/32
817+
- Set Rate 1/32 T
818+
- Set Rate 1/64
819+
- Set Rate 1/64 T
820820
- Single Mode
821821

822822
### Pattern
@@ -898,12 +898,12 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
898898

899899
### Quantize
900900
- 1/1
901-
- 1/16
902901
- 1/2
903-
- 1/32
904902
- 1/4
905-
- 1/64
906903
- 1/8
904+
- 1/16
905+
- 1/32
906+
- 1/64
907907
- Clear Pattern
908908
- Next Base
909909
- Previous Base
@@ -1031,7 +1031,6 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
10311031
- Select Mute Patch
10321032
- Select Patch
10331033
- Select Patch 1
1034-
- Select Patch 10
10351034
- Select Patch 2
10361035
- Select Patch 3
10371036
- Select Patch 4
@@ -1040,9 +1039,9 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
10401039
- Select Patch 7
10411040
- Select Patch 8
10421041
- Select Patch 9
1042+
- Select Patch 10
10431043
- Select Player
10441044
- Select Player 1
1045-
- Select Player 10
10461045
- Select Player 2
10471046
- Select Player 3
10481047
- Select Player 4
@@ -1051,9 +1050,9 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
10511050
- Select Player 7
10521051
- Select Player 8
10531052
- Select Player 9
1053+
- Select Player 10
10541054
- Select Setlist Item
10551055
- Select Setlist Item 1
1056-
- Select Setlist Item 10
10571056
- Select Setlist Item 2
10581057
- Select Setlist Item 3
10591058
- Select Setlist Item 4
@@ -1062,6 +1061,7 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
10621061
- Select Setlist Item 7
10631062
- Select Setlist Item 8
10641063
- Select Setlist Item 9
1064+
- Select Setlist Item 10
10651065
- Set Current as Default Patch
10661066
- Set Playback Mode Continue
10671067
- Set Playback Mode Loop
@@ -1081,6 +1081,14 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
10811081
- Apply Next
10821082
- Apply Previous
10831083
- Apply Variation 1
1084+
- Apply Variation 2
1085+
- Apply Variation 3
1086+
- Apply Variation 4
1087+
- Apply Variation 5
1088+
- Apply Variation 6
1089+
- Apply Variation 7
1090+
- Apply Variation 8
1091+
- Apply Variation 9
10841092
- Apply Variation 10
10851093
- Apply Variation 11
10861094
- Apply Variation 12
@@ -1091,15 +1099,7 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
10911099
- Apply Variation 17
10921100
- Apply Variation 18
10931101
- Apply Variation 19
1094-
- Apply Variation 2
10951102
- Apply Variation 20
1096-
- Apply Variation 3
1097-
- Apply Variation 4
1098-
- Apply Variation 5
1099-
- Apply Variation 6
1100-
- Apply Variation 7
1101-
- Apply Variation 8
1102-
- Apply Variation 9
11031103
- Find and Apply Variation
11041104

11051105
### Spatial Audio
@@ -1120,7 +1120,6 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
11201120
- Previous Tool
11211121
- Toggle Range Tool in upper event area
11221122
- Tool 1
1123-
- Tool 10
11241123
- Tool 2
11251124
- Tool 3
11261125
- Tool 4
@@ -1129,6 +1128,7 @@ Host.GUI.Commands.interpretCommand("Edit", "Select All");
11291128
- Tool 7
11301129
- Tool 8
11311130
- Tool 9
1131+
- Tool 10
11321132

11331133
### Track
11341134
- Activate Layer

docs/overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ This is not a complete reference. There is plenty of missing, improperly structu
2222
| [API Index](api_index.md) | Map of all documentation pages |
2323

2424
<br/>
25-
⚠️ **Disclaimer:** Fender/PreSonus does not provide official public documentation for this API. This reference is entirely community-derived and incomplete. The API is internal and undocumented.
25+
⚠️ **Disclaimer:** Fender/PreSonus does not provide official public documentation for this API. This reference is entirely community-derived and incomplete. The API is internal and undocumented. The documentation and included example scripts were developed with the assistance of agentic coding agents. All included script examples have been tested within Studio Pro but should be reviewed for edge cases.

docs/scripts/chord-mapping.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,8 @@ Scrapes selected chord events from the Chord Track, extracts data (name, type, r
4242
## Tips
4343
- Processes **only selected chords** (no auto-select).
4444
- Use in EventEdit context on Chord Track.
45-
- JSON includes: name, type, root/bass, pitches, start/end times, isLydian.
45+
- JSON includes: name, type, root/bass, pitches, start/end times, isLydian.
46+
47+
---
48+
49+
> **Development Note:** This script and its documentation were developed with the assistance of agentic coding tools.

docs/scripts/crossfade-tool.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,4 +154,8 @@ The command path accepts `Length`, `Type`, and `Bend` arguments. The `AudioFunct
154154

155155
## Tips
156156

157-
- If the dialog does not open, make sure at least one audio event is selected. The tool still requires at least two audio events before applying the crossfade.
157+
- If the dialog does not open, make sure at least one audio event is selected. The tool still requires at least two audio events before applying the crossfade.
158+
159+
---
160+
161+
> **Development Note:** This script and its documentation were developed with the assistance of agentic coding tools.

docs/scripts/flam-tool.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,4 +135,8 @@ The final start position for both notes is determined by combining the Time, Abs
135135
- **Negative Time values** keep the original note in place and move the duplicate, which is often the more natural-sounding flam.
136136
- **Use "Before" with positive Time** to create "dragged" flams that precede the main note.
137137
- **Lower Velocity percentages** (50-75%) create more realistic secondary flams that blend naturally.
138-
- **Absolute Mode** is useful for consistent timing regardless of tempo changes.
138+
- **Absolute Mode** is useful for consistent timing regardless of tempo changes.
139+
140+
---
141+
142+
> **Development Note:** This script and its documentation were developed with the assistance of agentic coding tools.

docs/scripts/index.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,8 @@ This section documents various example scripts that demonstrate script usage and
1414
| [**Marker Creator**](./marker-creator.md) | Non-blocking workspace panel with a 4×4 button grid for creating named markers during playback |
1515
| [**Multi Script Demo**](./multi-script-demo.md) | Demonstrates registering multiple scripts in a single `.package` with separate dialogs |
1616
| [**Select by Sound Variation**](./select-sound-variation.md) | Selects notes in the Note Editor by their Sound Variation name |
17+
| [**Unified Tool Selector**](./unified-tool-selector.md) | Semantic tool commands that activate the correct tool regardless of the active editor view |
18+
19+
---
20+
21+
> **Development Note:** The scripts and documentation in this section were developed with the assistance of agentic coding tools.

docs/scripts/marker-creator.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,4 +373,8 @@ dlg.terminate()
373373
- The panel is non-blocking — you can interact with Studio Pro while it's open.
374374
- Create multiple named presets for different songs or use cases (Film Scoring, Dialog, Sound Design)
375375
- Adjust the frame rate in the offset controls to match your project's Session Setup Frame Rate for accurate frame-based offset.
376-
- The Clear button shows a confirmation dialog — the "(No Preset)" SelectBox option does not, save before selecting it.
376+
- The Clear button shows a confirmation dialog — the "(No Preset)" SelectBox option does not, save before selecting it.
377+
378+
---
379+
380+
> **Development Note:** This script and its documentation were developed with the assistance of agentic coding tools.

docs/scripts/multi-script-demo.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,8 @@ The **Multi Script Demo** package in this repository is a working example demons
4545

4646
1. Navigate to the Track menu in the menu bar. You should see `Script A` and `Script B` populating the Track menu.
4747
2. Run either script, a dialog will appear.
48-
3. Use the checkbox to toggle whether it shows the alert window after pressing 'OK' in the dialog window.
48+
3. Use the checkbox to toggle whether it shows the alert window after pressing 'OK' in the dialog window.
49+
50+
---
51+
52+
> **Development Note:** This script and its documentation were developed with the assistance of agentic coding tools.

docs/scripts/select-sound-variation.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,4 +151,8 @@ this.notify = function(subject, msg) {
151151
## Tips
152152

153153
- If the variations list is empty that indicates the active region does not have a Sound Variation Map to reference, select an Instrument Part containing variations.
154-
- Typing names directly in the edit box allows you to target variations without scrolling through the list.
154+
- Typing names directly in the edit box allows you to target variations without scrolling through the list.
155+
156+
---
157+
158+
> **Development Note:** This script and its documentation were developed with the assistance of agentic coding tools.

0 commit comments

Comments
 (0)