Převod souboru MIDI do CSV
Převeďte MIDI events na upravitelné řádky CSV pro spreadsheets, skripty a analýzu dat.
Převádějte soubory MIDI online
Pro převod MIDI do CSV zatím vlastní online konvertor nemáme, ale soubory MIDI můžete online převést do těchto a dalších formátů:
Jak převést soubor midi do formátu csv
- Hudební kompozice
- Dosud nehodnoceno.
Tabulkový procesor, databáze ani analytický skript nemohou přímo používat binární strukturu událostí souboru Standard MIDI File. Převod do CSV zpřístupní noty, časování, řadiče, změny tempa a metadata jako řádky, které lze kontrolovat nebo zpracovávat běžnými datovými nástroji.
Co je formát MIDI
MIDI je formát událostí, který ukládá hudební instrukce, nikoli zaznamenaný zvuk. Soubor Standard MIDI File může obsahovat stopy, události note-on a note-off, změny nástrojů, ovládání sustain pedálu, změny tempa, taktová a tóninová označení, system-exclusive data a textová metadata.
Digital audio workstations, notační programy, hardwarové sekvencery a aplikace pro tvorbu písní vytvářejí nebo exportují MIDI soubory, běžně s příponami .mid nebo .midi. Aplikace jako MuseScore, Cubase, Ableton Live, Logic Pro, FL Studio a Reaper používají MIDI pro sekvencování a výměnu dat. Události jsou časovány v tickách; hlavička souboru definuje hodnotu ticks-per-quarter-note a události tempa určují vztah mezi tickami a sekundami.
Co je formát CSV
CSV je prostý text, ve kterém záznamy zaujímají řádky a pole sloupce oddělené oddělovačem, obvykle čárkou. Tabulkové procesory, Python, R, SQL importéry a software pro analýzu dat jej dokážou načíst bez MIDI parseru.
Neexistuje jediné oficiální schéma MIDI-to-CSV. Převodník může zapisovat jednu událost na řádek s poli pro stopu, tick, typ události, kanál, notu, velocity, řadič, program, tempo nebo metadata. Jiné převodníky používají odlišné názvy sloupců, oddělovače, konvence časování nebo reprezentace stejné události. Před importem výsledku ověřte požadované schéma.
Převod pomocí MIDI CSV
MIDI CSV je nejvhodnější desktopová volba, pokud musí výstup zachovat strukturu souboru Standard MIDI File a být možné jej převést zpět na MIDI. Jeho program midicsv dekóduje MIDI soubor do dokumentované reprezentace CSV a program csvmidi tuto reprezentaci znovu zakóduje. Programy získávejte z oficiálního zdroje projektu nebo z důvěryhodného balíčku pro operační systém; vyhněte se neověřeným staženým spustitelným souborům.
- Nainstalujte
midicsvacsvmidia poté otevřete Terminal, Command Prompt nebo PowerShell v adresáři obsahujícím soubor. - Spusťte
midicsv input.mid output.csv. - Prohlédněte nebo upravte
output.csvv textovém editoru. Pokud používáte tabulkový procesor, importujte soubor s oddělovačem čárka a kódováním UTF-8, místo abyste jej automaticky otevírali a znovu ukládali. - Chcete-li znovu vytvořit MIDI soubor, spusťte
csvmidi output.csv recreated.mid.
Výstup MIDI CSV obvykle obsahuje informace hlavičky, hranice stop, časovou divizi, události kanálů a MIDI meta-události. Původní MIDI soubor si ponechte, protože tabulkový procesor může změnit oddělovače, celočíselné hodnoty, kódování nebo formátování polí.
Vytvoření vlastního analytického CSV pomocí Pythonu
Skript použijte, když přijímající systém potřebuje menší schéma, například jeden řádek na událost se sloupci pro stopu, absolutní tick, typ, kanál, notu, velocity, řadič, program a tempo. Nainstalujte Mido pomocí python -m pip install mido a uložte následující obsah 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)
Spusťte jej pomocí python midi_events.py input.mid events.csv. Mido poskytuje delta times pro každou stopu, takže skript je sčítá do absolutních pozic v tickách. Tento zjednodušený export nezachovává všechna MIDI pole včetně složek taktového označení, textu tóninového označení, textu lyrics a datové části system-exclusive; pokud jsou tyto události důležité, přidejte explicitní sloupce.
Online převod
Většina renomovaných online převodníků podporuje formáty MIDI-to-audio, nikoli strukturované CSV s MIDI událostmi, takže místní instalace MIDI CSV je obvykle správnou volbou. Pokud služba výslovně nabízí export MIDI CSV, otestujte ji se známým souborem, ověřte její schéma a výstup rekonstruovaného MIDI a před odesláním nezveřejněné hudby nebo vložených metadat zkontrolujte její zásady uchovávání nahraných souborů.
Omezení kvality a kompatibility
CSV obsahuje data událostí, nikoli vyrenderovaný zvuk. Nemůže zachovat zvuk syntetizátoru, nastavení plug-inů, samplů, mixování ani efektů, pokud tyto podrobnosti nejsou reprezentovány MIDI událostmi a přijímající systém je neumí interpretovat.
Délka noty se obvykle odvozuje z události note-on a pozdější události note-off; nemusí být uložena jako pole délky. Hudební čas vypočítejte z ticků a hodnoty ticks-per-quarter-note v souboru. Sekundy vypočítejte použitím změn tempa, které se mohou v souboru vyskytovat na různých pozicích. Událost note-on s velocity nula se běžně používá jako note-off a je nutné s ní podle toho zacházet.
Pro vratné úpravy použijte úplnou reprezentaci MIDI CSV namísto vlastního zjednodušeného exportu. Hodnoty ticků uchovávejte jako celá čísla, zachovejte pořadí událostí, ponechte očekávaný oddělovač čárka a kódování UTF-8 a zabraňte převodu tabulkovým procesorem na data nebo vědecký zápis. Po úpravách spusťte csvmidi a otevřete nově vytvořený soubor v MIDI přehrávači nebo sekvenceru, abyste zkontrolovali časování, stopy, řadiče a metadata.
MIDI vs CSV: srovnání formátů
Jak si formáty MIDI a CSV stojí v nejdůležitějších vlastnostech pro tento převod.
| Vlastnost | .MIDI MIDI Standard File | .CSV Comma-Separated Values |
|---|---|---|
| Otevřený standard | Ano | Ano |
| Komprese | Bez komprese | Bez komprese |
| Typická velikost souboru | Velmi malé | Malé |
| Otevírá se ve webovém prohlížeči | Ne | Ano, nativně |
| Další úpravy | Snadné | Snadné |
| Podpora metadat | Základní | Základní |
| Čitelný jako prostý text | Ne | Ano |
| Nejvhodnější pro | Hudba | Výměna dat |
| Zavedeno | 1983 | — |
| Vývojář | MIDI Manufacturers Association / MIDI Association | — |
| MIME typ | audio/midi | text/csv |