MIDI-OX User Forum (http://www.midiox.com/cgi-bin/yabb/YaBB.pl)
MIDI Yoke >> MIDI Yoke NT >> how to temporarily disable Yoke NT drivers
(Message started by: markwa on Sep 15th, 2004, 3:14pm)

Title: how to temporarily disable Yoke NT drivers
Post by markwa on Sep 15th, 2004, 3:14pm
I have attempted to temporarily disable the Yoke NT drivers using Windows XP / Control Panel / System / Hardware / Device Manager / Sound, video and game controllers / MIDI Yoke NT Driver / Disable Device.  But my application still sees the Yoke NT 1 through 8 devices.  Is there another effective way to temporarily disable the drivers.

Note, if I can get MidiYoke and MidiOx to work in my development environment without this kind of conflect, I'll certainly purchase the commercial license.

Cheers
-- Mark

Title: Re: how to temporarily disable Yoke NT drivers
Post by markwa on Sep 15th, 2004, 5:50pm
I'll just uninstall the MIDI Yoke NT Driver for now.  But this is awkward to have to install it every time I need it, and uninstall it every time I don't.  Surely there is a better way.

-- Mark

Title: Re: how to temporarily disable Yoke NT drivers
Post by markwa on Sep 15th, 2004, 10:57pm
Although it would be very handle to be able to entirely disable the Yoke NT driver, it would be almost as handy to be able to designate a particular MIDI Yoke port as either In or Out but not both.  I just can't seem to get around the MIDI feedback loop problem.  Being able to make a MIDI Yoke port either In or Out might solve this problem.  Is there a way to do that?

Cheers
-- Mark

Title: Re: how to temporarily disable Yoke NT drivers
Post by Peter L Jones on Sep 16th, 2004, 2:08pm
That doesn't really make any sense.

The only reason for writing to one end of a MIDI Yoke virtual MIDI cable is so that the events you write can travel down to the other end of the cable to be read.

If you choose to open the input port in the same application that's writing to the output port, that's up to you.  But you need to be able to open it somewhere, otherwise there was no point using it.

Title: Re: how to temporarily disable Yoke NT drivers
Post by markwa on Sep 16th, 2004, 2:30pm
Hello Peter,

>That doesn't really make any sense.

Duh, you're right.  Never mind the last of my three postings.

But, I still wish that Windows XP / Control Panel / System / Hardware / Device Manager / Sound, video and game controllers / MIDI Yoke NT Driver / Disable Device would really make the driver unavailable to my app.

Title: Re: how to temporarily disable Yoke NT drivers
Post by Jamie OConnell on Sep 16th, 2004, 4:12pm
Never open both the Input and Output ports of a particular MIDI Yoke port within a single application.

Windows does not seem to be able to temporarilly disable the MIDI Yoke ports: probably because the driver is a User mode DLL instead of a Kernel Mode component.  Even after a reboot.
You might be able to prevent driver loading by tweaking a reg key.

The key to tweak will be one of the MIDIn values in:  
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32

For instance, if MIDI2 is set to myokent.dll, rename it to myokent.dlx.  Then close RegEdit.  I was able to make the driver disappear and reappear by modifying this key without rebooting.

Title: Re: how to temporarily disable Yoke NT drivers
Post by markwa on Sep 16th, 2004, 4:39pm
Jamie,

Thanks for your reply and tip.  It's good to meet you.  I wish I had been using MidiOx years ago as a tool for my MIDI/notation softare development.  (I just purchased it earlier today.)

Perhaps you can give me some advice on some very basic MIDI application behavior.  Upon startup, my application opens ALL of the MIDI input and output ports.  Obviously, this caused a feedback loop with the MIDI Yoke port.  I worked around this problem with a hard-coded "if input port is MIDI Yoke then don't open it". (I'm just testing output from the app right now.)  Aside from the fact that my app's behavior of pre-opening all MIDI input and output ports makes it incompatible with MidiOx, are there other reasons that this is a bad idea?  Is my app a "bad MIDI citizen"?

Cheers
-- Mark

Title: Re: how to temporarily disable Yoke NT drivers
Post by Peter L Jones on Sep 16th, 2004, 7:00pm
Say someone plugged a real MIDI cable from a MIDI out to a controller, from that controller to a sequencer, from the sequncer to a sound module and from there back to a MIDI in.  Your app will get feedback.

You need to cater for it.  The above is valid - the controller might need SysEx dumps but the user wants to capture the sequencer output (triggered from the controller).

Title: Re: how to temporarily disable Yoke NT drivers
Post by markwa on Sep 16th, 2004, 7:34pm
Peter,

Thanks for your reply.  Perhas the appropriate solution for this in my MIDI/notation app as simple as this:  Just ask the user which MIDI In and Out ports he wants to use.  Only open those MIDI ports.  The next time the user runs the app, open the same ports.  This seems to be what Cakewalk Sonar does.  Is that all you'd need in order to work with, for example, the SysEx scenario you illustrated?

Cheers
-- Mark

Title: Re: how to temporarily disable Yoke NT drivers
Post by Peter L Jones on Sep 17th, 2004, 1:54pm
Just to expand a little on the problem as posed.

It's not the SysEx that's the issue.  It's what happens if a Note On (or any) message is sent from the PC to the controller.  If the controller has "MIDI Thru" enabled, it'll pass that Note On to the sequencer.  The sequencer must pass it on to the sound module.  The sound module will play the note and pass it on to the PC, because that's how we've set it up.

If the PC passes to MIDI Out everything it gets from MIDI In, what happens?  The Note On is sent from the PC to the controller... er, we just did that.  This is termed MIDI Feedback and MIDI Yoke will detect it and shut down.

To stop this, either the controller should not do MIDI Thru (in which case the PC can't play the sound module).  Or the PC must not pass to MIDI Out data it's read from MIDI In.

Of course, the latter also may not be what's wanted.  Say the Sound Module was plugged into the PC's MIDI Out?  The user would want "thru" connections on the PC.

What you need to do it also allow the user to select whether or not a particular "Out" is a "Thru" (i.e. gets a copy of any "In" data).

That should do it.

Of course, to be user friendly, always let the user choose which ports to open.  They might actually want to run another application that uses MIDI...

Title: Re: how to temporarily disable Yoke NT drivers
Post by markwa on Sep 17th, 2004, 2:46pm
Hello Peter,

Thanks for your reply.  

> Of course, to be user friendly, always let the user choose which ports to open.  They might actually want to run another application that uses MIDI...

I do intend to do that now.  I'll probably do it a little differently from the way I've seen it done in other MIDI apps.  In other MIDI apps, the user explicitly selects which In and Out ports he wants to use.  I'll offer the converse:  The user will select which In and Out ports he _doesn't_ want to use, thus freeing them for other apps.  That makes it easier on the less sophisticated user who won't be using multiple MIDI apps at the same time, and this will probably make it no more difficult for the more sophisticated user. Opinion?

> What you need to do it also allow the user to select whether or not a particular "Out" is a "Thru" (i.e. gets a copy of any "In" data).

My app has an Echo On/Off option for an Input port.  But you're recommending something different here.  If the user tells my app he wants an Out port to be Thru only, what is it that my app should do?  As long the user doesn't assign tracks to that Out port, then my app won't be sending anything to it.  I probably misunderstand your recommendation.

Cheers
-- Mark

Title: Re: how to temporarily disable Yoke NT drivers
Post by Peter L Jones on Sep 17th, 2004, 6:07pm

on 09/17/04 at 14:46:36, markwa wrote:
That makes it easier on the less sophisticated user who won't be using multiple MIDI apps at the same time, and this will probably make it no more difficult for the more sophisticated user. Opinion?
Depends on what the app user is least likely to find surprising - if you're sure the way you say is right, go for it.  (You'll soon hear from users if you get it wrong ;-) )


on 09/17/04 at 14:46:36, markwa wrote:
My app has an Echo On/Off option for an Input port.  But you're recommending something different here.  If the user tells my app he wants an Out port to be Thru only, what is it that my app should do?  As long the user doesn't assign tracks to that Out port, then my app won't be sending anything to it.  I probably misunderstand your recommendation.

on 09/15/04 at 22:57:34, markwa wrote:
I just can't seem to get around the MIDI feedback loop problem.
I'm not really sure what you're app's doing -- so long as you're preventing the MIDI feedback problem you had, then it's okay.  On hardware, from what I've read (rather than used), it's often the case that an "Out" port can be enabled/disabled as a "Thru"... but that assumes a pretty simple bit of kit (one In, one Out/Thru, toggle switch to decide if In gets echoed to Out/Thru).  So it's a moot point whether you choose to associate the control with In or Out ports.

Title: Re: how to temporarily disable Yoke NT drivers
Post by RunBeerRun on Jun 23rd, 2006, 1:13pm
The registry fix worked, yoke is no longer found.



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