Too bad you went thru the trouble of pulling the plugs, may as well change them now.
The fact that you don't have a missfire code pretty much rules out the plugs or coils or ignition system. What you're left with is a fuel problem. It's probably an injector issue, here's a way to diagnose.Take your air cleaner out and get a can of starting fluid. With the engine running at idle or whatever speed it seems to be the roughest, spray a small fine mist of ether into the filter chamber - you will be creating a work around for a poorly operating injector. Now you don't want to flood it out, so try to keep the spray small. If it sounds smoother, then you have proven the problem. If there's any way you can deliver the spray to just one cylinder at a time, you can figure out which cylinder is at fault. There's another way of doing it which is the way most pros would, and that is to use a small can of propane with a nozzle and spray the propane into the air filter chamber. I used to have one with a regulator and a deadman's valve in case you dropped it. Since you have the plugs out anyway, use a spark tester, crank the engine, and look for spark just in case. What I think has happened is that the tip of the injector is just a little clogged, which is something that can happen on bike that sits for a while. In a shop we would hook the injectors up to a flushing unit and push thru a mixture of 50/50 Techron and gas, or use a cleaner from Snap-On. You can't do that, so try running a heavy mix of techron or the cleaner of your choice thru that engine. It may take some time. Remember that at idle, the injector is only flowing a miniscule amount of fuel, so if it's even just a little sticky or clogged with dried fuel (varnish) then it won't have enuf to fire cleanly. Also, the guy posting above me has a good idea about the purge valve.