Example #1
0
        public void AddStep()
        {
            var initStep = new Step(StepLetter.C);

            var newStep = initStep.AddSteps(1);
            Assert.AreEqual(StepLetter.D, newStep.value);

            newStep = initStep.AddSteps(2);
            Assert.AreEqual(StepLetter.E, newStep.value);
            
            newStep = initStep.AddSteps(3);
            Assert.AreEqual(StepLetter.F, newStep.value);

            newStep = initStep.AddSteps(4);
            Assert.AreEqual(StepLetter.G, newStep.value);

            newStep = initStep.AddSteps(5);
            Assert.AreEqual(StepLetter.A, newStep.value);

            newStep = initStep.AddSteps(6);
            Assert.AreEqual(StepLetter.B, newStep.value);

            newStep = initStep.AddSteps(7);
            Assert.AreEqual(StepLetter.C, newStep.value);
            
            newStep = initStep.AddSteps(8);
            Assert.AreEqual(StepLetter.D, newStep.value);

            newStep = initStep.AddSteps(9);
            Assert.AreEqual(StepLetter.E, newStep.value);

            newStep = initStep.AddSteps(10);
            Assert.AreEqual(StepLetter.F, newStep.value);
        }
Example #2
0
        public Pitch GetPitch(string pitch)
        {
            var symbols = pitch.ToArray();
            Accidentals accidental;
            Octaves octaves;
            StepLetter stepLetter;
            if (!Enum.TryParse(symbols[0].ToString(), true, out stepLetter)) throw new ArgumentException();
            var step = new Step(stepLetter);
            switch (symbols.Length)
            {//TODO: this is ugly, but it's true
                case 1:
                    return new Pitch(step);
                case 2:
                    if (Enum.TryParse(symbols[1].ToString(), true, out octaves))
                        return new Pitch(step, octaves);
                    if (Enum.TryParse(symbols[1].ToString(), true, out accidental))
                        return new Pitch(step, Octaves.First, accidental);
                    break;
                case 3:
                    if (Enum.TryParse(symbols[2].ToString(), true, out octaves) &&
                        Enum.TryParse(symbols[1].ToString(), true, out accidental))
                        return new Pitch(step, octaves, accidental);
                    if (Enum.TryParse(pitch.Substring(1, 2), true, out accidental))
                        return new Pitch(step, Octaves.First, accidental);
                    break;
                case 4:
                    if (Enum.TryParse(symbols[3].ToString(), true, out octaves) &&
                        Enum.TryParse(pitch.Substring(1, 2), true, out accidental))
                        return new Pitch(step, octaves, accidental);
                    break;
            }

            throw new ArgumentException("Can't create Pitch from string.", pitch);
        }
		public void Serialize_Always_ReturnsValidXmlElement()
		{
			const StepLetter stepLetter = StepLetter.D;
			var duration = new Step(stepLetter);
			var serializer = SerializeHelper.GetSerializer(typeof(Step));
			serializer.WriteObject(outStream, duration);

			var serialized = SerializeHelper.StreamToUtf8String(outStream);

			Approvals.Verify(serialized);
		}
Example #4
0
		public Pitch(Step step = null, Octaves octaves = Octaves.First, Accidentals accidental = Accidentals.Natural)
		{
			this.Step = step ?? new Step();
			this.Octaves = octaves;
			this.Accidental = accidental;
		}
		public DisplayStepOctave(Step step = null, Octaves octave = Octaves.First)
		{
			DisplayOctave = octave;
			DisplayStep = step ?? new Step();
		}
Example #6
0
		public Unpitched(Step step = null, Octaves octave = Octaves.First)
		{
			var step1 = step ?? new Step();
			DisplayStepOctave = new DisplayStepOctave(step1, octave);
		}