Example #1
0
        public static List <UNote> WriteNotes(UProject project, UVoicePart part, IEnumerable <UNote> notes, string filePath)
        {
            List <UNote> sequence = new List <UNote>();

            using (var writer = new StreamWriter(filePath, false, ShiftJIS)) {
                WriteHeader(project, part, writer);
                int position = 0;
                foreach (var note in notes)
                {
                    if (note.position != position)
                    {
                        writer.WriteLine($"[#{sequence.Count:D4}]");
                        var spacer = UNote.Create();
                        spacer.position = position;
                        spacer.duration = note.position - position;
                        spacer.lyric    = "R";
                        spacer.tone     = 60;
                        sequence.Add(spacer);
                        WriteNoteBody(project, spacer, writer);
                    }
                    writer.WriteLine($"[#{sequence.Count:D4}]");
                    WriteNoteBody(project, note, writer);
                    position = note.End;
                    sequence.Add(note);
                }
                WriteFooter(writer);
            }
            return(sequence);
        }