public void GtSceneGuitarNoteValueAndNumber(int pString, int pFret, NoteValue pNoteValue, int pNoteNumber) { var guitarNote = new GtSceneGuitarNote(new BeatTick(1, 0), new BeatTick(2, 0), pString, pFret); Assert.AreEqual(pNoteValue, guitarNote.NoteValue); Assert.AreEqual(pNoteNumber, guitarNote.NoteNumber); }
public void StartHitedIsNotReset() { var factory = new GtFactory(); factory.AddMapping <IGtPlayedNotesAnalyserHelper, MockGtPlayedNotesAnalyserHelperAlwaysIsNotPlaying>(); var analyser = factory.Instantiate <IGtPlayedNotesAnalyser>(factory, new DoubleAudioListenerDoNothing(40)); var note = new GtSceneGuitarNote(new BeatTick(1, 0), new BeatTick(1, 240), 6, 0); var startingNotes = new List <GtSceneGuitarNote>(); startingNotes.Add(note); var expectedPlayingNotes = new List <GtSceneGuitarNote>(); expectedPlayingNotes.Add(note); note.Playing = true; note.StartHited = true; analyser.Analyse(startingNotes, expectedPlayingNotes); Assert.IsTrue(startingNotes[0].StartHited); Assert.IsFalse(startingNotes[0].Playing); }
public void NoteIsPlayinAddInLastQueriedPlayedNotes() { IGtPlayedNotesAnalyserHelper analyserHelper = new GtPlayedNotesAnalyserHelperMock( new GtFactoryMockedClock(), new DoubleAudioListenerDoNothing(40)); var note = new GtSceneGuitarNote( new BeatTick(1, 0), new BeatTick(2, 0), 6, 0); //E3 GtFactoryMockedClock.MockCurrentDateTime = new DateTime(2010, 1, 1, 0, 0, 0, 0); GtPlayedNotesAnalyserHelperMock.ValueForNoteIsPlaying = true; Assert.IsTrue(analyserHelper.NoteIsPlaying(note)); //note is added to LastQueriedPlayedNotes list //50 ms after playedNote added to LastQueriedPlayedNotes GtFactoryMockedClock.MockCurrentDateTime = new DateTime(2010, 1, 1, 0, 0, 0, GtPlayedNotesAnalyserHelper.DELAY_TIME_FOR_PLAYING_NOTES_RECOGNITION); GtPlayedNotesAnalyserHelperMock.ValueForNoteIsPlaying = false; Assert.IsTrue(analyserHelper.NoteIsPlaying(note)); //51 ms after playedNote added to LastQueriedPlayedNotes GtFactoryMockedClock.MockCurrentDateTime = new DateTime(2010, 1, 1, 0, 0, 0, GtPlayedNotesAnalyserHelper.DELAY_TIME_FOR_PLAYING_NOTES_RECOGNITION + 1); Assert.IsFalse(analyserHelper.NoteIsPlaying(note)); //The expired playedNote was removed from analyserHelper.LastQueriedPlayedNotes Assert.AreEqual(0, analyserHelper.LastQueriedPlayedNotes.Count); }
public void LastQueriedPlayedNotes() { IGtPlayedNotesAnalyserHelper analyserHelper = new GtPlayedNotesAnalyserHelper( new GtFactoryMockedClock(), new DoubleAudioListenerDoNothing(40)); var note = new GtSceneGuitarNote( new BeatTick(1, 0), new BeatTick(2, 0), 6, 0); //E3 Assert.IsFalse(analyserHelper.NoteIsPlaying(note)); //Add the "E3" to the LastQueriedPlayedNotes list var playedNote = new MusicalNoteAndTimeStamp(); playedNote.MusicalNote = new MusicalNote("E3"); playedNote.TimeStamp = new DateTime(2010, 1, 1, 0, 0, 0, 0); analyserHelper.LastQueriedPlayedNotes.Add(playedNote); //50 ms after playedNote added to LastQueriedPlayedNotes GtFactoryMockedClock.MockCurrentDateTime = new DateTime(2010, 1, 1, 0, 0, 0, GtPlayedNotesAnalyserHelper.DELAY_TIME_FOR_PLAYING_NOTES_RECOGNITION); Assert.IsTrue(analyserHelper.NoteIsPlaying(note)); //51 ms after playedNote added to LastQueriedPlayedNotes GtFactoryMockedClock.MockCurrentDateTime = new DateTime(2010, 1, 1, 0, 0, 0, GtPlayedNotesAnalyserHelper.DELAY_TIME_FOR_PLAYING_NOTES_RECOGNITION + 1); Assert.IsFalse(analyserHelper.NoteIsPlaying(note)); //The expired playedNote was removed from analyserHelper.LastQueriedPlayedNotes Assert.AreEqual(0, analyserHelper.LastQueriedPlayedNotes.Count); }
private static Color CalculateNoteColor(GtSceneGuitarNote pSceneGuitarNote) { //Color by Fret return(CalculateColorByFret(pSceneGuitarNote.Fret)); //Color by Note - Use the MusicalNote class to get the right color for this note //var auxNote = new MusicalNote(pSceneGuitarNote.NoteValue.ToString() + "3"); //var color = auxNote.NoteColor(); //return color; }
public void NoteIsPlayingSignature() { IGtPlayedNotesAnalyserHelper analyserHelper = new GtPlayedNotesAnalyserHelper( new GtFactory(), new DoubleAudioListenerDoNothing(40)); var note = new GtSceneGuitarNote( new BeatTick(1, 0), new BeatTick(2, 0), 6, 0); //E3 Assert.IsFalse(analyserHelper.NoteIsPlaying(note)); }
public void OnePlayingNoteShouldReturn1Point() { var factory = new GtFactory(); factory.AddMapping <IGtPlayedNotesAnalyserHelper, MockGtPlayedNotesAnalyserHelperAlwaysIsPlaying>(); var analyser = factory.Instantiate <IGtPlayedNotesAnalyser>(factory, new DoubleAudioListenerDoNothing(40)); var note1 = new GtSceneGuitarNote(new BeatTick(1, 0), new BeatTick(1, 240), 6, 0); var startingNotes = new List <GtSceneGuitarNote>(); var expectedPlayingNotes = new List <GtSceneGuitarNote>(); expectedPlayingNotes.Add(note1); var points = analyser.Analyse(startingNotes, expectedPlayingNotes); Assert.AreEqual(1, points); }
private void RenderNoteDuration(GtSceneGuitarNote pSceneGuitarNote, Rectangle pNoteRectangle, Color pColor, SpriteBatch pSpriteBatch) { var width = pNoteRectangle.Width / 3; var x = pNoteRectangle.X + (pNoteRectangle.Width - width) / 2; //height var lengthInTicks = pSceneGuitarNote.EndPosition.AsTicks() - pSceneGuitarNote.StartPosition.AsTicks(); var height = (int)(this.TickHeight * lengthInTicks); var y = (pNoteRectangle.Y - height) + (this.BallWidth / 2); Rectangle visibleArea = this.CutOffOutOfBoundArea(new Rectangle(x, y, width, height)); //draw effect (back) if (pSceneGuitarNote.Playing) { Rectangle effectArea = this.CutOffOutOfBoundArea(new Rectangle(x - width / 2, y, 2 * width, height)); //draw the duration bar pSpriteBatch.Draw( this.Game.NoteSusteinTexture, effectArea, pColor); //draw the duration bar with playing effect pSpriteBatch.Draw( this.Game.NoteSusteinPlayingEffect, visibleArea, pColor); } else { //draw the duration bar pSpriteBatch.Draw( this.Game.NoteSusteinTexture, visibleArea, pColor); } }
public void AnalyseMustReturnZeroIfNoNoteIsCorrect() { var factory = new GtFactory(); factory.AddMapping <IGtPlayedNotesAnalyserHelper, MockGtPlayedNotesAnalyserHelperAlwaysIsNotPlaying>(); var analyser = factory.Instantiate <IGtPlayedNotesAnalyser>(factory, new DoubleAudioListenerDoNothing(40)); var note = new GtSceneGuitarNote(new BeatTick(1, 0), new BeatTick(1, 240), 6, 0); var startingNotes = new List <GtSceneGuitarNote>(); startingNotes.Add(note); var expectedPlayingNotes = new List <GtSceneGuitarNote>(); expectedPlayingNotes.Add(note); var points = analyser.Analyse(startingNotes, expectedPlayingNotes); var maxPoints = analyser.AnalyseMaximum(startingNotes, expectedPlayingNotes); Assert.AreEqual(0, points); Assert.AreEqual(101, maxPoints); }
public bool NoteIsPlaying(GtSceneGuitarNote pSceneGuitarNote) { return(false); }
private void RenderNote(GtSceneGuitar pSceneGuitar, GtSceneGuitarNote pSceneGuitarNote, SpriteBatch pSpriteBatch) { var x = this.X - (this.Distance / 2); //start position - 6th string //positioning at the correct string x += (6 - pSceneGuitarNote.String) * this.Distance; x += 2; var color = CalculateNoteColor(pSceneGuitarNote); switch (pSceneGuitarNote.String) { case 6: x += 1; //this string is large break; case 5: x += 1; //this string is large break; case 4: x += 1; //this string is large break; case 3: break; case 2: break; case 1: break; } //Draw the boll int y = this.Height - (int)(this.TickHeight * pSceneGuitarNote.DistanceFromCurrentPosition) - (this.BallWidth / 2); if (y < 0) { return; } var noteRectangle = new Rectangle(x, y, this.BallWidth, this.BallWidth); this.RenderNoteDuration(pSceneGuitarNote, noteRectangle, color, pSpriteBatch); if (pSceneGuitarNote.Fret < 7) { pSpriteBatch.Draw(this.Game.BallTexture, noteRectangle, color); } else if (pSceneGuitarNote.Fret < 14) { pSpriteBatch.Draw(this.Game.StarTexture, noteRectangle, color); } else { pSpriteBatch.Draw(this.Game.SquareTexture, noteRectangle, color); } #region Draw the note content (note letter or fret number) string noteContent; int shift; noteContent = pSceneGuitarNote.Fret.ToString(); //noteContent = pSceneGuitarNote.NoteValue.AsSharpedString(); //Draw the fret number if (noteContent.Length == 1) { shift = 8; //1 digit } else { shift = 2; //2 digits } var x2 = x + 3; var y2 = y + 5; pSpriteBatch.DrawString(this.Game.FontFretNumbers, noteContent, new Vector2(x2 + shift - 2, y2), Color.Black); pSpriteBatch.DrawString(this.Game.FontFretNumbers, noteContent, new Vector2(x2 + shift, y2 - 2), Color.Black); pSpriteBatch.DrawString(this.Game.FontFretNumbers, noteContent, new Vector2(x2 + shift + 2, y2), Color.Black); pSpriteBatch.DrawString(this.Game.FontFretNumbers, noteContent, new Vector2(x2 + shift, y2 + 2), Color.Black); pSpriteBatch.DrawString(this.Game.FontFretNumbers, noteContent, new Vector2(x2 + shift, y2), Color.White); #endregion if (pSceneGuitarNote.Playing) { var fireHeight = 3 * this.BallWidth; var fireRectangle = new Rectangle(x, MatchBall_Y - fireHeight + (2 * this.BallWidth / 3), this.BallWidth, fireHeight); pSpriteBatch.Draw(this.Game.FireTexture, fireRectangle, Color.White); } #region Draw the chord name var tickData = pSceneGuitar.TickDataTable[pSceneGuitarNote.StartPosition.Beat, pSceneGuitarNote.StartPosition.Tick]; if (tickData.IsStartTick) { var chordName = tickData.RemarkOrChordName; pSpriteBatch.DrawString( this.Game.FontFretNumbers, " " + chordName, new Vector2(this.X - (2 * this.Distance), y), //left Color.Silver); if (tickData.DrawChord) { RenderChordPicture(pSpriteBatch, tickData, y); } } #endregion }
protected override bool CheckIfNoteIsPlaying(GtSceneGuitarNote pSceneGuitarNote) { //return base.CheckIfNoteIsPlaying(pSceneGuitarNote); return(ValueForNoteIsPlaying); }