I'm making a music sequencer where the user can play given samples at arbitrary positions within my GUI. There're two types of music samples that they can play an instrument, and a vocal.
I've got an interface "ISampleType" where my "Vocal", and "Instrument" implement the interface. Both of my classes extends another class called "PlaySample" all this class does is play the sample (.WAV) file based of the location of a vocal "voice.wav, voice2.wav etc" or an instrument ("Snare.wav","Highhat.wav" etc).
All I would like to know if this design seems okay. I'm implementing something than changes (SampleType), but I'm setting my class (PlaySample) to an concreate implementation.
Any tips please?