예제 #1
0
        public ScoreControl(IUnityContainer container, IOutput output, IMidiInput midiInput, IInputEvents inputEvents, IMediaServiceHost mediaServiceHost,
                            IVirtualKeyBoard virtualKeyboard, ILogger logger, XScore musicScore) : this()
        {
            _container        = container;
            _output           = output;
            _intputEvents     = inputEvents;
            _midiInput        = midiInput;
            _virtualKeyboard  = virtualKeyboard;
            _musicScore       = musicScore;
            _mediaServiceHost = mediaServiceHost;
            _logger           = logger;

            _updateScrollTimer = new Timer(ScrollTimerHandler, null, Timeout.Infinite, _scrollTimingPerdiod);

            _scoreParser = new ScoreParser(_musicScore, ScoreGrid);
            _scoreParser.Render();
            ScoreGrid.Width = _scoreParser.GetMaxHorizontalPosition();

            nextBarDetails          = new BarDetails();
            nextBarDetails.NoteTime = 0;
            nextBarDetails.XCoord   = 0;

            _intputEvents.MessageReceived += HandleInputEvent;

            _midiInput.StartRecording();

            ConfigureSongEventController();
        }
예제 #2
0
        public BasicTestControl(IUnityContainer container, IOutput output)
        {
            //XScore testMusicScore = new XScore(@".\ScoreRenderer\Examples\Dichterliebe01.xml");
            //XScore testMusicScore = new XScore(@".\ScoreRenderer\Examples\LedgerTest.xml");
            //XScore testMusicScore = new XScore(@".\ScoreRenderer\Examples\Scales-C-2-Hands.xml");
            //XScore testMusicScore = new XScore(@".\ScoreRenderer\Examples\Promenade_Example.xml");
            //XScore testMusicScore = new XScore(@".\ScoreRenderer\Examples\Simple2NoteTest.xml");
            XScore testMusicScore = new XScore(@".\ScoreRenderer\Examples\Nocturne Op. 9, No. 2.xml");

            //Don't like the param overrides approach... Maybe allow only 1 active score and register the instance??
            _control = container.Resolve <ScoreControl>(new ParameterOverrides {
                { "musicScore", testMusicScore }
            });
        }
예제 #3
0
        public static void Main()
        {
            XScore xcTest = new XScore(@"C:\Users\Alex\MrKeys\ThirdParty\MusicXML.Net\Promenade_Example.xml");

            foreach (Part part in xcTest.Parts)
            {
                foreach (Measure measure in part.Measures)
                {
                    foreach (Note note in measure.Notes)
                    {
                        Console.WriteLine(note);
                    }
                }
            }

            Console.ReadLine();
        }
예제 #4
0
 public XScoreNoteEventParser(XScore score)
 {
     this._score = score;
 }
예제 #5
0
 public ScoreParser(XScore score, Canvas scorePanel)
 {
     this._score      = score;
     this._scorePanel = scorePanel;
 }
예제 #6
0
 public static Part SelectPianoPart(XScore score)
 {
     return(score.Parts.Last());
 }
예제 #7
0
 public MusicParser(XScore score)
 {
     this._score = score;
 }