USB Midi and Windows

I have 2 issues

Electra One does not work nicely with Win10 or USB host.

  1. my electra one is connected to power via usb only, Pioneer AS1 connected to USB host.
    The electra one hangs when doing a patch request. Sometimes it comes back alive removing the usb host.
    Via Midi Din no issues.

  2. Using Chrome and the Sandbox often locks the midi driver, sendmidi, recievemidi cannot use the driver anymore and i need to reboot. Stopping Chrme does not help.
    Sometimes it works often it doesn’t.

Is it possible to fetch debug logs somehow?

Found its better to install loopMidi and create a virtual midi port.
This is a multi client driver. You can use midiox de route the electra one port to it and as well the sandbox can be setup to use loopMidi.

1 Like

I reached out to Tobias Erichsen - author of the loopMidi - to see if he was willing to license his multi-client usbMidiDriver to Electra One. I tried that in the past already but there was no response. Fingers crossed…

1 Like

For anyone struggling, and for my own reference, I’ve been playing (and managed to soft lock my device on the way - thanks Martin for the help!) with a setup that makes editing and uploading presets a bit of a better experience in Windows, given the limitations of MIDI USB as single client.

Basically - I’ve tried to extend on @Flyweight 's suggestion:

1. Download and install all the needed software:

2. Setup a virtual MIDI port that supports multiclient (loopMidi):

  • Open loopMidi and create six virtual MIDI devices (note.- not sure this is the best approach, see notes at the end). I called them the same way they are supposed to be called based on the documentation (USB connection issues | Electra One Documentation), with a V prefix to indicate Virtual:

*loopmidi_conf

  • Make sure the Electra web app and the Electra One Console are closed (and any other application that might be using Electra’s MIDI ports).
  • Make sure loopMidi is running and connect Electra One via USB to the computer

3. Setup routing between Electra control MIDI port and the virtual MIDI port:

  • Open Midi-OX->Options->Midi Devices
  • IMPORTANT: Unclick Automatically attach Inputs to Outputs during selection, otherwise Midi-OX will setup the ports in a feedback manner.
  • Select the ports that we want as input in the input section, and the ports we want as output in the output section. A picture better than a thousand words:

Press OK. Now you should see a window called Midi Routing Port, where you can drag and drop lines to connect the ports as we want. There is a default MIDI-OX Event Port connection for MIDI-OX connectivity, that can be left alone.

Drag and drop the cables as shown. Notice the names, that is the most important, and make sure in your setup the names correspond to what I have in my windows system:

  • Electra Controller in my computer is Electra Port 1 in the documentation.
  • MID**2 in my computer is Electra Port 2 in the documentation.
  • MID**3 in my computer is Electra CTRL in the documentation.

  • IMPORTANT: I believe MIDI-OX was not intended for large SysEx messages, given that it’s pretty old software. By default, it’s not capable of handling very gracefully large presets. This can be remediated by setting up the buffers MIDI-OX will use when sending MIDI in Options->Configure Buffers. The values that worked for me can be seen here (64k is the maximum the software allows):

buffers

Increasing the max SysEx size in loopMIDI is probably not necessary as by default it’s setup at 256 KB. I have not found a preset template larger than that, but using Lua scripting it’s probably possible to have one a larger preset. This value can be setup to a max of 512 KB.

4. Use the new ports in the applications

Leave MIDI-OX and loopMIDI running - and good to go! Setup the virtual ports as I/O in any application, as those ports are multiclient. We’ve basically wrapped a multiclient driver around the single client ones that come by default in Windows!

If you do not see the virtual ports in any of those applications (or any other application for that matter), restart them first; sometimes they do not pick up new MIDI interfaces immediately.

I’ve personally managed to do the following simultaneously with this setup:

  • Have the console opened with logging in
  • Control some parameters of RME TotalMIX
  • Change presets and control Arturia Prophet in Reaper
  • Have the web app opened, work on a preset and upload it to the device

Hope this setup is stable, as it makes everything easier in Windows if you upload or edit presets often. Also, having the logging on when editing presets is a god send.

5. General notes

  • Do not deactivate SYSEX forwarding in Midi-OX, otherwise the Electra One console will not work.
  • Once everything is working, Midi-OX can be setup to run on the taskbar (pretty convenient)
  • This setup allows you to send SYSEX to Electra via the V Electra CTRL OUT port. I’ve tried enabling logging:
    ./sendmidi.exe dev “V Electra CTRL OUT” syx hex 00 21 45 7F 7D 01 01
  • Logging does indeed seem to make the device a bit less responsive (noticeable, but not a show stopper at all).
  • This setup uses 6 virtual ports. I’ve tried with only three loopback ports in loopMIDI, but could not get around some weird feedback stuff. There is probably a better way to do this.
  • Not sure yet how stable this setup is. Hope it does not cause any issues!

Edits:

12/11/2021 - small addition to eliminate some instability found (increase buffer size in loopMIDI and Midi-OX)

1 Like

@petruccigp Hi J, very nice guide. thanks a lot