Это мой код из Visual Studio Code.
Я хочу получить формат времени для заметки «На
[00:00.000] первые минуты». 00: секунды секунды. 00. третьи миллисекунды. 000
using Microsoft.SqlServer.Server;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Melanchall.DryWetMidi.Core;
using Melanchall.DryWetMidi.Interaction;
using Melanchall.DryWetMidi.MusicTheory;
using InteractionNote = Melanchall.DryWetMidi.Interaction.Note;
using Melanchall.DryWetMidi.Common;
using System.Security.Cryptography.X509Certificates;
using Microsoft.VisualBasic;
using System.ComponentModel;
using System.Linq.Expressions;
using System.Reflection.Metadata;
namespace Proba3
{
class Program
{
static void Main(string[] a r g s)
{
var SONG = "3Ako.mid";
Console.WriteLine("__________________________________________");
Console.WriteLine("");
Console.WriteLine($" Name of mid file = {SONG} ");
var midiFile = MidiFile.Read(SONG);
var tempoMap = midiFile.GetTempoMap();
var notes = midiFile.GetNotes();
var fileHeaderToken = midiFile.GetTrackChunks();
Melanchall.DryWetMidi.Core.TrackChunkUtilities.GetChannels(fileHeaderToken);
var timedEvents = midiFile.GetTimedEvents();
var a = new Melanchall.DryWetMidi.MusicTheory.ChordProgression();
//IEnumerable //chordsAt20seconds = midiFile
// .GetChords()
// .AtTime(
// new MetricTimeSpan(0, 0, 20),
// tempoMap,
// LengthedObjectPart.Entire);
// TimeSpan midiFileDuration =
// midiFile.GetDuration();
Console.WriteLine($"Midi File duration [{SONG}] {midiFileDuration}");
foreach (var chord in midiFile.GetChords())
{
Console.Write($@"
Time = [{chord .Time As ( tempo Map)}] CHORD {chord}
Chan = {chord. Channel} ");
}
Console. WriteLine("__________________________________");
Console.WriteLine($"{timedEvents.Count} timed events found.");
Console.WriteLine(" ---- MID END");
Console.ReadKey();
}
}
Вывод в терминале выглядит так
Name of mid file = 3Ako.mid
Midi File duration [ 3Ako.mid ] = 00:00:04.9203250
Time = [0:0:0:741] CHORD: D3
Chan = 1
Time = [0:0:2:182] CHORD: C3
Chan = 1
Time = [0:0:3:542] CHORD: D3
Chan = 1 __________________________________
10 timed events found.
---- MID END
3Ako.mid — очень короткий MIDI-файл, предназначенный только для тестирования.
Я пытался изменить выходной формат времени в этой позиции в Dry Wet Midi. но безуспешно.
введите здесь описание изображения
using Melanchall.DryWetMidi.Common;
using System;
using System.Component.Model;
namespace Melanchall.DryWetMidi.Interaction
public sealed class Metric TimeSpan : ITimeSpan,IComparable,IEquatable
{
public override string ToString()
{
return $"{Minutes}:{Seconds}:{Milliseconds}";
// I change upper line in - return $"[{Minutes}:{Seconds}.
{Milliseconds}]";
// to get format [00:00.000] * first min. * second
// seconds * third milisec.
// I deleted code with hours definition
// I can not change format in
// $"{Minutes}:{Seconds}.{Milliseconds}";
// Terminal shows [0:0:3:542]
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... ime-output
Как изменить формат Dry Wet Midi для вывода времени ноты ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение