Setting Up Midiyoke And Glovepie On Windows 7

Home :: Reviews of DJ equipment :: Setting Up Midiyoke And Glovepie On Windows 7Reply
Setting Up Midiyoke And Glovepie On Windows 7
Posted on: 25.05.2011 by Joan Kollmorgen
I've had a few people asking for help getting Midiyoke and Glovepie working together on Windows 7 in order to run scripts for modded gear.

I still like using XP but decided to install Windows 7 64 today to try and see why people were having problems.

I can understand some of the confusion because it's so much easier to set up on XP.

The problem is the lack of a midimapper in Windows 7.
Anyway here's how to get them communicating.

Edit: Because me and fbonito have had a similar problem with Midiyoke I'm going to recommend that you use LoopBe instead of Midiyoke as it seems to be more stable on Windows 7.

1, Download and install LoopBe1 from here

http://www.nerds.de/en/download.html

4, Download and open Putzlowitsch's Vista MIDI Mapper Control Panel from here

http://www.sierrahelp.com/Utilities/...DI_Mapper.html

From the drop down menu select Loopbe Internal Midi then click apply

5, Download and install Glovepie from here.

http://glovepie.org/poiuytrewq.php

I used the top link.


Now start Glovepie and load a script or make your own then run it

Here is the script i made the other evening for 2 gamepads which works great on XP and 7

http://www.mediafire.com/?dyap2duo5025mo6
Amalia Freemen
03.03.2013
Originally Posted by extraclassic
Give CopperLan a try. Works great on Windows 7 64 bit.

http://http://www.copperlan.org/
Thanks, it works now. Great stuff! :-)
Amalia Freemen
03.03.2013
Originally Posted by extraclassic
Give CopperLan a try. Works great on Windows 7 64 bit.

http://http://www.copperlan.org/
Thanks, it works beautifully :-)
Amalia Freemen
03.03.2013
Originally Posted by extraclassic
Give CopperLan a try. Works great on Windows 7 64 bit.

http://http://www.copperlan.org/
Thanks, it was a bit difficult to work out how the things work at the beginning. But it works great! :-)
Chasidy Heckenbach
12.07.2011
Originally Posted by fbonito
i will try toevening , it's just for the faders, i'm believeing that if they work upside down it could be better, and i don't want to open the box and solder again... ;-)
ah sure - no need to resolder anything anyway.

this is reminding me that i bought 8 arcade buttons a while ago and a soldering iron+solder but never got much further than that plus theres the glovepie script with super combo's... i need to find some free time for those asap.
Chasidy Heckenbach
12.07.2011
Originally Posted by fbonito
zestoi,

do you believe that it's possible in glovpie to invert the 0% and 100% in axis?

i would like to have the possibility to control the faders to have 100% up or 100 down

what do you believe?
is that the lines like this?

Code:
midi.Control5 = MapRange(joystick2.x, -0.5, 0.5, 0, 1)
if so then yep - just switch round the output range like this:

Code:
midi.Control5 = MapRange(joystick2.x, -0.5, 0.5, 1, 0)
or ofc you could use some extra button as a modifier within glovepie that does the switch - so u can use both ways - but i dont suppose you'd want to switch the behaviour mid set?
Chasidy Heckenbach
08.06.2011
without an analogue gamepad i can't debug that too much but i do know that you need to sey a value of 0 for midi.control* to get a midi value of 0 sent and 1 for a midi value of 127 (which sounds odd to me - why not just 0 to 127? but there u go...)

Originally Posted by fbonito
midi.Control5 = (joystick2.x/261)+64
so i guess that code deosn't work for the range of your controller, but as it is adding 64 to it it believes it can assign the range of 0 to 127 directly? i can't get that to work myself...

midi.Control5 = joystick2.x
i'd guess your joystick is sending out +ve and -ve values which is why it only responds after half way.

you need to workout the minimum values for x/y/etc but wacking in a var.foo = joystick2.x and checking the variables or something and then plug them into this (i hope):

