Rotary Encoder - learn this if you have about 400 hours of time.

Years ago originally, I tried doing this reading from parallel port signals on a PC - with lots of frustration. I moved to PIC micro-controller testing, before I tried Arduino. I have a little box with about a 1/2 dozen different types of cheap plastic encoders from different manufacturers that appear to give a different signal triggering from each one.

As of now I am just focusing efforts on the LCD shield with the rotary encoder and a joystick switch built into it.

I have to move the project off the LCD shield, and use the nice LCD 16x2 with the serial spi interface, that only uses 2 pins instead of a billion pins on the shield prototype. So I have to pick out a rotary encoder with circuitry to use for the project. Its just a manual knob to control a display menu, (not a CNC data-capture from a positioning motor, where super accuracy is absolutely needed).

I have to use "DELAY" command in my program, since it plays music from air-horns triggered by solenoids (or a piezo buzzer to test without having neighbors call cops to house again for excessive noise disturbance). Trigger digital pin on, delay, trigger pin off - another delay, play next note, etc... If anyone can offer a better way to play notes without using DELAY statement, I am willing to entertain suggestions. I guess your talking about using the DELAY to handle the encoder routines.