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));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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));
        }
Exemple #4
0
 internal static MusicPlayer Create(RawMusicSheet rawMusicSheet, KeyboardType type)
 {
     return(MusicBoxNotationMusicPlayerFactory(rawMusicSheet, type));
 }
Exemple #5
0
 internal static MusicPlayer Create(RawMusicSheet rawMusicSheet, InstrumentMode mode)
 {
     return(MusicBoxNotationMusicPlayerFactory(rawMusicSheet, mode));
 }