Code:
midi.control5 = MapRange(joystick2.x, X_MIN, X_MAX, 0, 1)
which will then map the range of the x control from X_MIN to X_MAX onto the range 0 to 1.

e.g:

Code:
midi.control5 = MapRange(joystick2.x, -0.5, 0.5, 0, 1)
i haven't tried MapRange() with negative values like this but it would be dumb if it didn't work...
Chasidy Heckenbach
03.06.2011
Originally Posted by fbonito
well, the enconders will be sending sequences of two contacts

like

1 2
112
211
121

etc

and could the glovepie be coded to read this as increments?
surely that's already taken care off by the HID driver? glovepie only knows about the values that you can see in your script etc afaik.
Amalia Freemen
03.03.2013
Originally Posted by extraclassic
Give CopperLan a try. Works great on Windows 7 64 bit.

http://http://www.copperlan.org/
Thanks, it works now. Great stuff! :-)
Lisa Lochotzki
03.03.2013
Yup, my favourite since a few months. Ethernet, Matrix, unlimited amount of cable, you can even modify the setup on a machine attached to your setup. Really nice. Seems to solve most issue for those having problem with MIDI Yoke on 64 bits O/S

Fix the issue with those having PC/Mac setup. Install on both, then plug and play.

BTW, did you tried to install with admin privilege (Run as Admin)? You always should do it anyways...
Amalia Freemen
03.03.2013
Originally Posted by extraclassic
Give CopperLan a try. Works great on Windows 7 64 bit.

http://http://www.copperlan.org/
Thanks, it works beautifully :-)
Amalia Freemen
03.03.2013
Originally Posted by extraclassic
Give CopperLan a try. Works great on Windows 7 64 bit.

http://http://www.copperlan.org/
Thanks, it was a bit difficult to work out how the things work at the beginning. But it works great! :-)
Joan Kollmorgen
02.03.2013
Give CopperLan a try. Works great on Windows 7 64 bit.

http://http://www.copperlan.org/
Amalia Freemen
01.03.2013
According to this thread, LoopBe1 is working on Win7 64bit.
I tried it on my TOSHIBA Win7 Prof 64bit SP1. The driver doesn't start:
Windows cannot verify the digital signature for the drivers required for this device. A recent hardware or software change might have installed a file that is signed incorrectly or damaged, or that might be malicious software from an unknown source. (Code 52)

I also tried loopMIDI. It's the same.
MIDI Yoke installation stopped in the middle.

Anybody has encountered similar problem before?

Thanks in advance,
Phuoc
Jacqualine Arroyos
12.07.2011
yap, i'm still finetunning my project, and in the end i will have a lot of cool things (combos, etc)
Chasidy Heckenbach
12.07.2011
Originally Posted by fbonito
i will try toevening , it's just for the faders, i'm believeing that if they work upside down it could be better, and i don't want to open the box and solder again... ;-)
ah sure - no need to resolder anything anyway.

this is reminding me that i bought 8 arcade buttons a while ago and a soldering iron+solder but never got much further than that plus theres the glovepie script with super combo's... i need to find some free time for those asap.
Jacqualine Arroyos
12.07.2011
i will try toevening , it's just for the faders, i'm believeing that if they work upside down it could be better, and i don't want to open the box and solder again... ;-)
Chasidy Heckenbach
12.07.2011
Originally Posted by fbonito
zestoi,

do you believe that it's possible in glovpie to invert the 0% and 100% in axis?

i would like to have the possibility to control the faders to have 100% up or 100 down

what do you believe?
is that the lines like this?

Code:
midi.Control5 = MapRange(joystick2.x, -0.5, 0.5, 0, 1)
if so then yep - just switch round the output range like this:

Code:
midi.Control5 = MapRange(joystick2.x, -0.5, 0.5, 1, 0)
or ofc you could use some extra button as a modifier within glovepie that does the switch - so u can use both ways - but i dont suppose you'd want to switch the behaviour mid set?
Jacqualine Arroyos
12.07.2011
zestoi,

