MIDI-OX User Forum (http://www.midiox.com/cgi-bin/yabb/YaBB.pl)
MIDI-OX >> Questions and Discussion >> Midi OX Sending CC values of zero on App start
(Message started by: cjewellstudios on Mar 16th, 2020, 11:21pm)

Title: Midi OX Sending CC values of zero on App start
Post by cjewellstudios on Mar 16th, 2020, 11:21pm
I'm trying to do something mildly complex:

I have two midi fighter twisters.  I want 2 channels of midi going to loopmidi 1 and another 2 channels going to loopmidi 2 and this all needs to be bi-directional.  I have succeeded in routing this but I have a couple problems questions.

The first one is, as soon as my daw starts up, there are a bunch of cc messages sent with a value of zero.  I'm using this as a mixing surface so that's making all of my tracks go down to zero which is obviously not ideal.

  - In my setup, I've deleted system and midi oxe events and also the un-needed channels from the routing because I thought they could potentially be doing that.

Is it possible that LoopMidi is doing that and not midi-ox?  If so, Is there a free alternative that allows me more than one virtual midi port?

My second question is:

I have a unique issue where I can't change the channel on my device for a push and turn value, I can however change the cc number.  So is it possible to have a rule where everything on channel five and above CC 64 goes to one output and everything below goes to another?

Bonus Question:

Can I use my typing keyboard to make midi-ox send midi to my devices?  I can bank my twisters by sending them a specific CC's


....

I did most of this pretty quick with BMT Pro but I just don't have the extra money to drop on that software right now.

  -  

Title: Re: Midi OX Sending CC values of zero on App start
Post by Breath on Mar 17th, 2020, 8:35pm
When most DAWs start they reset the CC (at least the common ones).
To check if the 0 is comming from your  DAW, start MidiOx first and when you start the DAW you should be able to see all the startup Midi messages in the Input Monitor  if all the Midi inputs are set up in MidiOx (Options / Midi Devices).

Sometimes creating a new song will reset the CCs to 0. Again check in MidiOx.

MidiOx will reset CCs when you ask it to.
One way is Actions / Panic Reset, but you have to connect the MidiOx Event Port to an output.
Another is when you open or close a Midi Port (to avoid 'hanging Midi states').

Another issue could be a Midi feedback loop.

"I have a unique issue where I can't change the channel on my device for a push and turn value, I can however change the cc number.  
So is it possible to have a rule where everything on channel five and above CC 64 goes to one output and everything below goes to another? "

I will assume you mean...
remove all messages where the message is for chan 1 or 2 or 3 or 4
Split CC64+ to one output and the CC63- to another

Send the one Midi In data stream to the two Midi Outs by connecting it to the Port Routing window.
Create two Data maps (Options / Data Maps) and save them.

Pass_greater_Ch4_greater_CC63.oxm
- "everything on channel five and above CC 64 goes to one output " - no mention of other Midi messages eg Note On

(line order is important)

Remove channel 1 to 4. Use 4 lines
In  :Chan=1  Any_Event -1 -1 -1 -1
Out:Type= Discard
In  :Chan=2  Any_Event -1 -1 -1 -1
Out:Type= Discard
In  :Chan=3  Any_Event -1 -1 -1 -1
Out:Type= Discard
In  :Chan=4  Any_Event -1 -1 -1 -1
Out:Type= Discard

Only messages on chan 5+  passed this point
Filter out CCs below 64
In  :Chan=Any  EventType= Ctrl  0 :Ctrl#: 63   -1 :Amount: -1
Out: Discard

All other messages on chan 5+ are passed as well



Pass_greater_Ch4_less_CC64.oxm
Again remove chan 1 to 4 with a discard line for each channel, but if that is not what you mean..
Remove chan 5 to 16 with a discard line for each channel

Only messages on chan 5+ passed this point or only messages on chan 1 to 4  passed this point
Filter out CCs above 63
In  :Chan=Any  EventType= Ctrl  64 :Ctrl#: 127   -1 :Amount: -1
Out: Discard

On MIDI Port Routing window connect your input to the two ouputs.
In the middle of the connecting line click the little box and on the new dialog select the correct "Map File" (the oxm files you created)

"Can I use my typing keyboard to make midi-ox send midi to my devices? I can bank my twisters by sending them a specific CC's "
For this you might like to look at Bome's Classic Translator https://www.bome.com/products/mtclassic
Free for personal use.

Hope this helps.
All the best
Royce

Title: Re: Midi OX Sending CC values of zero on App start
Post by cjewellstudios on Mar 21st, 2020, 5:24pm
Hey Royce,

I very much appreciate your reply.

I was able to nail down the data mapping part of all this (sort of) and I am on my way.  So thank you!

On the main problem of cc refresh.  Yes it's coming from my daw (reaper) but I what I don't understand is why I didn't run into this issue with BMT.  Does that program filter something like that out by default?  If that's true (which seems unlikely) is there a way to do the same here?

Unless I'm misunderstanding the way the routing works I don't have a feedback loop in midi-ox, although on the port monitor window, it sort of looks like I do.

My setup is

2 midi fighter twisters

Channel 1 and 7 from both MFTs are routed to loopMidi 1

Channel 5 and 6 from both MFTs are routed to loopMidi 2

and then the reverse for 2 way communication.  As in anything that comes from my daw on loopmidi 1 gets routed to channels 1 and 7 on the mfts

Now when I press an encoder on channel 1, mft in lights up but so does loopMidi in.  So as I'm typing this that really must mean I have a loop I didn't intend to have, eh?  But man it just doesn't seem like I'm routing the MF Twister in to the loopmidi In.  Especially opening up the port routing window with all the connecting lines, that connection isn't there.  So I'm at a loss I guess.  I've played around with it quite a bit

edit:  I have one more issue that's been really troublesome.  Is midi-ox supposed to open up to its last known state?  Is there a setting to  do so?  That's what I would prefer as I don't plan on using it for anything other than what I'm using it for now.   But it doesn't open like that for, one of my midi fighter twisters always seems to be disabled.  And I've saved my preferred setup every which way I can think of.  As a profile, a snapshot, and with the little disk icon on the midi devices window, and loading any of those has not gone well for me.  The correct ports do not open and they are not routed as I tried to save them.  I must be doing something wrong but again, I'm not sure.  Thank you for all of your help.

Title: Re: Midi OX Sending CC values of zero on App start
Post by Breath on Apr 1st, 2020, 10:15pm
MidiOx has a couple of ways to filter Midi data.
Options / Midi Filter is the quick one.
You can use a Options / Data Mapping for very selective filter.
Select the data you want removed in the Input and then use 'Discard' for the output.

"although on the port monitor window, it sort of looks like I do" Try changing the 'echo' setting on the track in Reaper.

As for you 'troublesome' issue, MidiOx does save its exit state and loads it when restarting. Try it without powering anything off or rebooting.
As you are using 2 identical devices the driver name can be mis-allocated.
Also if you have used different USB ports on you PC to connect things Win will create a new and separate driver installation for every USB port you connect that device to.
In short if you connect a Midi interface or device to one USB port connecting to a different one will create a different 'named' driver. MidiOx relies on this device name for its setup.

'Twister' in one USB port could become 'Twister-2' in another which stuffs up the MidiOx settings.
Sometimes the powering up order screws things as well
So have every device powered up, then power up the PC and start MidiOx.

Hope this helps
Stay Well
Royce

Title: Re: Midi OX Sending CC values of zero on App start
Post by cjewellstudios on Apr 7th, 2020, 4:03pm
Hey there Breath!  Thanks again for your detailed response.

I was able to suss out my "troublesome" issue.  After a little bit of digging I found that Midi Fighter offers alternative firmware that will allow for separate midi device names!  So quitting/restarting midi ox doesn't involve loading or fixing any mappings anymore!  That makes using midi-ox way more of possibility.  

....

Now back to my original problem though.  I still have the issue of the refresh signal on startup of Reaper.  I think I may have a midi loop like you said and maybe that's my issue.  I'm attaching an image of what happens in the midi ox monitor when I press a button on the mf twister.

https://drive.google.com/file/d/1SiH72ND0tPcYbhCHxKv1w7A7JVcJRK-5/view?usp=sharing

It shows input from port 7 which is the mf twister and output on port 3 which is loopBE1.  All good there except for all the extra stuff.  It shows in from loopbe1 which I did not set up as well as other things that seem like they should not be there.

Is this how it's supposed to be?  I think this maybe the cause of my issue but I honestly am not 100%

However, with all that said.  After the refresh signal comes in, I can hit undo in Reaper and then everything is fine.  Two way communication and basically no funny business.  If I had a midi loop, I would assume that I would have trouble with the basic operation after I undo the "init state" in Reaper.

Going further with this, if I don't have a problem above with a midi loop and I am to filter this refresh signal out, how the heck am I going to do that?  I don't think I can change the way Reaper behaves so I'm throwing that possibility out at the moment.  Filtering this in midi-ox though, I just have no idea.  Reaper takes all the cc's and sets them to zero, so I can't just use a data map that says if a cc with a value of 0 comes into virtual in, then discard it because I need that communication.  I'm not sure how to go about filtering this.

As far as I know, I'm doing the same exact conceptual thing in BMT Pro and some how or another, I don't have this behavior.  Sorry if that bugs anybody reading this lol.  I just don't have the cash for BMT Pro and I feel like I'm so close to figuring this out with midi-ox and free virtual midi ports.  

Hope you are staying safe wherever you are at Breath.  Take care!

Title: Re: Midi OX Sending CC values of zero on App start
Post by Breath on Apr 10th, 2020, 8:35pm
LoopBE like Midiyoke is a pretend Midi cable.
You can see from the picture you are using loopBE to merge the outputs of Fighter1 and Fighter2 (with the data filter in the connection to change the CC).
The "cable" then returns this (merged and changed CC) midi data back to both the Fighters.

If either of the Fighters were to echo the Midi coming in you would fill the Midi buffers of all concerned very quickly.
From the pic it doesn't look that way.

As far as Reaper is concerned my Reaper only sends out "All notes off" CC Bxx 7B 00 on all channels, Pitchbend Coarse Exx 40 (midipoint) on all channels and Sustain CC Bxx 40 00 on all channels and it only sends it to the loopMidi ports. Perhaps you have a special template when you start.

I would turn on your gear in a certain order... Reaper first, then hardware  (Mixer, Fighters) in Reaper CTRL+P and Audio/MidiDevices - this makes Reaper go and look at Midi devices but it doesn't send reset CC. Press OK, and finally start MidiOx.
If you start or connect Midi devices when MidiOx is running, there is no way to make it look for the device and open it. You have to close MidiOx and start it again.

Stay well
Royce





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