private static MusicPlayer MusicBoxNotationMusicPlayerFactory(RawMusicSheet rawMusicSheet, KeyboardType type) { var musicSheet = new MusicSheetParser(new ChordParser(new NoteParser(), rawMusicSheet.Instrument)).Parse( rawMusicSheet.Melody, int.Parse(rawMusicSheet.Tempo), int.Parse(rawMusicSheet.Meter.Split('/')[0]), int.Parse(rawMusicSheet.Meter.Split('/')[1])); var algorithm = rawMusicSheet.Algorithm == "favor notes" ? new FavorNotesAlgorithm() : (IPlayAlgorithm) new FavorChordsAlgorithm(); return(new MusicPlayer( musicSheet, GetInstrument(rawMusicSheet.Instrument, type), algorithm)); }
private static MusicPlayer MusicBoxNotationMusicPlayerFactory(RawMusicSheet rawMusicSheet, KeyboardType type) { var musicSheet = new MusicSheetParser(new ChordParser(new NoteParser(), rawMusicSheet.Instrument)).Parse( rawMusicSheet.Melody, int.Parse(rawMusicSheet.Tempo), int.Parse(rawMusicSheet.Meter.Split('/')[0]), int.Parse(rawMusicSheet.Meter.Split('/')[1])); var algorithm = rawMusicSheet.Algorithm == "favor notes" ? new FavorNotesAlgorithm() : (IPlayAlgorithm) new FavorChordsAlgorithm(); Instrument instrument = InstrumentRepository[rawMusicSheet.Instrument]; switch (type) { case KeyboardType.Preview: MusicianModule.ModuleInstance.Conveyor.Visible = false; instrument.Keyboard = instrument.PreviewKeyboard; break; case KeyboardType.Practice: MusicianModule.ModuleInstance.Conveyor.Visible = true; instrument.Keyboard = PracticeKeyboard; break; case KeyboardType.Emulated: MusicianModule.ModuleInstance.Conveyor.Visible = false; instrument.Keyboard = EmulatedKeyboard; break; default: throw new NotSupportedException(); } return(new MusicPlayer( musicSheet, instrument, algorithm)); }
private static MusicPlayer MusicBoxNotationMusicPlayerFactory(RawMusicSheet rawMusicSheet, InstrumentMode mode) { var musicSheet = new MusicSheetParser(new ChordParser(new NoteParser(), rawMusicSheet.Instrument)).Parse( rawMusicSheet.Melody, int.Parse(rawMusicSheet.Tempo), int.Parse(rawMusicSheet.Meter.Split('/')[0]), int.Parse(rawMusicSheet.Meter.Split('/')[1])); var algorithm = rawMusicSheet.Algorithm == "favor notes" ? new FavorNotesAlgorithm() : (IPlayAlgorithm) new FavorChordsAlgorithm(); Instrument instrument = InstrumentRepository[rawMusicSheet.Instrument]; instrument.Mode = mode; MusicianModule.ModuleInstance.Conveyor.Visible = mode == InstrumentMode.Practice; return(new MusicPlayer( musicSheet, instrument, algorithm)); }
internal static MusicPlayer Create(RawMusicSheet rawMusicSheet, KeyboardType type) { return(MusicBoxNotationMusicPlayerFactory(rawMusicSheet, type)); }
internal static MusicPlayer Create(RawMusicSheet rawMusicSheet, InstrumentMode mode) { return(MusicBoxNotationMusicPlayerFactory(rawMusicSheet, mode)); }