do you believe that it's possible in glovpie to invert the 0% and 100% in axis?

i would like to have the possibility to control the faders to have 100% up or 100 down

what do you believe?
Jacqualine Arroyos
10.06.2011
everything is working...

here is the final script

:-D

Code:
//fbonito script for 2 gamepads
//includes 32 buttons
//2 hat-switch with diagonals
//8 analog

midi.DefaultChannel = 1

//gamepad 1 - buttons
midi.fsharp4 = any1.Button1
midi.c4 = any1.Button2
midi.c5 = any1.Button3
midi.fsharp5 = any1.Button4
midi.e4 = any1.Button5
midi.b4 = any1.Button6
midi.asharp3 = any1.Button7
midi.f5 = any1.Button8
midi.f4 = any1.Button9
midi.b3 = any1.Button10
midi.asharp4 = any1.Button11
midi.e5 = any1.Button12

//gamepad 1 - hat-switch

var.right = any1.DpadRight
var.down = any1.DpadDown
var.left = any1.DPadLeft
var.up = any1.DPadup
var.downright = var.right + var.down
var.downleft = var.left + var.down
var.upright = var.right + var.up
var.upleft = var.left + var.up

if var.downright then
var.down = false
var.right = false
endif

if var.downleft then
var.down = false
var.left = false
endif

if var.upright then
var.up = false
var.right = false
endif

if var.upleft then
var.up = false
var.left = false
endif

midi.d6 = var.right
midi.csharp6 = var.down
midi.c6 = var.left
midi.b5 = var.up
midi.c7 = var.downright
midi.d7 = var.downleft
midi.e7 = var.upright
midi.f7 = var.upleft

//gamepad 1 - analogs
midi.Control1 = MapRange(joystick1.x, -0.5, 0.5, 0, 1)
midi.Control2 = MapRange(joystick1.y, -0.5, 0.5, 0, 1)
midi.Control3 = MapRange(joystick1.z, -0.5, 0.5, 0, 1)
midi.Control4 = MapRange(joystick1.roll, -0.5, 0.5, 0, 1)

//gamepad 2 - buttons
midi.dsharp5 = any2.button1
midi.dsharp4 = any2.button2
midi.a3 = any2.button3
midi.a4 = any2.button4
midi.d5 = any2.button5
midi.g3 = any2.button6
midi.gsharp4 = any2.button7
midi.csharp4 = any2.button8
midi.gsharp3 = any2.button9
midi.d4 = any2.button10
midi.g4 = any2.button11
midi.csharp5 = any2.button12

//gamepad 2 - hat-switch
var.right = any2.DpadRight
var.down = any2.DpadDown
var.left = any2.DPadLeft
var.up = any2.DPadup
var.downright = var.right + var.down
var.downleft = var.left + var.down
var.upright = var.right + var.up
var.upleft = var.left + var.up

if var.downright then
var.down = false
var.right = false
endif

if var.downleft then
var.down = false
var.left = false
endif

if var.upright then
var.up = false
var.right = false
endif

if var.upleft then
var.up = false
var.left = false
endif

midi.g5 = var.right
midi.gsharp5 = var.down
midi.a5 = var.left
midi.asharp5 = var.up
midi.c8 = var.downright
midi.d8 = var.downleft
midi.e8 = var.upright
midi.f8 = var.upleft

//gamepad 2 - analogs
midi.Control5 = MapRange(joystick2.x, -0.5, 0.5, 0, 1)
midi.Control6 = MapRange(joystick2.y, -0.5, 0.5, 0, 1)
midi.control7 = MapRange(joystick2.z, -0.5, 0.5, 0, 1)
midi.Control8 = MapRange(joystick2.roll, -0.5, 0.5, 0, 1)
Jacqualine Arroyos
08.06.2011
zestoi, thanks for the code, i will give it a try tomorrow

