OWL Firmware Release v12

New firmware release for OWL Pedal and OWL Modular now available for download:

To upgrade from a recent version of the firmware (v10 or later), follow the instructions at the bottom of this page:
https://hoxtonowl.com/wiki/OwlControl

New features include:

  • extended parameters: up to 24 parameters controlled by MIDI
  • incoming events: handle button presses and MIDI note on/off messages in the patch
  • outgoing events: send parameter and button changes as MIDI CC and note on/off messages
  • parameter defaults, ranges, smoothing, hysteresis, and non-linearity (exponential and logarithmic curves)

There are now two ways of defining and using parameters:

  • registerParameter() and getParameterValue() - same as before
  • getParameter(), getFloatParameter() and getIntParameter() - new method

With getXParameter() you can set a default value, the min and max value (for scaling), a stiffness and smoothness parameter (for hysteresis and smoothing), and the taper (linear, exponential, logarithmic).

Along with the usual A to E parameters you can now define up to a total of 24 parameters, controllable by MIDI:

  • PARAMETER_F: Modulation / CC 1
  • PARAMETER_G: Effect Ctrl 1 / CC 12 (or pitch bend)
  • PARAMETER_H: Effect Ctrl 2 / CC 13
  • PARAMETER_AA to PARAMETER_AH: CC 75 to 82
  • PARAMETER_BA to PARAMETER_BH: CC 83 to 90

To receive button changes there is a new virtual method: virtual void buttonChanged(PatchButtonId bid, uint16_t value, uint16_t samples)
By implementing this method you will receive Pushbutton changes as well as MIDI note on/off messages. Having an event-based model makes it easier to manage button state in the patch. The ‘samples’ parameter gives the sample position (in the following audio block) at which the event belongs.
Note on and off messages are received with a button ID greater than or equal to MIDI_NOTE_BUTTON (defined to be 128). The note velocity is scaled up to a 12-bit value, with a value of zero for note off events.

We’ll be adding documentation and a few example patches over the next couple of days.

Have fun!

Here’s a simple patch that configures the OWL Modular as a MIDI interface, responding to MIDI note messages with gate, pitch and velocity (and vice versa)
https://hoxtonowl.com/patch-library/patch/Midi_Note_Interface/

And here is an 8-voice polyphonic subtractive synth voice that responds to velocity, pitchbend and modulation
https://hoxtonowl.com/patch-library/patch/Poly_Sub/

Both patches are fairly rough but serve to demonstrate the new MIDI functionality.

OwlProgram (for offline compilation) has now also got a v12 release:

And so does OwlControl:

Already running on my pedal. I didn’t try anything yet but if all works as expected, it is a huge improvement.
I like the way NoteOn messages are handled. Thumbs up for that.
And also, I noticed a drastic reduction in CPU usage comparing with v11.

So, congrats for the great work.

PS: I suppose we will be needing the extra controls and maybe a keyboard in the webaudio tab, sorry for noticing :smiley:

@JoseFuzzNo yes quite right! Looking at the nexusosc library for widgets…

Note that patches compiled for the previous version will not work with the new firmware.

However any patch compiled with the new toolset should work with previous as well as current, and future, versions of the firmware.

All online patches have been recompiled. If you are having problems with the user slot patches, or any other patches downloaded before last week, please grab a new version from the website.

Thank you for the update. I noticed, that one of my patches (the bird generator) didn’t play on the website anymore, but when i compiled it again, it did.
Just in case that indicates errors on other recompiled patches. Just compiling them again might do the trick.

Is there a way to select the MIDI channel? I suppose it is hardcoded within the firmware but, would it be possible to change the channel of the MIDI messages that are related to the patch (noteOn, noteOff, controllers G, H and from AA to BH)?

@JoseFuzzNo good question - at the moment, no. The OWL will receive messages on any channel, and send on channel 1.

It would be fairly easy to make it configurable in the firmware. I imagine you would configure a channel, and the OWL would send and receive on this channel only.

However since we use MIDI USB, the channel is generally not so important because each device has a separate interface.

How did you intend to use this - in what scenario do you need to change the channel?

I’m using PureData with a Launchpad. PureData sends MIDI to the Launchpad. If I connect the OWL to the PureData MIDI output all the MIDI messages will reach both devices.

In this case, the MIDI routing will be done by the patch, not the OS, and the only way I know is with the MIDI channel. If there is no interest on this I’ll just modify my firmware.

I think just adding:

int channel = ( message[0] & 0x0F >> 4 )
if ( channel == SOME_MIDI_CHANNEL ) {...}

in read() function on MidiReader.hpp should be enough, right?

Ok… I will answer myself.

[midiin] and [midiout] objects have a method for selecting the MIDI port, the second inlet/outlet is the port number. I didn’t know!

Sorry for the offtopic.

Two things to add to this, rather belatedly!

  1. The default list of factory patches is here:
    https://hoxtonowl.com/mediawiki/index.php/Firmware/v12

  2. I’ve put up a list of OWL MIDI Mappings:
    https://hoxtonowl.com/mediawiki/index.php/MidiMappings

1 Like