User Forum    :: Powered by YaBB
  « MIDI-OX User Forum - 64 bit? »
Welcome, Guest. Please Login or Register.
May 2nd, 2025, 8:35pm


Home Home Help Help Search Search Members Members Login Login Register Register


   MIDI-OX User Forum
   MIDI-OX
   Questions and Discussion
(Moderator: Jamie OConnell)
   64 bit?
« Previous topic | Next topic »
Pages: 1  Reply Reply Notify of replies Notify of replies Send Topic Send Topic Print Print
   Author  Topic: 64 bit?  (Read 1330 times)
timg11
New Member
*



MIDI-OX Rules!

   


Posts: 6
64 bit?
« on: Aug 7th, 2022, 4:21pm »
Quote Quote Modify Modify

I'm using MIDI-OX 7.0.2.372 on Windows 10.  
 
In the About dialolg, MIDI-OX says "Using 32 bit MIDI Library". Granted in 2010 (the last release) 64 bit was not widespread, but the fact that the bits are mentioned indicates it was known at the time.  
 
I am unable to share MIDI drivers between many application such as MIDI-OX and Cakewalk Sonar.  
 
If MIDI-OX is running with a MIDI device open, Cakewalk can't access the driver, reporting "The driver was not enabled".
 
If I start Cakewalk first, MIDI-OX fails at startup with "The driver was not enabled".  
 
I suspect this is related to Cakewalk being 64 bit. Is there a 64 bit driver for MIDI-OX, or a 3rd party application that could allow MIDI driver sharing between 32 bit and 64 bit apps?  I thought LoopMIDI <https://www.tobias-erichsen.de/software/loopmidi.html> might do that, but if it does I haven't figured it out.  
 
Is there any plan to support 64 bit MIDI drivers with MIDI-OX?
« Last Edit: Aug 7th, 2022, 4:25pm by timg11 » IP Logged
Breath
Administrator
*****





   
WWW

Gender: male
Posts: 1029
Re: 64 bit?
« Reply #1 on: Aug 7th, 2022, 11:35pm »
Quote Quote Modify Modify

Hi
Win10 has a whole new way Midi is handled, but MidiOx does not support it (like most other developers except perhaps for Cakewalk and Juce).  
MS says its new Class compliant driver for this new Midi code interface (API) is Multi client.
 
Win 10 also still supports their old Midi API.  
MidiOx works as expected on 64 bit Win, but MS didn't have a Multi client driver as their Class Compliant driver in that API so you are getting the errors as expected.
 
Start MidiOx first with the MidiYoke or loopMidi driver and connect your device's Midi In to a loopMidi or MidiYoke out port.
 
