private static void ConvertMidiFileToCsv( MidiFile midiFile, MidiFileCsvLayout layout, TimeSpanType timeType, string[] expectedCsvLines, NoteFormat noteFormat = NoteFormat.Events, NoteNumberFormat noteNumberFormat = NoteNumberFormat.NoteNumber, TimeSpanType noteLengthType = TimeSpanType.Midi) { var filePath = Path.GetTempFileName(); var settings = new MidiFileCsvConversionSettings { CsvLayout = layout, TimeType = timeType, NoteFormat = noteFormat, NoteNumberFormat = noteNumberFormat, NoteLengthType = noteLengthType }; try { new CsvConverter().ConvertMidiFileToCsv(midiFile, filePath, true, settings); var actualCsvLines = File.ReadAllLines(filePath); CollectionAssert.AreEqual(expectedCsvLines, actualCsvLines, StringComparer.OrdinalIgnoreCase); } finally { File.Delete(filePath); } }
private static void ConvertMidiFileToFromCsv(MidiFileCsvConversionSettings settings) { var tempPath = Path.GetTempPath(); var outputDirectory = Path.Combine(tempPath, Guid.NewGuid().ToString()); Directory.CreateDirectory(outputDirectory); try { foreach (var filePath in TestFilesProvider.GetValidFilesPaths()) { var midiFile = MidiFile.Read(filePath); var outputFilePath = Path.Combine(outputDirectory, Path.GetFileName(Path.ChangeExtension(filePath, "csv"))); var csvConverter = new CsvConverter(); csvConverter.ConvertMidiFileToCsv(midiFile, outputFilePath, true, settings); var convertedFile = csvConverter.ConvertCsvToMidiFile(outputFilePath, settings); MidiAsserts.AreFilesEqual(midiFile, convertedFile, true, $"Conversion of '{filePath}' is invalid."); } } finally { Directory.Delete(outputDirectory, true); } }
private static MidiFile ConvertCsvToMidiFile( MidiFileCsvLayout layout, TimeSpanType timeType, string[] csvLines, NoteFormat noteFormat = NoteFormat.Events, NoteNumberFormat noteNumberFormat = NoteNumberFormat.NoteNumber, TimeSpanType noteLengthType = TimeSpanType.Midi) { var filePath = Path.GetTempFileName(); File.WriteAllLines(filePath, csvLines); var settings = new MidiFileCsvConversionSettings { CsvLayout = layout, TimeType = timeType, NoteFormat = noteFormat, NoteNumberFormat = noteNumberFormat, NoteLengthType = noteLengthType }; try { var midiFile = new CsvConverter().ConvertCsvToMidiFile(filePath, settings); ConvertMidiFileToFromCsv(midiFile, filePath, settings); return(midiFile); } finally { File.Delete(filePath); } }
public void ConvertMidiFileToFromCsv([Values] MidiFileCsvLayout layout) { var settings = new MidiFileCsvConversionSettings { CsvLayout = layout }; ConvertMidiFileToFromCsv(settings); }
public void saveAsCsv(string filepath) { CsvConverter csv = new CsvConverter(); MidiFileCsvConversionSettings setting = new MidiFileCsvConversionSettings(); setting.TimeType = TimeSpanType.Midi; setting.NoteLengthType = TimeSpanType.Musical; setting.NoteFormat = NoteFormat.Note; setting.NoteNumberFormat = NoteNumberFormat.Letter; csv.ConvertMidiFileToCsv(file, filepath, true, setting); }
public void ConvertMidiFileToCsv_StreamIsNotDisposed([Values] MidiFileCsvLayout layout) { var settings = new MidiFileCsvConversionSettings { CsvLayout = layout }; var csvConverter = new CsvConverter(); using (var streamToWrite = new MemoryStream()) { csvConverter.ConvertMidiFileToCsv(new MidiFile(), streamToWrite, settings); Assert.DoesNotThrow(() => { var l = streamToWrite.Length; }); } }
private static MidiFile ConvertCsvToMidiFile(MidiFileCsvLayout layout, TimeSpanType timeType, string[] csvLines) { var filePath = Path.GetTempFileName(); File.WriteAllLines(filePath, csvLines); var settings = new MidiFileCsvConversionSettings { CsvLayout = layout, TimeType = timeType }; try { var midiFile = new CsvConverter().ConvertCsvToMidiFile(filePath, settings); ConvertMidiFileToFromCsv(midiFile, filePath, settings); return(midiFile); } finally { File.Delete(filePath); } }
public MidiComposition(string filePath, string mode) { CsvConverter csv = new CsvConverter(); MidiFileCsvConversionSettings setting = new MidiFileCsvConversionSettings { TimeType = TimeSpanType.Midi, NoteLengthType = TimeSpanType.Musical, NoteFormat = NoteFormat.Note, NoteNumberFormat = NoteNumberFormat.Letter }; MidiFile midiFile = csv.ConvertCsvToMidiFile(filePath, setting); this.file = midiFile; this.title = ""; this.midiFormat = midiFile.OriginalFormat.ToString(); this.timeDivision = midiFile.TimeDivision.ToString(); this.duration = new MidiTime(midiFile.GetDuration(TimeSpanType.Midi).ToString(), midiFile.GetTempoMap()); this.tracks = new List <MidiTrack>(); this.timeSignatures = new List <MidiTimeSignature>(); this.tempo = new List <MidiTempo>(); initFrequencies(440); parseTracks(midiFile); initTimeSignatures(); }
private static void ConvertMidiFileToFromCsv(MidiFile midiFile, string outputFilePath, MidiFileCsvConversionSettings settings) { var csvConverter = new CsvConverter(); csvConverter.ConvertMidiFileToCsv(midiFile, outputFilePath, true, settings); csvConverter.ConvertCsvToMidiFile(outputFilePath, settings); }