;-)
Chasidy Heckenbach
08.06.2011
without an analogue gamepad i can't debug that too much but i do know that you need to sey a value of 0 for midi.control* to get a midi value of 0 sent and 1 for a midi value of 127 (which sounds odd to me - why not just 0 to 127? but there u go...)

Originally Posted by fbonito
midi.Control5 = (joystick2.x/261)+64
so i guess that code deosn't work for the range of your controller, but as it is adding 64 to it it believes it can assign the range of 0 to 127 directly? i can't get that to work myself...

midi.Control5 = joystick2.x
i'd guess your joystick is sending out +ve and -ve values which is why it only responds after half way.

you need to workout the minimum values for x/y/etc but wacking in a var.foo = joystick2.x and checking the variables or something and then plug them into this (i hope):

Code:
midi.control5 = MapRange(joystick2.x, X_MIN, X_MAX, 0, 1)
which will then map the range of the x control from X_MIN to X_MAX onto the range 0 to 1.

e.g:

Code:
midi.control5 = MapRange(joystick2.x, -0.5, 0.5, 0, 1)
i haven't tried MapRange() with negative values like this but it would be dumb if it didn't work...
Jacqualine Arroyos
07.06.2011
but i have a problem...

with the analog code

midi.Control5 = (joystick2.x/261)+64
midi.Control6 = (joystick2.y/261)+64
midi.Control7 = (joystick2.z/261)+64
midi.Control8 = (joystick2.roll/261)+64

for example in ableton live, if i set a knob, and i turn it, it doesn't really change much (for example in volume it only changes 0.1 db)

it seams that it doesn't go from 0% to 100%

if change the code to

midi.Control5 = joystick2.x
midi.Control6 = joystick2.y
midi.Control7 = joystick2.z
midi.Control8 = joystick2.roll

it works well, the knob goes from 0% to 100% but only in the middle up of the pot...

it seams that is reading that left ; centre ; right and only working from centre to right

is there any code that defines that left is 0% and right is 100%
Jacqualine Arroyos
07.06.2011
hello,

here is my last version of the script
Code:
//fbonito script for 2 gamepads
//includes 32 buttons
//2 hat-switch with diagonals
//8 analog

midi.DefaultChannel = 1

//gamepad 1 - buttons
midi.fsharp4 = any1.Button1
midi.c4 = any1.Button2
midi.c5 = any1.Button3
midi.fsharp5 = any1.Button4
midi.e4 = any1.Button5
midi.b4 = any1.Button6
midi.asharp3 = any1.Button7
midi.f5 = any1.Button8
midi.f4 = any1.Button9
midi.b3 = any1.Button10
midi.asharp4 = any1.Button11
midi.e5 = any1.Button12

//gamepad 1 - hat-switch

var.right = any1.DpadRight
var.down = any1.DpadDown
var.left = any1.DPadLeft
var.up = any1.DPadup
var.downright = var.right + var.down
var.downleft = var.left + var.down
var.upright = var.right + var.up
var.upleft = var.left + var.up

if var.downright then
var.down = false
var.right = false
endif

if var.downleft then
var.down = false
var.left = false
endif

if var.upright then
var.up = false
var.right = false
endif

if var.upleft then
var.up = false
var.left = false
endif

midi.d6 = var.right
midi.csharp6 = var.down
midi.c6 = var.left
midi.b5 = var.up
midi.c7 = var.downright
midi.d7 = var.downleft
midi.e7 = var.upright
midi.f7 = var.upleft

//gamepad 1 - analogs
midi.Control1 = (joystick1.x/261)+64
midi.Control2 = (joystick1.y/261)+64
midi.Control3 = (joystick1.z/261)+64
midi.Control4 = (joystick1.roll/261)+64

