Hi all, with the release of the Lich I am taking a dive into gen~ patch development and would like to document and share procedures and resources that I’ve been able to collect or figure out from information available on the forum, github and experimentation.
I am a new comer to the OWL platform, so these posts might seem fragmented and biased to Lich functionality, but platform wide gen~ support will be kept in mind as much as possible.
corrections, suggestions, enlightnment are welcome!
I’ll update tthis first post as more information is available and the module matures.
At this time, firmware 20.10, supports the following in gen~
A B C D Knobs
knobs are accessed via gen~ objects “Param A”,“Param B”,“Param C”,“Param D”
their range is defined from 0.0 to 1.0 and can be adjusted with gen code to suit your input objects and functions
CV inputs for A,B,C,D knobs are hard linked and summed to the knobs values. Their attenuators are unipolar.
2 buttons that are hard linked to Gate 1 and Gate 2 jacks
buttons are defined via gen~ objects “Param ButtonA”, “Param ButtonB”
their 2 values are defioned from 0.0 to 1.0
USB input
(Not fully explored yet - only assumptions from what was found on forum on github)
Mono, Omni channel midi input for Note Gate, Note Number, Note Velocity, Pitch Bender are defined as"Param Gate", “Param Freq”, “Param Gain”, “Param Bend”
How the incoming midi values are converted can be seen in the gen~ translator code here
USB output
(not explored)
Gate Out
no Lich support in firmware 20.10
current firmware/hardware Input parameter link is “Param Push” - however on Lich this is an Output parameter, so it is inaccessible
CV Out
no Lich support in firmware 20.10
update 12/5/2020
CV out support being tested with gen~ object defined out 3 and out 4 acting as signal outputs
update 12/9/2020
CV is 0-10v
general discoveries
CodeBox input parameter definition works
CodeBox functions to define “Push” values were unsuccessful
“setparam” object for nested gen objects was unsuccessful - expected behavior was to nest “Param F”, “Param G” and “Param Push” in a gen object withing parent gen~ object and use “setparam” to change values resulting in CV and gate outputs from Lich jacks.
update 12/1/2020
some gen~ objects are autotranslated to economy versions or native STM versions at compilation - this can cause a difference in sound when uploaded to Lich
update 12/4/2020
“cycle” object won’t understand negative values unlike in gen~, so you must use an “abs” when feeding a number
overall oscillator frequency seems lower than when testing in MaxMSP and on the website
update 12/9/2020
tricking gen~ Data to populate from code is possible with using a selector object, but maximum supported values is 253 via the web encoder currently. You can split the data into more loops or just hardcode poke functions per sample.
Owl Digital mk2 Rev7 Specs
48kHz 24-bit stereo audio
this could be a reason for differences in sound in Gen~ vs Lich - same settings on dev machine should help
3500 operations per sample
STM32F427 180MHz, 256Kb RAM, 1Mb Flash
8Mb SDRAM
8Mb NOR Flash
Integrated DSP, FPU, DMA