Код: Выделить всё
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 System.Security.Cryptography.X509Certificates;
using Microsoft.VisualBasic;
namespace Proba3
{
class Program
{
static void Main(string[] args)
{
string SONG = "3Ako.mid";
var midiFile = MidiFile.Read(SONG);
var notes = midiFile.GetNotes();
// I tried to use this - var TempoMap = midiFile.GetTempoMap();
// I tried to use this - TempoMap tempoMap = midiFile.GetTempoMap();
Console.WriteLine(SONG);
foreach (var note in midiFile.GetNotes())
{
Console.Write($@"
{note.Time} {note} {notes.Count}");
}
Console.WriteLine(" ");
Console.WriteLine(" ---- MID END");
Console.ReadKey();
}
}
}
3 Ako.mid
Код: Выделить всё
540 D3 3
1589 C3 3
2579 D3 3
---- MID END
540, 1589 и 2579 – это разница во времени? Мне нужно пересчитать это время в следующий формат [минуты:секунды:милисекунды][название ноты]
Файл 3Ako.mid обрезан для облегчения манипуляций. Этот миди-файл записан во время сеанса живой музыки и не имеет точного темпа, как стандартные секвенированные миди-файлы, поэтому разделение на темп песни не даст точного времени.
Заранее благодарю за любую помощь. Я знаю, что в одном вопросе много вопросов.
Начальный уровень: я музыкант и новичок в среде C#.
Подробнее здесь: https://stackoverflow.com/questions/789 ... drywetmidi
Мобильная версия