//gamepad 2 - buttons
midi.dsharp5 = any2.button1
midi.dsharp4 = any2.button2
midi.a3 = any2.button3
midi.a4 = any2.button4
midi.d5 = any2.button5
midi.g3 = any2.button6
midi.gsharp4 = any2.button7
midi.csharp4 = any2.button8
midi.gsharp3 = any2.button9
midi.d4 = any2.button10
midi.g4 = any2.button11
midi.csharp5 = any2.button12

//gamepad 2 - hat-switch
var.right = any2.DpadRight
var.down = any2.DpadDown
var.left = any2.DPadLeft
var.up = any2.DPadup
var.downright = var.right + var.down
var.downleft = var.left + var.down
var.upright = var.right + var.up
var.upleft = var.left + var.up

if var.downright then
var.down = false
var.right = false
endif

if var.downleft then
var.down = false
var.left = false
endif

if var.upright then
var.up = false
var.right = false
endif

if var.upleft then
var.up = false
var.left = false
endif

midi.g5 = var.right
midi.gsharp5 = var.down
midi.a5 = var.left
midi.asharp5 = var.up
midi.c8 = var.downright
midi.d8 = var.downleft
midi.e8 = var.upright
midi.f8 = var.upleft

//gamepad 2 - analogs
midi.Control5 = (joystick2.x/261)+64
midi.Control6 = (joystick2.y/261)+64
midi.Control7 = (joystick2.z/261)+64
midi.Control8 = (joystick2.roll/261)+64
Chasidy Heckenbach
03.06.2011
Originally Posted by fbonito
well, the enconders will be sending sequences of two contacts

like

1 2
112
211
121

etc

and could the glovepie be coded to read this as increments?
surely that's already taken care off by the HID driver? glovepie only knows about the values that you can see in your script etc afaik.
Jacqualine Arroyos
03.06.2011
well, the enconders will be sending sequences of two contacts

like

1 2
112
211
121

etc

and could the glovepie be coded to read this as increments?
Chasidy Heckenbach
03.06.2011
i don't remember too much about greycode (except what i remember from college and just read in wikipedia ) but you're saying the encoders are sending out gray code and that's what glovepie reads as HID data?

if so then yep - it would be worth decoding it and converting it into a normal number sequence.
Jacqualine Arroyos
03.06.2011
just a thought...

i don't really know how graycode are programmed, but could we have some type of grey code in glovepie?

in a rotary encoder there are two contacts A and B

and a rotary encoder gives diferent pulses sequences for A and B, couldn't we convert this information in glovepie?
Jacqualine Arroyos
03.06.2011
Originally Posted by extraclassic
That's great fbonito - good to here you got things working in end
i din't complete the script yet, but i'm getting there...

you and zestoi where preciouses help...

thank you very much
Joan Kollmorgen
03.06.2011
That's great fbonito - good to here you got things working in the end
Chasidy Heckenbach
02.06.2011
Originally Posted by fbonito
that's it

:-D

it's working...

thanks men



tomorrow i will complete the script and post it here
;-)
cool - glad that worked
Jacqualine Arroyos
02.06.2011
that's it

:-D

it's working...

thanks men



tomorrow i will complete the script and post it here
;-)
Chasidy Heckenbach
02.06.2011
Originally Posted by fbonito
i give you an example.

in my controller, i have two rotary encoders that send consecutive pulses

rotary A sends consecutive pulses of down - translated as a midi note 1
rotary C sends consecutive pulses of right - translated as a midi note 2

both of this rotaries have a switch, so when i press the switch i get down + right diagonal - translated as a midi note 3

this way i got one extra button for this combination

the problem is that when i press the swith i get midi note 1, 2 and 3 at the same time.

i believe because glovepie doesn't assume the diagonals
well assuming it does send the signal for the 1 and 2 at exactly the same time then it should be possible with some IF's in there... probably going via some variables first to ensure you definately get the note off messages too.

this kind of thing should hopefully do what you want. it's just using 2 buttons on my gamepad for up and left to show how to send out only up, left or upleft as efficiently as possible (i believe):

