Platform: Fender Studio Pro / PreSonus Studio One
⚠️ 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.
| Section | Description |
|---|---|
| Package Structure | Required files, metainfo.xml, classfactory.xml |
| Script Types | Category reference and registration patterns |
| Host API | Host namespace — Classes, Engine, GUI, IO, Signals, etc. |
| SDK Files | CCL.JS, Engine.JS, Devices.JS, HostUtils, etc. |
| Context Object | editor, functions, iterator, parameters, track list |
| Objects | Event, Region, Track, Channel, Mixer, Time objects |
| Skin XML Reference | Known skin.xml element and attribute reference |
| Utilities | Color, tempo, level conversions; debugging tools |
| Scripts | Real-world script implementation examples |
| API Index | Map of all documentation pages |
| Limitation | Detail |
|---|---|
| No MIDI CC iteration | context.iterator, editor.selection.newIterator(), and activeRegion.createSequenceIterator() exposed only note events; CC/controller fields stayed undefined |
| mainTrackList availability | context.mainTrackList is undefined in MusicEdit |
| Selection is not undoable | Disable journaling before any selection operations |
| Piano editor quantize UI | Read-only via context.editor.quantize |
| context.iterator availability | May be sparse or unavailable depending on the active editor surface and selection state |
| Event time object mutability | event.startTime, endTime, lengthTime return snapshots — writing to .seconds or .musical has no effect. Use newMediaTime() + edit functions. |
| Bar Offset is visual only | editor.activeRegion.start and event.region.start return the absolute beat position and do not consider Bar Offset |
- Complete
skin.xmlelement and attribute reference. Still missing documentation. - Locate and remove any remaining probe findings in the documentation that are not applicable, accessible, or relevant to the scripting API.
| Resource | URL |
|---|---|
| Studio One Toolbox | https://s1toolbox.com/navigationessentials |
| GitHub — DjFix functions helper | https://github.com/DjFix/studioone_functions |
| KVR Audio Forum | https://www.kvraudio.com/forum/viewtopic.php?t=506195 |
| audiosex.pro Forum | https://audiosex.pro/threads/how-do-you-install-studio-one-x.30244/ |
| GitHub — Track-Actions | https://github.com/jamesg545454/Track-Actions |
- Navigation Essentials 2.0.1 (Lukas Ruschitzka) — reference track selection, colorize, piano editor tasks
- Studio One X v2.6.1 (Narech Kontcell) (
studioonex.package) — extensive source reference - Studio One Scripts.exe (LawrenceF:KVR) - referenced source files
- ChordstoBiabTextFile (crossovercable:KVR, tonedef71:KVR) - reference source files for chord events
- Track-Actions (Jamesg545454) - reference multi-command .JS files
- Logical Editor (Jamesg545454) - reference display formatter for parameter-backed controls, form background, view layout wrapper
Prerequisites: Node.js >= 20
npm install
npm run start # Dev server with hot reload at localhost:3000
npm run build # Static production build
npm run serve # Preview the build locally