Learn State Design Pattern by Designing a Simple Music System

Many times we need to develop systems / objects that provides services to outside world. But the response of each service is not always same, it depends upon its current internal state.