-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the StudioOne-LaunchKey-Mini-MK3 Control Surface & Device XML mapping wiki!
This is a living document to detail information about Presonus Studio One surface.XML / device mapping files.
This is not official documentation. It's just me trying to compile my own for reference.
Studio One's "Focus mode". If you are in focus mode, your midi mapping works as long as your plugin window is in focus. Additionally, the mapping between your hardware knob and plugin parameter is retained between songs. When Focus mode is turned off, the mapped control will work even when your plugin is not active. Reference https://www.youtube.com/watch?v=Vq0GMDvagi4
Yellow button on in the upper right hand corner of the plugin window indicates focus mode.

Presonus Studio One Surface/Device mapping cheatsheet 
You can define namespaces and variables within sections as needed.
<ControlSurface> <!--** Create only ONE Instance **-->
<Controls> <!--** Create only ONE Instance **-->
<Control name="" type="" options="" title=""> <!--**create as many as needed**-->
<MidiMessage status="" channel=n address=n options="" resolution=""/>
<Handler class="MyCustomHandler"/> <!-- Requires custom Javascript code -->
</Control>
</Controls>
<Mappings> <!--** Create only ONE Instance **-->
<define name="MYNAMESPACE[n]" value="0" />
...
<GenericMappings> <!--** Create only ONE Instance **-->
<Bank target="" name="">
<ScrollBank target=...>
<Strip name="" onConnect...>
<ParamInvoke param="" options=""/>
<Value control="" param="" options=""/>
<Touch control="" param="" options=""/>
<String control="" param="" options=""/>
</Strip>
</ScrollBank>
</Bank>
</GenericMappings>
<Global> <!--** Create only ONE Instance **-->
<Toggle control="" param="" options=""/>
<Radio control="" param="" value="" options="" offvalue=""/>
<Invoke control="" onRecieve=""/>
<PlainValue control="" param=""/>
<Value control="" param=""/>
<Command control="" command.category="" command.name="" options=""/>
</Global>
<PadSection> <!--**create as many as needed**-->
..stuff..
<foreach>
<ParamVariant> </ParamVariant>
</foreach>
</PadSection>
<DeviceMapping name="" device="" onConnect=""> <!--**create as many as needed**-->
<!-- Other XML sections are allowed inside like -->
<!-- include template="" -->
<!-- Bank | PlacementBank | ScrollBank -->
<!-- Target= RemoteBank | AllBank | FollowBank | MasterBank | FowardBank -->
<!-- Strip | Foreach | ScrollButton -->
<!-- ParamVariant | Group | Invoke | Value | ParamInvoke -->
</DeviceMapping>
</Mappings>
<Templates> <!--** Create only ONE Instance **-->
<Template name=""> <!--**create as many as needed**-->
<String control="" param=""/>
<Value control="" param=""/>
<Touch control="" param="" options=""/>
<Radio control="" param="" value="" options="" offvalue=""/>
<Variant control="" options="" statusled="">
<Group>
<Relative control="" param=""/>
</Group>
</Template>
</Templates>
<Sections>
<GenericSection name="" rows="" columns="">
..stuff..
</GenericSection>
</Sections>
</ControlSurface>```