Accelerate and Decelerate linear Rotation So I'm animating a 10 minute long clockwork sort of animation that has spinning gears all driven the rotation of a single object. There is a default speed and a faster speed I want them to rotate at. When on screen things are happening or moving the gears speed up and when idle they slow down to default speed. So far the methods I have tried to achieve this have been very cumbersome as there are many speed ups and slow downs, keying this with the graph editor seems inconsistent, NLA actions create skips is the rotation in odd ways and increasing the speed of a driver via multiplying the speed connected to the FPS seems to make the gears run backward during deceleration...
So on to the question, what would be the best way to accelerate and decelerate the rotation smoothly and be able to key this quickly. I would like to be able to set the speed up point and slowdown point and be able to quickly copy paste and resize the length of the faster parts and slower parts to quickly line them up. Or have a Controller that adjusts speed up and down smoothly. Willing to use Animation nodes if necessary although don't have a strong understanding of them. How would I do this?  would love to hear what methods people would recommend to speed up this workflow.
I managed to solve this with animation nodes and mapping an F-curve Value to a controller object and tying that to the rotation of the gear driver.  
This the node set up I used to solve this incase anyone is wondering. Just needed to add together the total F-Curve values of each frame, this made the gears run a bit to fast so I divided them by 30 to get a better base speed. Now I can just paste the position of the sphere between to positions and the transition between Speeding up and slowing down no move slowly as expected.