Code:
var.left = Joystick1.Button4
var.up = Joystick1.Button1
var.upleft = var.left & var.up

if var.upleft then
    var.up = false
    var.left = false
endif

midi.c2 = var.up
midi.csharp2 = var.left
midi.d2 = var.upleft
Jacqualine Arroyos
02.06.2011
i give you an example.

in my controller, i have two rotary encoders that send consecutive pulses

rotary A sends consecutive pulses of down - translated as a midi note 1
rotary C sends consecutive pulses of right - translated as a midi note 2

both of this rotaries have a switch, so when i press the switch i get down + right diagonal - translated as a midi note 3

this way i got one extra button for this combination

the problem is that when i press the swith i get midi note 1, 2 and 3 at the same time.

i believe because glovepie doesn't assume the diagonals
Chasidy Heckenbach
02.06.2011
Originally Posted by fbonito
i can you the code "and"

example

any1.DpadDown and any1.DpadRight

but i also get 3 keypress

dpaddown
dpadright
and dpaddown + dpadright

at the same time
sure... it's non-trivial if you *dont* want to send out the regular notes for say UP and LEFT along with the UP/LEFT one as you also need to make sure you send a note OFF when the UP/LEFT if released...

also what happens if the LEFT latches a micro second before the UP? it'll probably end up sending out the note for LEFT followed by a note off for LEFT and a note on for UP/LEFT...

so basically you're trying to get 4 extra buttons out of just the 4 then?

i'll have some time to look at that tomorrow but not 100% sure it's a great idea
Jacqualine Arroyos
02.06.2011
i can you the code "and"

example

any1.DpadDown and any1.DpadRight

but i also get 3 keypress

dpaddown
dpadright
and dpaddown + dpadright

at the same time
Jacqualine Arroyos
02.06.2011
i what to:

push up -> A
push left -> B
push left+up -> C
Chasidy Heckenbach
02.06.2011
Originally Posted by fbonito
it's almost there, i just have a problem

i' using for the hatswitch the following code:

midi.f2 = any2.Dpadleft
midi.fsharp2 = any2.Dpadright
midi.g2 = any2.Dpadup
midi.gsharp2 = any2.Dpaddown

but how can i code the diagonals?

left+down for example?
don't you just want the 2 notes to be sent out for the diagonals? or you dont want the 2 notes to be sent out but some different note instead?

not tricky to do anyway... my crappy gamepad does at least have an xy control so i can test that etc - not sure it triggers the any.Dpad* values tho...
Jacqualine Arroyos
02.06.2011
Originally Posted by zestoi
cool.... i was going to guess at that in the same way the joystick1/joystick2 and mouse1/mouse2 work etc

awesome news it works now anyway! if a little odd this fixed it...
it's almost there, i just have a problem

i' using for the hatswitch the following code:

midi.f2 = any2.Dpadleft
midi.fsharp2 = any2.Dpadright
midi.g2 = any2.Dpadup
midi.gsharp2 = any2.Dpaddown

but how can i code the diagonals?

left+down for example?
Chasidy Heckenbach
02.06.2011
cool.... i was going to guess at that in the same way the joystick1/joystick2 and mouse1/mouse2 work etc

awesome news it works now anyway! if a little odd this fixed it...
Jacqualine Arroyos
02.06.2011
i found it

i cracked the code...



after "any" you put a number and that is the number of the device, like this

//Gamepad 1 - Buttons
midi.csharp0 = any1.Button1
midi.d0 = any1.Button2
midi.dsharp0 = any1.Button3


//Gamepad 2 - Buttons
midi.csharp0 = any2.Button4
midi.d0 = any2.Button5
midi.dsharp0 = any2.Button6

it's working

:-)

<< Back to Reviews of DJ equipment Reply

Copyright 2012-2023
DJRANKINGS.ORG n.g.o.
Chuo-ku, Osaka, Japan

Created by Ajaxel CMS

Terms & Privacy