Konwertuj MIDI na CSV
Konwertuj zdarzenia MIDI na edytowalne wiersze CSV do użycia w arkuszach kalkulacyjnych, skryptach i analizie danych.
Konwertuj pliki MIDI online
Nie mamy jeszcze dedykowanego konwertera online dla MIDI na CSV, ale pliki MIDI możesz przekonwertować online na te i inne formaty:
Jak konwertować midi do csv
- Kompozycja muzyczna
- Brak ocen.
Arkusz kalkulacyjny, baza danych lub skrypt analityczny nie może bezpośrednio używać binarnej struktury zdarzeń formatu Standard MIDI File. Konwersja do CSV udostępnia nuty, informacje o czasie, kontrolery, zmiany tempa i metadane w postaci wierszy, które można analizować lub przetwarzać za pomocą zwykłych narzędzi do pracy z danymi.
Czym jest format MIDI
MIDI to format zdarzeń, który przechowuje instrukcje muzyczne, a nie nagrany dźwięk. Standard MIDI File może zawierać ścieżki, zdarzenia note-on i note-off, zmiany instrumentów, elementy sterujące pedałem sustain, zmiany tempa, oznaczenia metrum i tonacji, dane system-exclusive oraz metadane tekstowe.
Digital audio workstations, programy do zapisu nutowego, sekwencery sprzętowe i aplikacje do tworzenia muzyki tworzą lub eksportują pliki MIDI, zwykle z rozszerzeniami .mid lub .midi. Aplikacje takie jak MuseScore, Cubase, Ableton Live, Logic Pro, FL Studio i Reaper używają MIDI do sekwencjonowania i wymiany danych. Zdarzenia są mierzone w tickach; nagłówek pliku definiuje wartość ticks-per-quarter-note, a zdarzenia tempa określają zależność między tickami a sekundami.
Czym jest format CSV
CSV to zwykły tekst, w którym rekordy zajmują wiersze, a pola — kolumny oddzielone separatorem, zwykle przecinkiem. Arkusze kalkulacyjne, Python, R, importery SQL i oprogramowanie do analizy danych mogą odczytywać ten format bez parsera MIDI.
Nie istnieje jeden oficjalny schemat MIDI-to-CSV. Konwerter może zapisywać jedno zdarzenie w każdym wierszu, używając pól dotyczących ścieżki, ticka, typu zdarzenia, kanału, nuty, velocity, kontrolera, programu, tempa lub metadanych. Inne konwertery używają odmiennych nazw kolumn, separatorów, konwencji zapisu czasu lub sposobów przedstawiania tego samego zdarzenia. Przed zaimportowaniem wyniku potwierdź wymagany schemat.
Konwersja za pomocą MIDI CSV
MIDI CSV to najbardziej odpowiednia opcja desktopowa, gdy wynik musi zachować strukturę Standard MIDI File i umożliwiać ponowną konwersję do MIDI. Program midicsv dekoduje plik MIDI do udokumentowanej reprezentacji CSV, a csvmidi ponownie koduje tę reprezentację. Pobierz programy z oficjalnego źródła projektu lub zaufanego pakietu systemu operacyjnego; unikaj niezweryfikowanych plików wykonywalnych.
- Zainstaluj
midicsvicsvmidi, a następnie otwórz Terminal, Command Prompt lub PowerShell w katalogu zawierającym plik. - Uruchom
midicsv input.mid output.csv. - Sprawdź lub edytuj plik
output.csvw edytorze tekstu. Jeśli używasz arkusza kalkulacyjnego, zaimportuj plik z separatorem przecinka i kodowaniem UTF-8 zamiast otwierać go i automatycznie zapisywać ponownie. - Aby odtworzyć plik MIDI, uruchom
csvmidi output.csv recreated.mid.
Wynik MIDI CSV zwykle zawiera informacje nagłówkowe, granice ścieżek, podział taktowania, zdarzenia kanałowe oraz zdarzenia meta MIDI. Zachowaj oryginalny plik MIDI, ponieważ oprogramowanie arkusza kalkulacyjnego może zmienić separatory, wartości całkowite, kodowanie lub formatowanie pól.
Tworzenie niestandardowego pliku CSV do analizy za pomocą Python
Użyj skryptu, gdy system docelowy wymaga mniejszego schematu, na przykład jednego wiersza na zdarzenie z kolumnami zawierającymi ścieżkę, absolutny tick, typ, kanał, nutę, velocity, kontroler, program i tempo. Zainstaluj Mido za pomocą python -m pip install mido i zapisz poniższy kod jako midi_events.py:
import csv
import sys
import mido
midi = mido.MidiFile(sys.argv[1])
fields = ["track", "tick", "type", "channel", "note", "velocity", "control", "value", "program", "tempo"]
with open(sys.argv[2], "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=fields)
writer.writeheader()
for track_number, track in enumerate(midi.tracks):
tick = 0
for message in track:
tick += message.time
row = {field: "" for field in fields}
row["track"] = track_number
row["tick"] = tick
row["type"] = message.type
for field in ("channel", "note", "velocity", "control", "value", "program", "tempo"):
if hasattr(message, field):
row[field] = getattr(message, field)
writer.writerow(row)
Uruchom go za pomocą python midi_events.py input.mid events.csv. Mido dostarcza czasy delta dla każdej ścieżki, więc skrypt sumuje je do postaci absolutnych pozycji w tickach. Ten uproszczony eksport nie zachowuje wszystkich pól MIDI, w tym składników oznaczenia metrum, tekstu oznaczenia tonacji, tekstu słów oraz ładunków system-exclusive; jeśli te zdarzenia mają znaczenie, dodaj odpowiednie kolumny.
Konwersja online
Większość renomowanych konwerterów online obsługuje formaty MIDI-to-audio, a nie ustrukturyzowany CSV ze zdarzeniami MIDI, dlatego lokalna instalacja MIDI CSV jest zwykle właściwym wyborem. Jeśli usługa oferuje eksport MIDI CSV, przetestuj ją za pomocą znanego pliku, sprawdź jej schemat i wynikowy plik MIDI, a także zapoznaj się z zasadami przechowywania przesłanych plików przed wysłaniem nieopublikowanej muzyki lub osadzonych metadanych.
Ograniczenia jakości i zgodności
CSV zawiera dane o zdarzeniach, a nie wyrenderowany dźwięk. Nie może zachować brzmienia syntezatora, ustawień plug-inów, sampli, miksowania ani efektów, chyba że szczegóły te są reprezentowane przez zdarzenia MIDI, a system odbierający wie, jak je interpretować.
Czas trwania nuty jest zwykle wyznaczany na podstawie zdarzenia note-on i późniejszego zdarzenia note-off; niekoniecznie występuje jako pole czasu trwania. Obliczaj czas muzyczny na podstawie ticków i wartości ticks-per-quarter-note pliku. Obliczaj sekundy, uwzględniając zmiany tempa, które mogą występować w różnych pozycjach pliku. Zdarzenie note-on z velocity równym zero jest często używane jako note-off i należy je odpowiednio obsługiwać.
W przypadku edycji umożliwiającej odtworzenie pliku używaj kompletnej reprezentacji MIDI CSV zamiast niestandardowego, ograniczonego eksportu. Zachowuj wartości ticków jako liczby całkowite, zachowuj kolejność zdarzeń, używaj oczekiwanego separatora przecinka i kodowania UTF-8 oraz unikaj konwersji arkusza kalkulacyjnego do dat lub notacji naukowej. Po edycji uruchom csvmidi i otwórz odtworzony plik w odtwarzaczu MIDI lub sekwencerze, aby sprawdzić taktowanie, ścieżki, kontrolery i metadane.
Porównanie formatu MIDI z CSV
Jak formaty MIDI i CSV wypadają w porównaniu pod względem najważniejszych cech dla tej konwersji.
| Cecha | .MIDI MIDI Standard File | .CSV Comma-Separated Values |
|---|---|---|
| Otwarty standard | Tak | Tak |
| Kompresja | Bez kompresji | Bez kompresji |
| Typowy rozmiar pliku | Bardzo mały | Mały |
| Otwiera się w przeglądarce internetowej | Nie | Tak, natywnie |
| Dalsza edycja | Łatwy | Łatwy |
| Obsługa metadanych | Podstawowy | Podstawowy |
| Czytelny tekstowo | Nie | Tak |
| Najlepszy do | Muzyka | Wymiana danych |
| Wprowadzono | 1983 | — |
| Twórca | MIDI Manufacturers Association / MIDI Association | — |
| Typ MIME | audio/midi | text/csv |