RGB Strip and Rotary Encoder

I am working on a project and cannot find any help regarding what I want to do on the internet. There are plenty of starting points but I would love someone to walk me through all of the code needed (or even provide it). I am new to arduino and want to learn it but also really want this project wrapped up.

So I have an RGB 5050 LED strip currently hooked up like this http://learn.adafruit.com/system/assets/assets/000/002/692/medium800/ledstripfet.gif?1353964350 I also have a rotary encoder with push button (3 pins one one side and 2 on the other), and an electret microphone with adjustable gain.

There are 4 functions I want the project to have, each "state" or function will be activated via the push button in the rotary encoder

  1. On
    At this point turning the rotary encoder will change the HUE of the LEDs.
  2. Change luminosity of LEDs using the microphone
    At this point turning the rotary encoder will change the HUE of the LEDs.
  3. Change hue of LEDS using the microphone
    At this point turning the rotary encoder will change the luminosity of the LEDs.
  4. Off

Any help is greatly appreciated!