LIch C++ CV inputs

Hi I just ordered the Lich and I’m looking through the website and GIThub trying to find examples written in C++ that use the CV inputs just to get some clarity on how to implement them. The four examples preinstalled on the LICH don’t use them? and although I found a thread for a Max patch that used them the patch has been removed from the site.
I have found this OpenWareLab/CPlusPlus at master · pingdynasty/OpenWareLab · GitHub, but I’m wondering where I can download the OWL API. So I can set up a build environment on my computer, (Linux) I have found the Documentation here: OpenWareLaboratory: Main Page but nowhere to download the files (and don’t know if these files are up to date?) and within this API where do I find the code (.hpp file) relevant to Lich panel (audio in, CV in, CV out knobs etc)
For example: registerParameter(PARAMETER_G, “LFO>”) as I understand it is CV out but which CV out? What is the labelling order?
Any pointers would be appreciated.

Hello @Idiede,

It’s safe to assume that CV inputs would be used in every patch you see. What may not be so obvious is that you’re not working with inputs directly. Instead of that OWL patches use parameters, which can be mapped to an actual ADC input or set by MIDI. This allows running patches on different hardware that has different number of inputs/outputs.

So in a typical patch you’ll see something like registerParameter(PARAMETER_A); in patch constructor. Then in processAudio callback current value would be read like getParameterValue(PARAMETER_A);

This is the software side of OWL patches, you can use it to build them without the web patcher.

Parameters order depend on device where patch runs, i.e. on Lich A-D are inputs, F & G are outputs. This is for compatibility with original OWL pedal that had parameter E as expression pedal input. Some devices (Magus) have parameters that can be set as inputs or outputs in software, because it’s using an external chip that supports this kind of direction remapping. “LFO>” has “>” as a shortcut for setting parameter on output. It doesn’t matter on Lich as parameters directions are fixed there.

If you want to have a look at code that manages UI specifically for Lich, it’s in firmware side of OWL here . But you don’t really need to understand that to write patches, because your code would only interact with things from OwlProgram repo.

Hope that helps!

1 Like

Okay, thank you. I think I get it. Is it that the CV inputs are automatically mapped to the four main controls (parameters) of a patch? Quote “CV Inputs for the four main parameters of the patch. The voltage applied to these inputs is summed with the Pot values. CV Range: 10V peak-to-peak (0-10V)” I’ll go through the code of the examples again.

Thanks for the link for to the OWL source code just couldn’t find it. I’m looking forward to working with this module.