Using Synthmakers Xbox360 Interface as a Midi FootController
Archive · 201220 old posts
From the original SynthMaker forum (2004–2014), with its members’ names and dates.
Granta1969 ·
Hi.. I'm totally new to Synthmaker but I see that it has the ability to input an xbox360 controller buttons. What I basically want to do is strip down an Xbox360, install the core electronics into a DIY box and have about 10 buttons that I could then press and send midi commands to Guitar Rig or other Guitar related vsti's that I have. As of now I'm basically inputing midi controller messages with a foot switch connected to my Midi keyboard. It's an old Akai MX73 so it's limited to just four controller change channels. I'm basically a loop based guitarist and I've been happy with just a few buttons. One to turn on the loop and one to stop it or delete it. There is so much more I could do with 20 momentary switches that it just irks me that I can't get it done properly. It's possible to simply input the xbox controller using something called midi yolk which is a software midi interface. You then map each button. You can basically turn any input device into a midi controller. But I've watched a lot of spotty teenagers on youtube showing how they've put their setup together and it always involves some extra software, or initialization before starting up your sequencer and it's just a big mess to deal with.
If I had a vst that I could simply load into my sequencer and have it auto-connect to the xbox360 controller that would be nothing less than a delight. It would mean that absolutley anyone at all could build a very reliable and awesome foot controller for say £4.00 for the wire, £15 for an xbox controller, and about a pound or less for each of the momentary switches. As for a chasis, could either buy one, make one out of wood, or find something in a thrift store. For about £20 you could have a good reliable foot controller that would be easly replaced if broken. Any help would be appreciated.
Grant
infuzion ·
Granta1969 wrote: What I basically want to do is strip down an Xbox360, install the core electronics into a DIY box and have about 10 buttons that I could then press and send midi commands to Guitar Rig or other Guitar related vsti's that I have.
Welcome to SM Granta1969!
Do you mean strip down the entire system or just the controller?
Granta1969 ·
infuzion wrote:
Granta1969 wrote: What I basically want to do is strip down an Xbox360, install the core electronics into a DIY box and have about 10 buttons that I could then press and send midi commands to Guitar Rig or other Guitar related vsti's that I have.
Welcome to SM Granta1969!
Do you mean strip down the entire system or just the controller?
I mean, I just want to strip down the Xbox360 hand held game controller. I don't own an xbox360. It's a fairly common thing to do. It's because the xbox360 controller has lots of buttons and it has a usb 2.0 port. If you go to youtube and type in DIY midi foot controller, you'll see people are coming up with all kinds of unique ways to interface ordinary text keyboards and other kinds of usb devices. It's usually a pain in the neck to try and copy someones design. Once you've created your contraption, you then have to install a program to convert the button or key inputs, then maybe install a Roland virtual midi device driver. Then finally you use something called Midi Yolk which lets you map the input from the Roland Virtual Device Driver. And thats just one way. There are dozens of makeshift midi foot controller designs floating around. None of which have truly impressed me. When I saw the option to input an Xbox360 controller in Synthmaker, I was pretty excited. When you drop the xbox360 controller into synthmaker you see that all the buttons give out a text status of either true or false. The default of course being False.
I have a handy utility called Midi-Ox which can display the midi info you transmit. I've set my Akai MX73 midi keyboard send this on midi channel 1 when I press the button.
So basically I would like the status of the xbox360 controller button 1 when pressed to send
"00055B3E 1 -- B0 40 7F 1 --- CC: Pedal (Sustain)" when the button sends "true"
and to send "00055C29 1 -- B0 40 00 1 --- CC: Pedal (Sustain)" when the button defaults
to false. This would be sent to the midi output in the vst and the midi information could be routed
to anything. In this case, it would be fed into Guitar Rig and control the buttons in the looper. I sent
an e-mail to I.K.Multi-media asking them to consider refining the looper module in guitar rig to get closer
to emulating such expensive and aweseome looping pedals like the Boss Loopstation. They said that they've had
lots of requests and were really looking into developing it. Thats means for me, that I'd like to have a
really good foot controller to handle a variety of different on/off scenarios. Most of the midi foot controllers
in my opinion are too "off the rack" and are either way to big, require external power supplies, are heavy
or are really expensive. If someone could point me in the right direction with outputing the "true or false"
xbox controller messages into the midi controller messages that would be awesome. It has to be dead simple.
trogluddite ·
Welcome to the forum,
The SM parts of what you want to do should be pretty straightforward. The crucial component that you need is called "MIDI Event", and you would connect it something like this...
As you can see, not a lot to it - except that you have a little "translation" to do, converting the data from MIDI-OX (Hexadecimal numbers) into the decimal equivalents to feed into the MIDI event primitive.
Luckily SM can help you here too, as it has hex-decimal and decimal-hex convertor primitives- so quite easy for example to convert 40 (Hex) to 64 (decimal) for the sustain controller number. The boolean outputs from the Xbox controller are equivalent to zero (off) and one (on) - so the multiply by 127 changes this to zero and 127 (7F in hex) - and the little extra link to the "send event" input of the MIDI Event part triggers a new message every time the value changes.
The "Status" value is a little more complicated - your MIDI-OX value "B0" actually combines the Status ("B") and the Channel ("0") into one value, whereas in SM they are separate. To convert these, first take the status part, and always put a zero after it (still "B0" in this case), and convert to decimal for the status number. Then take the second digit, convert to decimal, and add one, to get the channel number - or just enter a channel of your choice from 1 to 16.
For the analogue controllers, you will again need to do a little maths on the number to get the "Data2" value to match the correct 0-127 range used by MIDI controllers.
Good luck with your project - I love alternative MIDI controllers, and am also a fellow "Live Looping" fan, so I look forward to seeing what you come up with.
NB) The little primitive "After Load" in the picture should force the plugin to connect to the controller automatically at load time.
infuzion ·
Granta1969 wrote: Any help would be appreciated.
You know, I bought a XBox controller to use a VST interface, but never got around to getting it made. Too busy with getting commercial VST projects off the ground.. unless this became a commercial VST project also 😉
Honestly, if I was starting from scratch, I'd go Arduino:
https://www.google.com/search?q=arduino+MIDI+controller
http://guitarextended.wordpress.com/201 ... al-pduino/
http://store.arduino.cc/eu/index.php?ma ... cts_id=195
https://www.google.com/search?q=arduino ... xer+matrix
http://www.openmusiclabs.com/projects/repatcher/
Tzarls ·
Granta1969 wrote: I sent an e-mail to I.K.Multi-media asking them to consider refining the looper module in guitar rig to get closer to emulating such expensive and aweseome looping pedals like the Boss Loopstation. They said that they've had lots of requests and were really looking into developing it.
That´s odd. There have been lots of requests to get IK Multimedia add some improvements to a Native Instruments´ product? 😈 😉
Granta1969 ·
trogluddite wrote: Welcome to the forum,
The SM parts of what you want to do should be pretty straightforward. The crucial component that you need is called "MIDI Event", and ......
Thanks Trogluddite! That made my day. I've just spent the last several hours exploring Synthedit. I figured out how to build the components with a little effort.. But I couldn't figure out how to output a vst. I was able to build an exe which just showed a blank square box, but as of now, vst effect is a little out of my ability. I'll have to read deeper into the manual. I probably have to create a basic interface of some kind. Also, Midi-Ox has an option to convert the hex into decimal so I see clearly now what you're talking about. Thats really nice that synthedit has the hex to decimal conversion within such easy grasp. It took a little while to understand what you were talking about. It sounds way too complicated at first, but I kept at it. I'm going to use the following controller messages to start off with.
TIMESTAMP IN PORT STATUS DATA1 DATA2 CHAN NOTE EVENT
914184 1 -- 176 75 127 1 --- Control Change
915063 1 -- 176 75 0 1 --- Control Change
to
1037797 1 -- 176 83 127 1 --- Control Change
1038469 1 -- 176 83 0 1 --- Control Change
Thats 75 to 83 is enough to create a simple useful pedal.
thanks for your help. I appreciate it.
Grant
philter5 ·
Granta1969 wrote: I've just spent the last several hours exploring Synthedit. I figured out how to build the components with a little effort.. But I couldn't figure out how to output a vst.
Grant
hu? you mean Synthmaker, or?
While creating a standalone is always available, you have to have special ins/outs in your Schematic
to make VST OR VSTi Export possible.. . A plugin needs AT LEAST 1 input/output MIDI or STREAM).
before you add that the "Export to" option is limited to standalone.
have fun 😉
nix ·
more specifically,
A VSTfx will be output with stereo ins and outs
A VSTi will be output with MIDI in and stereo outs
nix ·
They r the 2 though,
if u get a guitar guy get on the computer-
everyone will say->
IK Amplitube & NI GR
As far as this goes 4 me,
I have built recorder, loop cutter and sampler with SM,
it's freaking killer to use a computer as well guitar.
trogluddite ·
Granta1969 wrote: But I couldn't figure out how to output a vst
It's quite simple, but I don't think always well explained in the manual.
What you are after is to make everything inside a module (light grey box). The Xbox primitive would be inside the box, but you need to keep any Audio/MIDI "External" primitives outside the box, so that the VST host can take control of the routing. That should leave you with something like this...
...then click the little "VST" icon on the bottom bar of the module to export as a VST.
The inputs and outputs on the module are only allowed to be one of two types...
MIDI (red) - These are optional - in your case you probably only need the MIDI output.
Mono (blue) - These are audio inputs and outputs. Now, your plugin does not really need these, and you can try exporting your design with just the MIDI output. But some VST hosts will not recognise a plugin as vaiid if there are no audio connections. If so, just add a dummy output that isn't connected to anything, and tick the "Synth" option when exporting (Effect = a VST with audio inputs, Synth = no audio inputs).
Having a GUI is kind of optional - if you don't need user controls, you are not forced to have them. If there are none, the host will just open up an empty window - which is ugly; so it's nice to at least have a fixed bitmap image to fill the hole. I would say, though, that you probably will need at least a little LED to show when the Xbox controller has established a connection; just to give users an indication that they are set up correctly.
infuzion ·
How about a $8-20 Arduino micro card?
http://www.kickstarter.com/projects/dig ... -dev-board
Granta1969 ·
trogluddite wrote:
Granta1969 wrote: But I couldn't figure out how to output a vst
It's quite simple, but I don't think always well explained in the manual.
Thanks Trogluddite. I have it all up and running. I bascially removed the midi in as I didn't need it as you mentioned. Added a single LED light to show it running when it's connected to the x-box controller. I saw that I could also update the midi channel the same way that you showed me how to update the status of the controller switch. Now it will update automatically and send the midi channel automatically. I'll add the option of a simple drop down box showing 1 to 16 later. I found an interesting example in the user forums. Someone posted a basic Presets manager. The kind you see on simple vst's such as mine. That stirred up some thinking. I might be getting a little ahead of myself here but I'll try and design it so that I can map any button on the xbox controller to any midi controller # between 64 to 95 (standard for controllers) and then be able to save or even export the presets like any standard vst. If I didn't do that, you'd either have to accept a static pre-set for all the buttons which wouldn't really be bad but it would be better to have it dynamic. Just in case some pianist has mapped 176 66 127 Sostenuto-Thumby. 😉 Thanks for all your help. I'll keep you updated.
Grant
trogluddite ·
You're welcome. Glad you are up and running! 🙂
trogluddite ·
Saw that our local supermarket was selling some cheap Xbox controllers, so I thought I'd have a bash at something.
Here's v1 of the plugin part - let's you assign a MIDI CC with min and max range to any of the Xbox controller widgets, complete with a pretty, but really rather pointless, display 😉
I already have a few ideas for what I'd like to do next, much of which I should be able to rip out of various "MIDI Learn" modules etc. that I already have knocking about...
- Support for other types of MIDI message.
- Extra button modes (only send on press, toggle value with each press...)
- Preset select from the controller.
If I get time at work tomorrow, I'll open up the hardware and run it through some of our test gear - I'm intrigued by the floats to the "rumble" motors, and guessing there might be a nice PWM signal or two that could be tapped for driving a few indicators.
infuzion ·
trogluddite wrote: - Extra button modes (only send on press, toggle value with each press...)
- Preset select from the controller.
Extra mode: Press & Hold (as opposed to click, usually used to open menus)?
I'm working on the Preset Manager system... need a Counter With Wrap? 😉
trogluddite ·
infuzion wrote: Extra mode: Press & Hold (as opposed to click, usually used to open menus)?
Yes, good idea - it's not unusual that there are features that you don't want engaging by accident when you happen to catch the wrong button.
Granta1969 ·
I'm kinda marveling at how complex this synthmaker software is. I'm at the stage where I'm marveling at looking at what appears to be a complex tool and thinking to myself, "i haven't seen that in the toolbox before, thats handy" only to realize that it's built up of several other bits and pieces. I see that if you load someones work file and find something interesting that they've built, you can be sneaky and keep it in your toolbox for use later. I've never really seen anything like this program before. I could imagine that the same idea could be applied to making all sorts of programs such as graphics editing, astronomy, 3-d modeling, etc.
I've made it through most of the user guide. I understand most everything I've read so far. I'm kinda wondering though. Is this really all you kneed to know to start designing synths or midi interfaces.? There has to be a full fledged 300 page manual someplace. For instance, I opened up your xbox controller file and took a look under the hood. The first thing that caught my eye was the "bussing" rig that you created. Clicking on it takes me inside to something even more complex and puzzling. I see inside that there is a component called "bus create" which lets you combine several channels of data into one. Fair enough. I can honestly say though that after reading the user guide that I wouldn't be able to picture such a complicated use of the component. I think I have it in myself to master this software (eventually), but only if I can find a way in to it. I've searched the internet for links on synthmaker but I only see a few valuable links such as "the synthedit resources page." Ideally I would like to find a kind of online "wiki-pedia" describing each and every component but that probably doesn't exist. This is such a fun toy. I'm having a lot of fun playing with it.
Grant
trogluddite ·
Granta1969 wrote: There has to be a full fledged 300 page manual someplace
Sadly not - that is by far, SM's biggest weakness 🙁
The nearest thing,is the Wiki (tab at top of the page) and posts here at the forum. From your posts so far, you seem an intelligent guy who has a fair idea of some things that you'd like to do - as long as your questions are 'on topic' and you feed back to us what has been useful (or not), no-one will mind you posting lots of questions - that's how we all had to learn the ropes.
Likewise with the modules that you find here - they are a great source of examples, and there are also several excellent "toolbox colections" around. Folks will usually make clear if there are 'licence restrictions' (e.g. if you wanted to sell your plugin) - otherwise, if you simply respect people by giving due credit, their contributions are mostly free to use and pull to pieces for ideas as you wish (you can always PM them to ask if you are unsure).
In fact, the way SM uses modules is probably it's greatest feature. You will be surprised how quickly you learn by just making small modules to experiment with - once you master that, bigger projects fall together quite fast, because you can always deal with your design at a level where you just have a few "boxes" on screen with relatively few inputs and outputs.
If it seems that I put my Xbox plugin together quickly - well, the modules explain that too. After a few years here, there are so many of the functions required that I can simply drop in from my toolbox - fine tuning the details is much more painstaking, but not needing to work 'from scratch' for every project makes SM perfect for rapid prototyping. The sister software, FlowStone, applies the very same idea to some of the other applications that you mentioned.
Here's the latest version of my Xbox tool. I've added in a load of bits culled from some older MIDI projects, so that it now supports other MIDI message types and button behaviours (basic instructions are in the schematic file)...
infuzion ·
trogluddite wrote:
Granta1969 wrote: There has to be a full fledged 300 page manual someplace
The nearest thing,is the Wiki (tab at top of the page) and posts here at the forum. From your posts so far, you seem an intelligent guy who has a fair idea of some things that you'd like to do - as long as your questions are 'on topic' and you feed back to us what has been useful (or not), no-one will mind you posting lots of questions - that's how we all had to learn the ropes.
Specific questions help, attach OSMs or atleast link to what you are trying to do & please don't be mad if we say "search for ____" 🙂
Wrote something here? To have a post removed or your name hidden, write to [email protected].