Now start your other applications and connect the loopMidi or MidiYoke In, as both of these drivers are Multi client (don't connect your device's Midi In as it doesn't seem to be Multi client).  
 
Hope this helps
Royce
IP Logged
timg11
New Member
*



MIDI-OX Rules!

   


Posts: 6
Re: 64 bit?
« Reply #2 on: Aug 8th, 2022, 10:55am »
Quote Quote Modify Modify

on Aug 7th, 2022, 11:35pm, Breath wrote:
Hi
Start MidiOx first with the MidiYoke or loopMidi driver and connect your device's Midi In to a loopMidi or MidiYoke out port.
 
Now start your other applications and connect the loopMidi or MidiYoke In, as both of these drivers are Multi client (don't connect your device's Midi In as it doesn't seem to be Multi client).  

 
I was thinking along those line, but I'm not sure how to connect the Korg MIDI input to LoopMIDI. LoopMIDI appears as an output driver but does not present a UI to connect to another MIDI driver as a source.  
 
As a test, I used MIDI-OX with the Korg driver as Input and LoopMIDI as Output.  Then I was able to connect Cakewalk and another 32 bit program to the LoopMIDI as input.  
 
So this shows that LoopMIDI is written in a way to support concurrent 32/64 operation. What I'm missing is the driver-level mapping from the Korg driver to the LoopMIDI, so I don't have to use MIDI-OX as the router.    Then I would rename the LoopMIDI as "Korg_Input" and use that exclusively instead of directly accessing the Korg driver.  
 
IP Logged
Breath
Administrator
*****





   
WWW

Gender: male
Posts: 1029
Re: 64 bit?
« Reply #3 on: Aug 8th, 2022, 9:33pm »
Quote Quote Modify Modify

Hi
 
In MidiOx Options / Midi Devices... there should be at least one loopMidi input and output (called "loopMIDI Port" and the next loopMIDI, if you have it, is "loopMIDI 1" then "loopMIDI 2" etc).
They should appear in both the "MIDI Inputs:" listbox and the "MIDI Outputs:" listbox on the MIDI Devices dialog.
Always a good idea to select the input and output of a loopMIDI device (just think of it as a MIDI cable - Midi goes in the input and comes out the output)
Select the Korg's MIDI Input and Output as well while you are there.
 
Go to the Routing dialog (View / Port Routing...) and and drag the Korg input on the left (picture of a DIN socket) and drop it on to the loopMIDI output on the right.
 
If you are going to use sysex data then hi-light the SYX in the toolbar at the bottom (you usually need to do that each time you make or break a routing so you may have to click to disable then click again to enable).
 
Play the Korg and make sure you can see data coming in from Korg and (looping around ) coming in from the loopMIDI port.
 
Now on your other application, the only change you need to make is to delete the Korg as an input and use the loopMidi as an input instead.
 
If you want to see what the application is sending to the Korg just setup another loopMIDI 'cable'.
Use loopMIDI 1 as the output port instead of the Korg Midi out in the application.
In MidiOx connect loopMIDI 1 on the left to Korg out on the right.
 
MidiOx Input Monitor will now spy on what is being sent out as well as sending the data to the Korg.
You can place a filter in the connection line to remove/change something being sent by the application.
 - click the square box in the middle of the line and select an oxm file from the drop down box.  
- to create your own filter go to MidiOx's Options / Data Filter..., create and save your own oxm file and it will appear in the drop down box.  
 
 
When running any application there is a need for there to be an interface to the hardware drivers.
Usually the hardware drivers need to be 64bit for a 64bit operating system and Windows provides  the connection / conversion for a 32 bit application to run without the application needing to know about the drivers. Swap some hardware and application still works.
 
So loopMIDI is a 64bit driver that has no need to know if the application is 64bit or 32bit.
Tobias Erichsen (loopMIDI's author) has a software tool kit you can use to build an application with direct connection to the loopMIDI drivers.
 
I have used it a few times (I code mainly in C++) with excellent results.
 
Applications are not drivers. They are two different layers of software with a part of Windows in between.
What you must have is an application that will pass MIDI from a hardware driver to loopMIDI or the reverse.
 
MidiOx remembers what you were doing and so loads all the connections, filters etc, each time you start it up.
If you start MidiOx again when you have it already running, it will start up a fresh copy of the program.
 
Whatever state you leave the freshly started MidiOx setup in, eg different window layout, connections etc, MidiOx remembers that upon closing as the 'setup for the second MidiOx running' and is separate from the setup in the first MidiOx running.
 
This what I do so I can have the first MidiOx for diagnostic work where I regularly change things and the second one for the required connections and filters.
 
If you feel keen you can use a MidiOx script - see the Help pages and the examples supplied and the Script section of the Forum (I tend to use MS Windows Script but Python or Visual Basic or C++ etc is OK) .
Running the script / application starts MidiOx for you as if it is part of your application.
 
Hope this helps
All the best
Royce
 
 
IP Logged
Pages: 1  Reply Reply Notify of replies Notify of replies Send Topic Send Topic Print Print

« Previous topic | Next topic »


MIDI-OX User Forum » Powered by YaBB 1 Gold - SP 1.3.1!
YaBB © 2000-2003. All Rights Reserved.