Grrrrrrr... HID to MIDI frustration
Grrrrrrr... HID to MIDI frustration Posted on: 30.06.2011 by Madeline Seneff Ok I've been trying really really hard to try and not post something which is clearly a fairly common topic, but I really just can't find anything.Truthfully, the underlying thing I've been trying to do is use a second QWERTY keyboard with Traktor Pro/ Traktor Pro 2. So what I've been trying to do is find an easy way to convert the HID signals to MIDI, so that way the keyboard commands between my laptops built in keyboard and the external keyboard. I also need keys that have the same command, like the shift keys, to send different signals, but actually if that cant happen thats ok. Anyway I've tried a whole slue of programs, and none of them seem to work properly. Mjoy, joy to key, fergo, bomes, mousekeyboard200, etc. I have a plain old Logitech external keyboard, something I plan on ripping apart later and modding, and I run Windows 7 64-bit on a Dell XPS 17, and like I said I'm looking to convert the signals, or a similar alternative, to use for Traktor Pro / 2. I'm sort of believeing this just isn't a possibility at this time, but thanks in advance for anyone who helps! | |
Chasidy Heckenbach 21.07.2011 |
Originally Posted by chaomocha
i'll fire up glovepie etc later and have a play and see if i can believe of anything else. |
Chantelle Dellosso 21.07.2011 |
Originally Posted by chaomocha
|
Chasidy Heckenbach 21.07.2011 |
Originally Posted by chaomocha
what about a slightly different script: Code:
midi.DeviceOut = 2 debug = midi.OutDevName midi.DefaultChannel = 1 midi.csharp0 = Keyboard1.A midi.d0 = Keyboard1.B var.csharp0 = Keyboard1.A var.d0 = Keyboard1.B if you dont see the variables change in that tab then try this one: Code:
midi.DeviceOut = 2 debug = midi.OutDevName midi.DefaultChannel = 1 var.csharp0 = Keyboard1.A var.d0 = Keyboard1.B midi.csharp0 = Keyboard1.A midi.d0 = Keyboard1.B |
Chasidy Heckenbach 21.07.2011 |
Originally Posted by chaomocha
Code:
midi.DeviceOut = 2 debug = midi.OutDevName midi.DefaultChannel = 1 midi.channel1.c0 = Keyboard1.q |
Chasidy Heckenbach 21.07.2011 |
Originally Posted by chaomocha
you should then see midi data dumped in the "Monitor Input" window. in theory |
Madeline Seneff 21.07.2011 |
Originally Posted by zestoi
|
Chasidy Heckenbach 20.07.2011 | somehow i managed to totally miss updates to this thread. odd...
Originally Posted by chaomocha
make sure you only open the input port in midiox - you just want to use it to check that the correct data is being sent to the virtual midi device from glovepie. |
Madeline Seneff 27.07.2011 | sorry just wanted to bump this again cause I havent heard from anyone about it in a while, and havent been able to figure it out for myself yet either... :/ |
Madeline Seneff 23.07.2011 | Any luck? I've been trying to do the same and have been reading up at some others sites and community s but still nothing seems to be what I need |
Chasidy Heckenbach 21.07.2011 |
Originally Posted by chaomocha
i'll fire up glovepie etc later and have a play and see if i can believe of anything else. |
Chantelle Dellosso 21.07.2011 |
Originally Posted by chaomocha
|
Madeline Seneff 21.07.2011 | Code:
midi.DeviceOut = 2 debug = midi.OutDevName midi.DefaultChannel = 1 var.csharp0 = Keyboard2.A var.d0 = Keyboard2.B midi.csharp0 = Keyboard2.A midi.d0 = Keyboard2.B Anyway, that's working, but I go back to MidiOX and nothing is showing again when I press A or B. I closed the port and reopened it too just incase. Also just to be sure, this is the window I've been looking at in MidiOX, but I have some feeling that I shoud be looking at a different one, idk why though, I believe it was because of something scyn wrote but I didn't fully understand it:
Originally Posted by scyn
And yes this was the window I've been pressing "Q" "A" or "B" in, accordingly. |
Chasidy Heckenbach 21.07.2011 |
Originally Posted by chaomocha
what about a slightly different script: Code:
midi.DeviceOut = 2 debug = midi.OutDevName midi.DefaultChannel = 1 midi.csharp0 = Keyboard1.A midi.d0 = Keyboard1.B var.csharp0 = Keyboard1.A var.d0 = Keyboard1.B if you dont see the variables change in that tab then try this one: Code:
midi.DeviceOut = 2 debug = midi.OutDevName midi.DefaultChannel = 1 var.csharp0 = Keyboard1.A var.d0 = Keyboard1.B midi.csharp0 = Keyboard1.A midi.d0 = Keyboard1.B |
Madeline Seneff 21.07.2011 | yeah, nothings happening. I only have two keyboards though, and I try them both each time, and try the script with "keyboard0.q" each time as well, just in case. So technically I'm pressing Q 4 different times and none of them seem to work. Do I need an output or something because I'm really trying hard to notice everything right now in MidiOX and in the bottom left it says I have "No Output Device" where as over near the left side on the bottom it says I have "1 Input Device" which makes sense because that's all I've highlighted in the "Select MIDI Device to Open" window. |
Chasidy Heckenbach 21.07.2011 |
Originally Posted by chaomocha
Code:
midi.DeviceOut = 2 debug = midi.OutDevName midi.DefaultChannel = 1 midi.channel1.c0 = Keyboard1.q |
Madeline Seneff 21.07.2011 | Yeah all those things are there, still nothing when I hit Q though... idk why its not working, after I click the midi input name and hit ok from the box and everything, the Monitor Input reads "Opened Midi Input", and if I un-highlight it, it says "Closed Midi Input." So it recognizes me opening and closing the midi input, but open or closed it doesn't do anything when I type the letter "Q" which is currently the only key I have scripted out. |
Chasidy Heckenbach 21.07.2011 |
Originally Posted by chaomocha
you should then see midi data dumped in the "Monitor Input" window. in theory |
Madeline Seneff 21.07.2011 |
Originally Posted by zestoi
|
Chasidy Heckenbach 20.07.2011 | somehow i managed to totally miss updates to this thread. odd...
Originally Posted by chaomocha
make sure you only open the input port in midiox - you just want to use it to check that the correct data is being sent to the virtual midi device from glovepie. |
Madeline Seneff 20.07.2011 | ooooooooook, so I ran into some problems of course lol. So to begin with, here's the code I've been using: Code:
midi.DeviceOut = 2 debug = midi.OutDevName midi.DefaultChannel = 1 midi.csharp0 = Keyboard2.A midi.d0 = Keyboard2.B So, the next thing I did was run the debug program you gave me to check how many keyboard devices I have. turns out I only have 2. Just to double check I unplugged the external keyboard and ran it again and only got 1, so I know that it included the external keyboard when it ran it. So then I modified the code to be this instead, which included changing the keys from "A" and "B" to "Q": Code:
midi.DeviceOut = 2 debug = midi.OutDevName midi.DefaultChannel = 1 midi.channel1.c0 = Keyboard0.q Code:
midi.DeviceOut = 2 debug = midi.OutDevName midi.DefaultChannel = 1 midi.channel1.c0 = Keyboard1.q So where I stand now is: I have a code in GlovePIE that talks to loopMIDI. I have a port in loopMIDI that talks to GlovePIE. The code is fine. MidiOX recognizes the input and output of the loopMIDI port. MidiOX does not work. Thoughts? Screencaps will be on their way here momentarily because I fail to see why this works fine for you guys but not fine for me. EDIT: Screencaps: Step 1: Open GlovePIE, load script. Step 2: Open loopMIDI, create port (QWERTYkeyboard). Step 3: Run GlovePIE. The debug recognizes the QWERTYkeyboard. Step 4: Open MidiOX. Step 5: Options -> Midi Devices Step 6: Midi Devices now open, now what? Before I was highlighting the QWERTYkeyboard input and outputs, but that was giving me the error messages. |
Chantelle Dellosso 20.07.2011 | I'm a bit short on time so I'm going to go through this quickly... All I use midi-ox for is to monitor midi messages. I'll just go ahead and post a few pics, maybe it helps. First, I've got midi-ox installed and set up to receive midi from midi-yoke and to go back out again: Do this by going to Options > Midi setup. If you have any midi devices plugged in (keyboard, controllers etc) they'll show up in the list of available inputs. Just a side note - if I check my midi input devices in Ableton I can see midi-yoke there, which is good. All midi-ox is doing is it sits between my midi controller (be it an actual bit of hardware, or, in this case - a virtual midi contoller ala Glovepie) and Ableton, and monitors the midi messages. But for the sake of troubleshooting, I leave Ableton closed and only watch midi-ox to see if midi is being sent / received So - back to Glovepie. A simple script to make the 'q' key output a midi note message: Code:
midi.DeviceOut = 2 midi.channel1.c0 = Keyboard1.q Ok, that Glovepie code is entered and I've hit 'Run' in Glovepie. Go back to midi-ox, press the 'q' key and I can see (in the midi activity window) that the 'q' key is sending a midi note on/off message: That's all you need really. If I start up Ableton, make sure midi is set to receive from midi-yoke, then I can map my 'q' key (which is actually being mapped as a midi note rather than the key 'q') to whatever I need to. Just a bit more about Glovepie: Just open up Glovepie, and put the following code in: Code:
debug=keyboard.count Code:
midi.DeviceOut = 2 midi.channel1.c0 = Keyboard0.q Code:
midi.DeviceOut = 2 midi.channel1.c0 = Keyboard1.q Code:
midi.DeviceOut = 2 midi.channel1.c0 = Keyboard2.q Gotta run. Hope you come right with it. |
Madeline Seneff 20.07.2011 | Sorry for the double posts, I know theres an edit button but i prefer new information and updates to be in seperate posts, idk just kinda how i tick. anyway, the new information. Code:
midi.DeviceOut = 2 debug = midi.OutDevName midi.DefaultChannel = 1 midi.csharp0 = Keyboard2.A midi.d0 = Keyboard2.B |
Madeline Seneff 20.07.2011 |
Originally Posted by scyn
|
Chantelle Dellosso 20.07.2011 |
Originally Posted by zestoi
chaomocha, I'd maybe leave Traktor out of it for now. Get Midi-ox installed, and it'll allow you to monitor any midi messages being received by your system. That way, you can get Glovepie and your keyboard working correctly / how you want it. I'll upload a few screenshots some time later to show you how I've got mine set up. |
Madeline Seneff 20.07.2011 |
Originally Posted by zestoi
|
Chasidy Heckenbach 20.07.2011 | kudos for the fact you keep trying and don't sound to be giving up |
Madeline Seneff 20.07.2011 | sigh, nope, it very much did not work yet again lol. I believe I'll just record what I'm doing using a screencap or something and just post that, because maybe there's just something that I'm doing wrong that I might be misunderstanding what you said, or maybe there's something I'm just not doing right in general. idk, either way all I know is I'm a little less confused, but it's still not working properly and it's difficult to explain how when I'm not sure what's going on anyway. I'm also kinda tired so that probably is not helping any either, so I'll just log in again tomorrow and continue from there. I'm pretty determined on making this work though, even if it requires me making a new program and everything, even though I know even less about programming lol. |
Madeline Seneff 20.07.2011 | Ok I'll give that a try then. If it doesn't cooperate with me this time around though I may have to call it a evening because its really late; maybe even early o_O, and I can always come back to it tomorrow. but for now, away with MidiYoke, and in with loopMIDI. I do have midiox too btw, thats been in the shadows this whole time I suppose. |
Chasidy Heckenbach 20.07.2011 |
Originally Posted by chaomocha
in traktor you just select whichever virtual midi port you are using - whether its from midiyoke or loopMIDI. if it was me i'd probably uninstall midiyoke and go with loopMIDI as other people have had problems with that combination - but it could be something else ofc. plus i don't know if you're using midiyoke for anything else. to first take traktor out of the equation you could download midiox and use that to sniff if data sent to the midi device from glovepie. very handy for debug and works fine on windows 7. |
Madeline Seneff 20.07.2011 |
Originally Posted by zestoi
|
Chasidy Heckenbach 20.07.2011 | midiyoke does the same kind of thing as glovepie afaik - tho i havent used midiyoke in years. if glovepie is sending out to midi yoke 7 then u need to set traktor to recieve from whatever port midi yoke is sending to. quite possibly midi yoke and loopMIDI dont play nicely together... i've also found problems when i create more than about 8 virtual midi ports here on windows7 so you might have hit some kind of limit like that maybe. |
Madeline Seneff 20.07.2011 | Well unfortunately it didn't work, and I'm not quite sure why. So here's what happened. I downloaded loopMIDI, installed it, etc. opened it, added a port name with the default name of "loopMIDI Port" then I went to GlovePIE, pasted the script you gave me directly into the space available for text, deleted everything after the "//" on any of the lines that had it, then hit run. But next to the stop buttoen read "Out To MIDI Yoke: 7" but I gave it a try anyway and opened traktor. It was clearly not working because a whole bunch of random stuff was happening like my FX were cycling through for whatever reason. The GlovePIE popped up with a message saying "GlovePIE Programmable Input Emulator (Bird + 5DT ver) has stopped working, Windows is collecting more information about the problem, this may take several minutes..." and then a few seconds later a second message popped up pretty much saying it didn't find anything but wants to ask if I want to report it anyway. So, I cancelled out of traktor, glovePIE, and loopMIDI, and thought maybe my problem was that I had loopMIDI and MidiYoke running at the same time, so then I tried everything again except this time I didn't open loopMIDI. Instead, MidiYoke was open, GlovePIE was opened, the same script was pasted in, run, traktor, same errors occured, then they were followed by the same error messages. so yeah that's where I'm at now... lol and I thought I'd just be able to plug in a keyboard and start mixing, not gunna give up that easy though! any thoughts? |
Madeline Seneff 20.07.2011 | haha ok I believe I finally understand! I am running windows 7 so I'll go get loopMIDI and give that a whirl, then report back here hopefully with some good news. |
Chasidy Heckenbach 20.07.2011 | the keyboard lights are nothing to do with this. you can get your keyboard to send out midi via glovepie - but it cant then receive midi to change lights etc. you need an app like loopMIDI that creates a virtual midi device - which is what you'll set as the IN port in traktor. you then set glovepie to send OUT to that loopMIDI virtual device so you end up with this: your keyboard => glovepie => loopMIDI device => traktor the only script you need is the one i pasted several posts ago: Code:
midi.DeviceOut = 8 // device number to use debug = midi.OutDevName // show device name in use midi.DefaultChannel = 1 // midi channel to send on midi.csharp0 = Keyboard2.A midi.d0 = Keyboard2.B if you're on windows i recommend using loopMIDI as its very easy to use - just create one virtual midi port. if on a mac you'd need to scan the community for info on that. first get glovepie talking to your virtual midi device by tweaking that DeviceOut parameter - then get traktor connected to the same virtual midi device. once you have at least one keypress getting into traktor then keep adding to the glovepie script like those 2 lines above and adding the entries in your traktor tsi... |
Madeline Seneff 19.07.2011 |
Originally Posted by zestoi
so, I know the keyboard I have has 3 lights on it, for caps, scroll, and number lock. are these my midi OUTs then, similar to the launchpad lights? and would that make all the keys on the keyboard all of my midi IN? I believe I might be jumping ahead of myself a bit. I understand mapping on Traktor, just this glovePIE program is a whole new world for me. but anyway, based on what I just said, is this the proper way of pluggin in all that information in the code you gave me? Code:
midi.DeviceOut = 3 // device number to use debug = midi.GenericMidi // show device name in use midi.DefaultChannel = 1 // midi channel to send on midi.csharp0 = Keyboard2.A midi.d0 = Keyboard2.B |
Chasidy Heckenbach 19.07.2011 |
Originally Posted by chaomocha
any device that can send data (like a midi keyboard) and receive midi (like a pad that lights up on a launchpad) have both a midi IN and an OUT port. |
Madeline Seneff 19.07.2011 |
Originally Posted by zestoi
|
Chasidy Heckenbach 19.07.2011 |
Originally Posted by chaomocha
and another question but could you explain this a bit more:
Code:
midi.DeviceOut = 8 // device number to use debug = midi.OutDevName // show device name in use midi.DefaultChannel = 1 // midi channel to send on i did also write this glovepie code that allows you to select by the device name - but tbh entering a number in the line above is probably simpler overall. Code:
var.DevName = "test" if (var.Init == 0) then for var.Count = 0 to 20 do midi.DeviceOut = var.Count if (midi.OutDevName ~= var.DevName) then debug = "Selected: " + midi.OutDevName + " at id=" + floor(var.Count) var.Count = 21 // end the loop end if end for var.init = 1 endif |
Madeline Seneff 19.07.2011 |
Originally Posted by zestoi
Code:
midi.DeviceOut = 8 // device number to use debug = midi.OutDevName // show device name in use midi.DefaultChannel = 1 // midi channel to send on |
Chasidy Heckenbach 17.07.2011 |
Originally Posted by chaomocha
as a guess this kind of syntax should work fine: Code:
midi.DeviceOut = 8 // device number to use debug = midi.OutDevName // show device name in use midi.DefaultChannel = 1 // midi channel to send on midi.csharp0 = Keyboard2.A midi.d0 = Keyboard2.B |
<< Back to Reviews of DJ equipment Reply