Monogram API

Profiles (Optional)

In addition to specifying Inputs and Presets for your app, you can also include a collection of Profiles to get the user started. We call those Profiles "Quick Start Profiles".
Create a folder called profiles in your app bundle folder. Inside this folder add all the .monogram files for the Quick Start Profiles you want to include with your app. (.monogram files are just JSON files with the format described in profiles.json. Monogram Creator can be used to create and modify .monogram files. )
Example Config Bundle folder structure:
├── profiles
│ ├── Quick Start Profile 1.monogram
│ └── Quick Start Profile 2.monogram
├── config.json
├── icon.png
├── inputs.json
└── presets.json

Creating .monogram Files with Monogram Creator

  1. 1.
    Open Monogram Creator and create a profile with all settings you wish to save to your Quick Start Profile.
  2. 2.
    From the menu bar, select "File" > "Save Profile". (Or the save icon "Save Profile As..." along the right side)
  3. 3.
    Save the .monogram file in your config bundle's profiles folder.
  4. 4.
    Open Creator's Preferences window and reload the list of apps. The added Quick Start Profiles should appear in the expandable section at the bottom of the application window.

Automatically Loading Quick Start Profiles

Applies to Monogram Creator 5.3.2 and above only
The autoLoad property is available in config.json to specify which Quick Start profiles should be automatically loaded when the user clicks on your app's icon in the New Profiles page.
For an example, see this Config Bundle.

How are Profiles assigned to Modules

Applies to Monogram Creator 5.4 and above only
When a profile is saved, the modules' functions are saved in priority order. Internally, the layout of the modules is represented as a tree. The priority order is determined by the module's position in a tree traversal.
When loading a profile, Monogram Creator associates the functions in the profile with physical modules by the priority order.
This means that if end-user duplicates the tree exactly (i.e. connect every exact module pins to exact pads), the functions should be assigned identical to the original profile.
Different Layout
Since end-users may not have the exact module layout as when you saved the profile, mis-assigned layouts are possible. However, once a profile is loaded, the modules' serial numbers are directly associated with the functions. Modules can then be physically relocated to achieve desired layout.
Note that it is possible to achieve same visual layout with different tree structures. This will result in a different priority order.
Different Number of Modules
Monogram Creator will assign functions in priority order until available modules are exhausted.
For example, a profile containing functions for three dial modules is loaded into a Creative Console that only has two dial modules connected. The last dial module in the profile's priority order will be dropped.
Modifying the Priority Order
To manually modify the priority order: Locate the assignments property of profiles.json, then locate the desired module type (e.g. orbiter), then manually re-order the PresetsType objects inside the array for that module type.