If you're running Serato, Soundswitch is the best idea I've found. It'll loop to tempo once you get it set up, and runs in the background behind Serato. It's kind of stubborn with custom fixtures though, but the support is impeccable. Map an APC mini to it & away you go. If you want the lights to work on the APC mini, Soundswitch won't do it by itself. Use bome's midi translator to do it. If you want to program a custom light sequence for a song, you can do so. If you don't, then you can just let Soundswitch run auto loops.
iPad driven stuff is basically ADJ's mydmx GO. Lightrider is another, but I believe it's the same app with different branding on it. There are others too, but the app store will show you those, just have to do some research on what hardware needs to go with each app.
My setup: I use Soundswitch to send a strobe on channel 512 that turns on/off every beat. I send it to Daslight's DMX input & tell Daslight that it's the tap tempo input. Then I've got a giant wad of different movements/color overrides & effects in Daslight that are all mapped to tempo....and a bunch that aren't for slow songs, or where background music is the idea. The reason I do it this way is because 5 movements, 5 colors & 5 chases = 125 different lighting looks that can be used on any piece of music in my library.
So, rather than program 2000 songs with Soundswitch, they just have the tempo track for Daslight. If I need Daslight to go do a theater/live show, then I just bring uplights & let Soundswitch run autoloops directly to the uplights.
Todd