Exemplo n.º 1
0
        public void TryParse_OutOfRange()
        {
            SevenBitNumber result;

            Assert.AreEqual(false, SevenBitNumber.TryParse("200", out result));
            Assert.AreEqual(false, SevenBitNumber.TryParse("128", out result));
        }
Exemplo n.º 2
0
        public void TryParse()
        {
            SevenBitNumber result;

            SevenBitNumber.TryParse("12", out result);
            Assert.AreEqual((SevenBitNumber)12, result);

            SevenBitNumber.TryParse("0", out result);
            Assert.AreEqual((SevenBitNumber)0, result);

            SevenBitNumber.TryParse("127", out result);
            Assert.AreEqual((SevenBitNumber)127, result);
        }
Exemplo n.º 3
0
        public static bool TryParseNoteNumber(string input, NoteNumberFormat noteNumberFormat, out SevenBitNumber result)
        {
            result = default(SevenBitNumber);

            switch (noteNumberFormat)
            {
            case NoteNumberFormat.NoteNumber:
                return(SevenBitNumber.TryParse(input, out result));

            case NoteNumberFormat.Letter:
            {
                MusicTheory.Note note;
                if (!MusicTheory.Note.TryParse(input, out note))
                {
                    return(false);
                }

                result = note.NoteNumber;
                return(true);
            }
            }

            return(false);
        }
Exemplo n.º 4
0
        public static IEnumerable <Note> ConvertToNotes(Stream stream, TempoMap tempoMap, NoteCsvConversionSettings settings)
        {
            using (var csvReader = new CsvReader(stream, settings.CsvDelimiter))
            {
                CsvRecord record = null;

                while ((record = csvReader.ReadRecord()) != null)
                {
                    var values = record.Values;
                    if (values.Length < 6)
                    {
                        CsvError.ThrowBadFormat(record.LineNumber, "Missing required parameters.");
                    }

                    ITimeSpan time;
                    if (!TimeSpanUtilities.TryParse(values[0], settings.TimeType, out time))
                    {
                        CsvError.ThrowBadFormat(record.LineNumber, "Invalid time.");
                    }

                    FourBitNumber channel;
                    if (!FourBitNumber.TryParse(values[1], out channel))
                    {
                        CsvError.ThrowBadFormat(record.LineNumber, "Invalid channel.");
                    }

                    SevenBitNumber noteNumber;
                    if (!TryParseNoteNumber(values[2], settings.NoteNumberFormat, out noteNumber))
                    {
                        CsvError.ThrowBadFormat(record.LineNumber, "Invalid note number or letter.");
                    }

                    ITimeSpan length;
                    if (!TimeSpanUtilities.TryParse(values[3], settings.NoteLengthType, out length))
                    {
                        CsvError.ThrowBadFormat(record.LineNumber, "Invalid length.");
                    }

                    SevenBitNumber velocity;
                    if (!SevenBitNumber.TryParse(values[4], out velocity))
                    {
                        CsvError.ThrowBadFormat(record.LineNumber, "Invalid velocity.");
                    }

                    SevenBitNumber offVelocity;
                    if (!SevenBitNumber.TryParse(values[5], out offVelocity))
                    {
                        CsvError.ThrowBadFormat(record.LineNumber, "Invalid off velocity.");
                    }

                    var convertedTime   = TimeConverter.ConvertFrom(time, tempoMap);
                    var convertedLength = LengthConverter.ConvertFrom(length, convertedTime, tempoMap);

                    yield return(new Note(noteNumber, convertedLength, convertedTime)
                    {
                        Channel = channel,
                        Velocity = velocity,
                        OffVelocity = offVelocity
                    });
                }
            }
        }
Exemplo n.º 5
0
        public void TryParse_InvalidFormat()
        {
            SevenBitNumber result;

            Assert.AreEqual(false, SevenBitNumber.TryParse("sdsd", out result));
        }