What does the module do? So far it outputs noise based on a short audio sample sent through a bytebeat equations that seems to evolve endlessly. I envision each of the 6 eyeballs either being an output, knob, or input. I’m still experimenting with the functionality.
I’d love to do that, but I haven’t found a way of executing equations such as that without having to recompile the C code. If you have any tips, I’m all ears!
The expression must be “interpreted” and evaluated at runtime on the fly (possibly after a preprocessing stage to optimize speed). The possible approaches are:
build a raw/artisanal parser that supports the operators (and precedence) of the bytebeat operators (as said by stoermelder bison and yacc (or ANTLR) are the official tools for doing stuff like this, but the expressions are simple enough that a hand-made tokenizer and AST tree evaluator could be enough )
use a ready made C++ expression parser like this one: fastmathparser (the only difficulty is to make sure that the operations are made using 8-bit unsigned base type)
The dynamic evaluation of the expressions is surely computational expensive, but usually the more complex modules do hundreds of operations for each sample, so I think it should not be an issue.
First pass of the new module. Lots of work still to be done! This module is taking a sample loop as input and acting as an effects processor. There are multiple “effects” that will be selectable via CV. Obviously, the front panel is total chaos right now while I’m working on the module.
Cool. I like what it does to the sample. (From which movie is it? I feel like I recognise the voice)
In the trailer that Alien seemed to cry blood. Maybe embed a fader under one of them. With its rail blending into the background and knob a red drop of blood.
Other eyes could be used directly as knobs. He’d roll his eyes when changing parameters.
I’m hoping to release this module by the end of the month! Does anyone know if there are any rules about how complex a front panel can be? Or how to test if a front-panel renders in acceptable amount of time and doesn’t hog up the CPU?
There are no rules, but it sure is possible to make one that will kill bad computers. What I do isn’t great - I time how long I spend in Widget::draw(). But that doesn’t tell the whole story. Hopefully someome will chime in with a good answer. @heapdump might know. I think he made a panel once that would bring a lot of computers to their knees.