public int[] Play(Note note) { var wave = instrument.Play(note); for (int i = 0; i < duration; i++) { wave[i] *= (int)(i / (double)duration); } return(wave); }
static void Main(string[] args) { InstrumentFactory factory = new ConcreteInstrumentFactory(); IInstrument guitar = factory.GetInstrument("Guitar"); guitar.Play(96); guitar.Sell(120); IInstrument piano = factory.GetInstrument("Piano"); piano.Play(80); piano.Sell(1000); IInstrument bass = factory.GetInstrument("Bass"); bass.Play(75); bass.Sell(150); }
private int[] PlaySineWave(Note[] notes, IInstrument instrument) { var length = notes.Sum(GetNoteDuration); var wave = new int[length]; var i = 0; foreach (var note in notes) { var result = instrument.Play(note); for (int j = 0; j < result.Length; j++) { if (i + j >= wave.Length) { return(wave); } wave[i + j] += Convert.ToInt32(result[j]); } i += GetNoteDuration(note);; } return(wave); }