Using OWL with MIDI Controller

Hi there, I know the OWL can use MIDI over USB by being plugged into a computer. Is it possible to use a MIDI controller without a computer as the host? And if so, is there a certain term I should be looking for (class compliant or something)?

Specifically, I’d like to use my Behringer FCB1010 as additional switches for the OWL Pedal, but the FCB1010 only has plain old 5 pin MIDI connectors, so I would need a MIDI to USB interface. Just hoping someone else here has experience with compatible gear.

Thanks!

Hi neil,

with the current firmware there’s extensive support for USB MIDI in client mode, meaning you plug it into a host computer, tablet, smartphone or similar. This interface is class-compatible, so any USB MIDI host will be compatible without needing special drivers or software.

The hardware has actually been designed to support USB Host through the micro AB connector, same as a smartphone, using something called USB OTG. This would allow you to plug another USB device straight into the OWL Pedal, using a simple OTG cable. However we’ve not developed the firmware support for this (yet!).

Another hardware feature is that the expression pedal pins also expose a UART (serial port) which could be used for DIN MIDI. We did some early experiments with this but it’s not something which has been developed.

So in short, no, not at the moment - unless you fancy doing some firmware hacking!

I havent messed around with the midi stuff too much but I have used a Kenton Midi USB host mkII and it seems to work fine

thanks jg, good to know that works

Thanks jg, that looks extremely useful for me, OWL or not!

Thanks for the info, Martin. Great to know the hardware can support it. And actually, I do fancy some firmware hacking :P. I’ve been messing with the source for it for the past week or so. Nothing will likely come from it, but if I ever do get something working, I’ll make sure to submit a pull request :slight_smile:

Edit: Also, I didn’t realize it could work with a phone/tablet as the host too. That’s pretty awesome, and much easier for me to fit on a pedalboard than my laptop.

Have you tried using Touch OSC to control the owl?

@cdbailey, I usually use TouchOSC at home to replace hardware controllers I have in my live rig. It works great but you need something between TouchOSC and the OWL to translate OSC to MIDI. I use puredata.

If you want to know more take a look at this: https://github.com/JoseFuzzNo/superSaw
It’s a synthesizer made when the OWL hadn’t MIDI note messages (now is pointless). You can see in the patch how the TouchOSC messages are handled.

Might be worth having a look at Lemur too, which is capable of sending MIDI
https://liine.net/en/products/lemur/

Touch OSC has made quite a few updates. Touch OSC can output MIDI now too, including Program Change data. And I believe it can transmit MIDI directly over USB, no wireless network necessary. I’m just not not sure it would recognize the Owl as a device or if Touch OSC will function as the host. Guess I’ll buy an Apple Lighting to USB Camera adapter today and give it a shot. Fingers crossed!

holy smokes. it worked!

Cool - a video would be ace!

ps have you had a look at the possible MIDI mappings?
https://hoxtonowl.com/mediawiki/index.php/MidiMappings
Lots of extended parameters to play with :slight_smile:

The more I toyed around with hooking up my phone to the Owl, the more I didn’t like it very much. However, this company right here is doing some pretty amazing things! Any of their gen3 DMC devices will function as a MIDI host.

So I went ahead and bought a DMC-4 from Disaster Area Designs. Unfortunately it doesn’t integrate with the Owl as smoothly as I’d hoped. The DMC is a bit more limited than I expected and mainly just controls MIDI program changes. This works great for all of my other MIDI gear where presets are accessible via program changes. But is there a way to program the Owl so that a CC-26 isn’t necessary for external control? Also, just curious, has there been any interest using MIDI PC messages to change presets, not just patches?

Imho, it would be ideal to be able to store presets on the Owl that are controlled with program changes. This would get a lot more bang for buck out of the patches. Also (I’m sure you’ve heard this before) since there’s no digital label for the knobs, it doesn’t seem very practical for stage use without presets.

I’m not that great of a programmer but I’m hoping that I can find a way to make this happen. I don’t expect to figure this out anytime soon but I’ve downloaded Owlware from Git and have successfully deployed a compiled version with slightly modified patches. So I guess that’s a start.

I found a file called MidiHandler.hpp. There’s a case statement in there for PATCH_CONTROL if(value==127)…

Would it break the firmware if I changed this value to 0? I’m guessing that the knobs would no longer function but that’s fine as long I can get away hard-coding parameter values into the the patches.

If what you want to do is set it to Remote Control by default, then it’d be better to add a couple of lines in Owl.cpp, at the end of setup().

There’s no convenient way to do this at the moment, but you can fake a MIDI CC with:


extern MidiHandler handler;
handler.handleControlChange(0xb0, PATCH_CONTROL, 127);

Presets: yes this has been on our collective minds for some time! Not sure exactly how to store and recall, and how the preset values would be overridden by knob changes. How exactly would the user interact with a preset, vis a vis a patch?

At the moment, the workaround is to make your own fixed-parameter patches that you can recall with a PC or with some knob twiddling.
You can of course code ‘if knob hasn’t changed then use default value X’ into your patch as well.

And yes, it would be good to improve how the pedal works in a live environment. At the moment, with user patch slots and standalone patch changes I think you can always find a way, but it’s not as easy as it perhaps could be.

Thank you for the recommendation and reply. I’ll give those a try! Btw, I tried something out just as a test. I added

memcpy(midi_values, getAnalogValues(), NOF_PARAMETERS*sizeof(uint16_t));
setParameterValues(midi_values, NOF_PARAMETERS);

to both sides of the if-statement. This seems to work ok for eliminating the need for a cc26=127 message. Surprisingly, the knobs still worked. However I still wasn’t able to get my DMC pedal to communicate with the Owl. Looks like they need to update their firmware to include Owl compatibility. All other USB-MIDI devices that the DMC works with are customized to the firmware, for instance the Zoom Multistomp. Anyhow, I’ve been emailing Disaster Area Design’s technical support about adding the Owl to their firmware.

As far as presets go, it might be necessary to create multiple modes. For instance, on my Korg Electribe, there’s a sample mode which allows users to scroll between and modify/upload samples. And then there’s another mode for scrolling between patterns/presets. But since there are significantly less buttons on an Owl pedal than on an Electribe, my guess is that the most convenient way to switch between and modify these modes would be via a separate application like the Owl app (which I would be totally ok with).

Thanks again Martin. JSYK, I was told by technician at Disaster Area Designs said that they’re busy prepping for Summer NAMM but afterwards wanted to acquire an Owl pedal so they can integrate it into their firmware (so hopefully in the later half of this summer).

The OWL is a class-compliant USB MIDI device so I’m surprised it requires firmware changes to support it. Looks like a handy device though.
There’s a Kenton USB Host interface which we tried out here the other day, that worked fine with the OWL - must have been this one: http://www.kentonuk.com/products/items/utilities/usb-host.shtml

I tried entering that snippet of code at the end setup( ) in Owl.cpp but I get an error:

./Source/Owl.cpp: In function ‘void setup()’:
./Source/Owl.cpp:455:10: error: ‘MidiHandler’ does not name a type
extern MidiHandler handler;
^
./Source/Owl.cpp:456:3: error: ‘handler’ was not declared in this scope
handler.handleControlChange(0xb0, PATCH_CONTROL, 127);

I’m working with OwlWare 12 since it seems to be the last stable. Is there something I’m doing wrong?