Order of execution core

gentleclockdivider Member Posts: 93 Helper

I'm having an issue here in core .

A variable (called waveselect ) value between -1 and +1 transitions between a saw wave and square ., middle position zero being silent , it also functions as the oscillator gain , just like the Oberheim sem .

As you can see the wavelsect goes into a comparison and if it's smaller then zero=true : the saw is selected,false =square

Issue I am having is that the waveslect is both used as input to the comparator but also as the value input in the router , this value needs to be received AFTER it's send to the comparator .

A mem write -read value doesn't really help .

When I double click on the waveslect knob ( value zero) there is still a tiny amount of osc gain coming through .

Here's the ensemble


  • colB
    colB Member Posts: 674 Guru
    edited November 2022

    In terms of routing logic there's nothing wrong with your first picture. I would use mod macros for the multiplication though, so it is driven by the oscillators, not the wave selection events.

    The question is why have you used an audio input for o1wave/waveselect?

  • Seqsual
    Seqsual Member Posts: 39 Helper
    edited November 2022

    When waveselect is 0, it is routed to lower output and multiplying square by 0. However, value it had just before reaching 0 (coming from negative) stayed present at the upper output and is multiplying the sawtooth (0 will never be sent to router's upper output).

    If I undestand correctly, here is a fix for your issue:


  • gentleclockdivider
    gentleclockdivider Member Posts: 93 Helper

    Edit got it working ,

Back To Top