Převod souboru CSV do MIDI
Převeďte tabulky hudebních not nebo eventové soubory MIDICSV na upravitelné Standard MIDI Files.
Převádějte soubory CSV online
Pro převod CSV do MIDI zatím vlastní online konvertor nemáme, ale soubory CSV můžete online převést do těchto a dalších formátů:
Jak převést soubor csv do formátu midi
- Hudební kompozice
- Dosud nehodnoceno.
Tabulkový procesor, analytický program nebo nástroj pro vlastní kompozice může exportovat data not jako CSV, zatímco sekvencer, notační program nebo MIDI hardware vyžaduje Standard MIDI File. Převod změní tabulkové hudební události na upravitelnou sekvenci namísto zvuku.
Co je CSV
CSV (comma-separated values) je prostý text uspořádaný do řádků a sloupců. Skladatelé, hudební výzkumníci, uživatelé tabulkových procesorů, DAW a vlastní skripty jej mohou používat pro výšky tónů, časy začátků, délky, velocity, kanály, controllery nebo data tempa.
CSV nemá univerzální hudební schéma. Jeden soubor může obsahovat sloupce jako pitch,start,duration; jiný může používat názvy not, sekundy, ticky nebo jeden řádek pro každou MIDI událost. Oddělovačem může být čárka, středník nebo tabulátor a hodnoty v uvozovkách mohou obsahovat oddělovače. Před převodem určete významy sloupců, časové jednotky, kódování a strukturu záhlaví.
Co je MIDI
Standard MIDI File (.mid nebo .midi) ukládá časované hudební instrukce včetně událostí not, velocity, kanálů, změn programů, controllerů, pitch-bendu, tempa, metra a předznamenání. Neobsahuje nahraný zvuk; audio generuje syntezátor, virtuální nástroj nebo hardwarové zařízení.
Soubory MIDI jsou obvykle mnohem menší než audio soubory a umožňují nezávisle upravovat noty, časování, velocity, nástroje, tempo a data aranžmá. Lze je otevřít v MuseScore Studio, Cubase, Logic Pro, Ableton Live, REAPER a hardwarových sekvencerech, přestože zvuk při přehrávání závisí na cílových nástrojích.
Použití MIDICSV pro existující schéma MIDI událostí
Open-source nástroje MIDICSV jsou nejpřímější volbou, pokud CSV odpovídá formátu událostí MIDICSV. Nejde o obecné převodníky tabulek: midicsv exportuje MIDI soubor do definované reprezentace CSV a csvmidi tuto reprezentaci převádí zpět na MIDI soubor.
- Nainstalujte balíček MIDICSV pro svůj operační systém z jeho dokumentovaného zdroje.
- Exportujte MIDI soubor pomocí
midicsv input.mid events.csv. - Upravte
events.csvbeze změny požadovaných polí tracku, času, typu události a parametrů. Zachovejte číselné rozsahy a požadovanou syntaxi záhlaví nebo událostí. - Zkompilujte jej pomocí
csvmidi events.csv output.mid. - Otevřete
output.midv MIDI editoru a zkontrolujte časování, nástroje, controllery a strukturu tracků.
Tabulka obsahující libovolné sloupce, například start_beat, duration_beat a pitch, není automaticky kompatibilní s csvmidi. Pro takové uspořádání použijte vlastní parser.
Převod CSV s jednou notou na řádek pomocí Pythonu
Pro tabulku not použijte Python s open-source knihovnou mido. Připravte notes.csv s jednou notou na řádek a těmito sloupci: start_beat, duration_beat, pitch, velocity a channel. Používejte MIDI pitches od 0 do 127, velocity od 1 do 127, kanály od 0 do 15 a doby v beatech vztažených ke čtvrťové notě.
- Nainstalujte závislost pomocí
python -m pip install mido. - Uložte tento skript jako
csv_to_midi.pyvedle souborunotes.csv:
import csv
from mido import MidiFile, MidiTrack, Message, MetaMessage, bpm2tempo
bpm = 120
midi = MidiFile(ticks_per_beat=480)
track = MidiTrack()
midi.tracks.append(track)
events = [(0, 0, MetaMessage('set_tempo', tempo=bpm2tempo(bpm)))]
with open('notes.csv', newline='', encoding='utf-8-sig') as f:
for row in csv.DictReader(f):
start = float(row['start_beat'])
duration = float(row['duration_beat'])
pitch = int(row['pitch'])
velocity = max(1, min(127, int(row.get('velocity') or 80)))
channel = int(row.get('channel') or 0)
if duration < 0 or not 0 <= pitch <= 127 or not 0 <= channel <= 15:
raise ValueError('invalid duration, pitch, or channel')
start_tick = round(start * midi.ticks_per_beat)
end_tick = round((start + duration) * midi.ticks_per_beat)
events.append((start_tick, 1, Message('note_on', note=pitch, velocity=velocity, channel=channel)))
events.append((end_tick, 0, Message('note_off', note=pitch, velocity=0, channel=channel)))
events.sort(key=lambda item: (item[0], item[1]))
previous = 0
for tick, _, message in events:
message.time = tick - previous
track.append(message)
previous = tick
midi.save('notes.mid')
- Spusťte
python csv_to_midi.py. Výsledkem jenotes.mids 480 ticky na čtvrťovou notu a pevným tempem 120 BPM. - Otevřete soubor v MuseScore Studio prostřednictvím File → Open nebo jej importujte pomocí příkazu DAW pro import MIDI. Přidejte nástroje, změny tempa, metrum, předznamenání nebo další hudební data, která CSV neobsahovalo.
Pokud jsou zdrojové časy v sekundách, převeďte je na beaty pomocí beats = seconds * bpm / 60. Pokud jsou v MIDI tickách, vydělte je hodnotou ticks-per-beat zdrojového souboru. Sekundy, beaty a ticky nejsou vzájemně zaměnitelné. Pokud CSV obsahuje řádky událostí namísto řádků not, napište parser, který mapuje každý typ události na odpovídající MIDI zprávu, místo použití skriptu pro tabulku not.
Omezení kvality a kompatibility
Výsledek může zachovat pouze data reprezentovaná zdrojovým schématem a metodou převodu. Příklad zachovává výšku tónu, čas začátku, délku, velocity a kanál, ale nikoli texty, sustain pedál, automatizaci controllerů, změny programů, změny tempa, metrum, předznamenání, artikulace nebo více tracků.
Překrývající se noty jsou podporovány, ale překrývající se noty se stejnou výškou a kanálem mohou být u některých nástrojů nejednoznačné. Čísla MIDI programů, chování bicích kanálů, ladění, odezvy controllerů a zvuky nástrojů se mezi aplikacemi a hardwarem liší. Zkontrolujte importovaný soubor v piano-rollu nebo editoru událostí a poslechněte si, zda se neobjevuje nesprávné tempo, chybějící noty, kolize kanálů nebo zkrácené délky.
Online služby jsou vhodné pouze tehdy, pokud dokumentují přesné uspořádání CSV, které přijímají. Obecné převodníky souborů nedokážou určit, zda sloupec obsahuje MIDI ticky, sekundy, beaty, názvy not nebo typy událostí. U vlastních kompozic nebo soukromých materiálů se místním převodem pomocí MIDICSV nebo Pythonu vyhnete nahrávání dat a získáte reprodukovatelná nastavení.
CSV vs MIDI: srovnání formátů
Jak si formáty CSV a MIDI stojí v nejdůležitějších vlastnostech pro tento převod.
| Vlastnost | .CSV Comma-Separated Values | .MIDI MIDI Standard File |
|---|---|---|
| Otevřený standard | Ano | Ano |
| Komprese | Bez komprese | Bez komprese |
| Typická velikost souboru | Malé | Velmi malé |
| Otevírá se ve webovém prohlížeči | Ano, nativně | Ne |
| Další úpravy | Snadné | Snadné |
| Podpora metadat | Základní | Základní |
| Čitelný jako prostý text | Ano | Ne |
| Nejvhodnější pro | Výměna dat | Hudba |
| Zavedeno | — | 1983 |
| Vývojář | — | MIDI Manufacturers Association / MIDI Association |
| MIME typ | text/csv | audio/midi |
Navrhovaný software pro převod csv do midi
Podobné .csv konverze
Reverzní konverze
Konverze do .midi
z jiných formátů
- mscz do midi
- mxl do midi
- gp5 do midi
- gp do midi
- musicxml do midi
- sib do midi
- abc do midi
- smf do midi
- pdf do midi
- txt do midi
- akai do midi
- ascii do midi
- bmp do midi
- cap do midi
- capx do midi
- cdo do midi
- doc do midi
- enf do midi
- gif do midi
- gp3 do midi
- gp4 do midi
- gpx do midi
- gtp do midi
- h2song do midi
- jpeg do midi
- jpg do midi
- mg1 do midi
- mgu do midi
- mscx do midi
- nwc do midi
- ove do midi
- png do midi
- sbk do midi
- sf do midi
- sng do midi
- tab do midi
- tef do midi
- tif do midi
- tiff do midi
- wpp do midi
- xml do midi