MIDI-файл Время NoteOn в мс с использованием DryWetMidiC#

Место общения программистов C#
Ответить
Anonymous
 MIDI-файл Время NoteOn в мс с использованием DryWetMidi

Сообщение Anonymous »

Код: Выделить всё

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
Я использую DryWetMidi для списка времени NoteOn в MIDI-файле, но я понятия не имею, как пересчитать дельту-время, но проверяемый темп (темп живого воспроизведения MIDI-файла, а не секвенсированный с точным темпом). Это код в коде Visual Studio.
540, 1589 и 2579 – это разница во времени? Мне нужно пересчитать это время в следующий формат [минуты:секунды:милисекунды][название ноты]
Файл 3Ako.mid обрезан для облегчения манипуляций. Этот миди-файл записан во время сеанса живой музыки и не имеет точного темпа, как стандартные секвенированные миди-файлы, поэтому разделение на темп песни не даст точного времени.
Заранее благодарю за любую помощь. Я знаю, что в одном вопросе много вопросов.
Начальный уровень: я музыкант и новичок в среде C#.

Подробнее здесь: https://stackoverflow.com/questions/789 ... drywetmidi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»