gate in / gate out

Home Forums OWL OWL Modular gate in / gate out

This topic contains 15 replies, has 5 voices, and was last updated by  Martin Klang 1 year, 5 months ago.

Viewing 15 posts - 1 through 15 (of 16 total)
  • Author
  • #2106



    quick question re the digital i/o. chances are i’m simply missing something, but as I couldn’t find any obvious directions as to how to use them (they’re missing, for instance, in the pd template?), poking around in the code confused me even more.

    specifically, as per schematic (rev-02): In_D = PB7, Out_D = PB6; now in device.h, it looks as if they’re defined the other way round?

    #define SWITCH_A_PIN GPIO_Pin_6 (#L86)

    #define PUSH_GATE_OUT_PIN GPIO_Pin_7 (#L132)

    i assume the error is in the schematic?


    on a related note, i fail to recompile owlware.

    things hang with

    No rule to make target Libraries/CMSIS/DSP_Lib/Source/TransformFunctions/arm_bitreversal2.o', needed byBuild/OwlWare.elf’. Stop.

    make -d tells me it can’t find arm_bitreversal2.o first (“does not exist”), then fails to remake it.

    the weird thing is it does build arm_cfft_f32.o, arm_cfft_radix8_f32.o, arm_rfft_fast_f32.o and arm_rfft_fast_init_f32.o; but it refuses to build arm_bitreversal2.o

    any hints?


    • This topic was modified 2 years, 11 months ago by  mxmxmx.
    • This topic was modified 2 years, 11 months ago by  mxmxmx.
    • This topic was modified 2 years, 11 months ago by  mxmxmx.
    • This topic was modified 2 years, 11 months ago by  mxmxmx.
    • This topic was modified 2 years, 11 months ago by  mxmxmx.


    ah, wait. ok, so it looks as if there’s arm_bitreversal2.S, but “make clean” removes it?

    compiles if/when i manually add arm_bitreversal2.S or use arm_bitreversal.c via ; any way to change this (odd) behaviour?

    finally, i’m getting a linker error

    … OwlWare/./Source/ProgramManager.cpp:307: undefined reference to `buttonChanged’
    collect2: error: ld returned 1 exit status

    it compiles when i comment out L#307.

    • This reply was modified 2 years, 11 months ago by  mxmxmx.

    Martin Klang

    Yes I think there is an error on the OWL Modular schematics, if you trace it out to the OWL Digital board it shows that the pins have been swapped.

    make clean shouldn’t remove the .S file, and it is required for compilation. Are you building on Windows? I think the problem is a non-case-sensitive match in the clean target, I’ve removed that.

    buttonChanged() : it seems the signature in the definition didn’t match the declaration for some reason, not sure how this ever got compiled! Fixed and pushed.

    Please pull the latest from github and it should all work!




    ah phew, obvious enough .. anyway, works now. thanks!

    about the gate input though: physical pins aside, i’m still trying to get my head around how this works, semantically i suppose. ie how one would differentiate between the tact switch and the gate input?

    for instance, there’s an enum in stompbox.h, but none of the entries obviously corresponds to the gate input:

    enum PatchButtonId {

    ditto for the two callbacks (pushGateCallback() and pushButtonCallback()), they largely seem to do the same, ie setButton(PUSHBUTTON) or clearButton(PUSHBUTTON)

    in other words, they’re treated as one and I’d use the gate input by calling it PUSHBUTTON?

    e.g. / as in? adsr.gate(isButtonPressed(PUSHBUTTON), getSamplesSinceButtonPressed(PUSHBUTTON));

    • This reply was modified 2 years, 11 months ago by  mxmxmx.

    Martin Klang

    “I’d use the gate input by calling it PUSHBUTTON?”

    Yes, that’s the idea. The reason being that by design, the same patches should run on both Pedal and Modular OWLs. That’s also why the gate in/out is labelled PUSH on the Modular.

    “adsr.gate(isButtonPressed(PUSHBUTTON), getSamplesSinceButtonPressed(PUSHBUTTON));”

    Exactly that.

    There are ideas to make the button/gate more flexible, so that you can set it to toggle or momentary action for example. That way you could use GREEN_BUTTON / RED_BUTTON as toggle states. I’m still not sure what the best use is. But for the time being, use PUSHBUTTON to mean that either the button is pressed down, or the gate is high.

    • This reply was modified 2 years, 11 months ago by  Martin Klang.


    ok, got it. thanks again; just re-flashed the firmware with in- and outputs adjusted and everything is working properly now (i’m using the digital board with custom ctrl board, that’s way)


    Martin Klang

    Cool – post some photos!



    it’s very similar, just a bit smaller:



    Martin Klang

    That’s really cool, nice work Max and thanks for sharing!



    Hi, to follow up on the push jacks in PD. I thought I read that one is an input, and the other an an output. Is that correct? And I see in another thread a mention of it not being propagated to PD yet. So, for the functional time being in PD, the left push jack is input, and the right jack is not implemented?

    Can we, just for the record, codify exactly what the PD input channels are? I see several hints, but just to be crystal clear…

    Channel-E (“exp”)

    And someday it might be two inputs, Or two outputs, or an input and an output, so could those be Channel-Push-In and Channel-Push-Out? Or maybe Channel-Push-Left and Channel-Push-Right? PD is super-not-happy with me sending bangs to Channel-Push with Channel-Push also receiving, at the moment.


    Martin Klang

    Those names are correct.

    I believe Channel-Push output should be working now too!

    PD is super-not-happy with me sending bangs to Channel-Push with Channel-Push also receiving

    Oh of course! That’s never occurred to me. Ok we’ll have to come up with some solution.

    Personally I’ve never liked the ‘Channel-…’ names, because they’re not channels, they’re parameters!
    It would be nice to support configurable, descriptive parameter names. Hopefully this will be possible with a forthcoming release of Heavy.



    Hi Martin

    Can I get confirmation what the Gate I/O is for Max/Gen~? are the ‘@ID Push’ for Input, what about gate output?

    Also is the Expression input still called “E” (problematic in Gen)?


    • This reply was modified 1 year, 8 months ago by  axxonn.

    Martin Klang

    Yes E is taken by Euler’s constant in Max, so the fifth parameter is called Exp – and the gate/pushbutton input is Push.
    I don’t think you can send parameters or gate /button signals from Gen though, or am I mistaken?



    Hi Martin

    thanks for clarifying that

    you can generate a signal out of gen~ that would be good enough to trigger something – something a bad as this patch would do it


    but i’m wondering how does one address that dac gate output? it seems a shame to have it there but not be able to utilize it



    I dont really have a clue whats going on as I’m a basic/newb max for liver and potential OWL user and recent discoverer, I’m curious as well to try and wrap my head around whats possible in terms of gate input and output,

    In Gen~ with OWL are we able to take a gate input for instance and then trigger something with it, or divide/multiply/count the triggers (for instance to create swing clock and shuffle clocks from a trigger, or delay every 3rd or fourth note/trigger by a particular amount?

    also is it a possibility to create an LFO or CV voltage from inside Gen/max as this would be awesome for making utilities and CV sources?

    cheers in advance for any help clarifying these details, I’ve looked everywhere on forums and documentation and I cant be sure from what I’ve seen that this is possible.

Viewing 15 posts - 1 through 15 (of 16 total)

You must be logged in to reply to this topic.

Latest News


Follow us on Twitter