Updates to offline compiler

nice! thanks a lot for this info. I didn’t realize we have the means to spin up our own webserver compiler too. Don’t know how hard it is or if it is up to date, but will check it out. Knowing how to do the metadata stuff would be great for offline compiling since it is required for assining those lich controls. Anyway, will read up on it and maybe @mars will be back in the next few months and we would level up our understanding of the platform more.

I think that was made with the Witch in mind. Witch has two gate outputs, controlled with B5 and B6. And two CV outputs, corresponding to output parameters F and G.

Well the easiest thing to do is to upload the patch to the patch library, then do the assignments by setting parameters when you click Edit Patch. The parameters and buttons that show on the About patch page are used to produce the metadata file, which is generated at patch compilation.

You can otherwise add your own metadata.h to the patch source directory if you compile offline.

Here’s an example of what that might look like:

#define OWL_METADATA 1

const char* PatchMetadata::name = "Test Patch";
const int PatchMetadata::channels_in = 2;
const int PatchMetadata::channels_out = 2;
const int PatchMetadata::parameter_count = 5;
const int PatchMetadata::button_count = 4;

const PatchMetadata::Control PatchMetadata::parameters[] = {
     {PARAMETER_A, CONTROL_INPUT, "Freq"},
     {PARAMETER_B, CONTROL_INPUT, "Cutoff"},
     {PARAMETER_C, CONTROL_INPUT, "Gain"},
     {PARAMETER_F, CONTROL_OUTPUT, "Freq>"},
     {PARAMETER_G, CONTROL_OUTPUT, "Gain>"},
};

const PatchMetadata::Control PatchMetadata::buttons[] = {
     {BUTTON_A, CONTROL_INPUT, "Trigger"},
     {BUTTON_B, CONTROL_INPUT, "Overdrive"},
     {BUTTON_E, CONTROL_OUTPUT, "Trigger"},
     {BUTTON_F, CONTROL_OUTPUT, "Overdrive"}
};

great thank you for the detailed example!

im using the offline compiler to test @antisvin 's gen~ wav file playback support which is working out really great so far. So i stumbled on this problem where i needed to do the metadata locally to play around with some tempo synced playback and slicing. Will post results!