Konwertuj CSV na MIDI
Konwertuj tabele nut muzycznych lub pliki zdarzeń MIDICSV na edytowalne pliki Standard MIDI Files.
Konwertuj pliki CSV online
Nie mamy jeszcze dedykowanego konwertera online dla CSV na MIDI, ale pliki CSV możesz przekonwertować online na te i inne formaty:
Jak konwertować csv do midi
- Kompozycja muzyczna
- Brak ocen.
Arkusz kalkulacyjny, program do analizy lub narzędzie do tworzenia kompozycji może eksportować dane nutowe jako CSV, podczas gdy sekwencer, program do zapisu nutowego lub sprzęt MIDI wymaga pliku Standard MIDI File. Konwersja przekształca tabelaryczne zdarzenia muzyczne w edytowalną sekwencję zamiast dźwięku.
Czym jest CSV
CSV (comma-separated values) to zwykły tekst zorganizowany w wiersze i kolumny. Kompozytorzy, badacze muzyki, użytkownicy arkuszy kalkulacyjnych, programów DAW oraz niestandardowych skryptów mogą używać go do przechowywania wysokości dźwięków, czasów rozpoczęcia, czasów trwania, velocity, kanałów, kontrolerów lub danych tempa.
CSV nie ma uniwersalnego schematu muzycznego. Jeden plik może zawierać kolumny takie jak pitch,start,duration; inny może używać nazw nut, sekund, ticków lub jednego wiersza dla każdego zdarzenia MIDI. Separatorem może być przecinek, średnik lub tabulator, a pola ujęte w cudzysłowy mogą zawierać separatory. Przed konwersją określ znaczenie kolumn, jednostki czasu, kodowanie i strukturę nagłówka.
Czym jest MIDI
Standard MIDI File (.mid lub .midi) przechowuje określone w czasie instrukcje muzyczne, w tym zdarzenia nut, velocity, kanałów, zmiany programu, kontrolerów, pitch-bend, tempa, metrum i tonacji. Nie zawiera nagranego dźwięku; syntezator, instrument wirtualny lub urządzenie sprzętowe generuje dźwięk.
Pliki MIDI są zwykle znacznie mniejsze niż pliki audio i umożliwiają niezależną edycję nut, czasu, velocity, instrumentów, tempa oraz danych aranżacji. Można je otwierać w programach MuseScore Studio, Cubase, Logic Pro, Ableton Live, REAPER oraz w sekwencerach sprzętowych, chociaż brzmienie podczas odtwarzania zależy od instrumentów docelowych.
Używanie MIDICSV dla istniejącego schematu zdarzeń MIDI
Narzędzia open source MIDICSV są najbardziej bezpośrednim rozwiązaniem, gdy CSV jest zgodny z formatem zdarzeń MIDICSV. Nie są to ogólne konwertery arkuszy kalkulacyjnych: midicsv eksportuje plik MIDI do zdefiniowanej reprezentacji CSV, a csvmidi konwertuje tę reprezentację z powrotem do pliku MIDI.
- Zainstaluj pakiet MIDICSV dla swojego systemu operacyjnego, korzystając z udokumentowanego źródła.
- Wyeksportuj plik MIDI za pomocą polecenia
midicsv input.mid events.csv. - Edytuj plik
events.csvbez zmieniania wymaganych pól ścieżki, czasu, typu zdarzenia i parametrów. Zachowaj zakresy liczbowe oraz wymaganą składnię nagłówka lub zdarzeń. - Skompiluj go za pomocą polecenia
csvmidi events.csv output.mid. - Otwórz plik
output.midw edytorze MIDI i sprawdź czas, instrumenty, kontrolery oraz strukturę ścieżek.
Arkusz kalkulacyjny zawierający dowolne kolumny, takie jak start_beat, duration_beat i pitch, nie jest automatycznie zgodny z csvmidi. W przypadku takiego układu użyj niestandardowego parsera.
Konwertowanie pliku CSV z jedną nutą w każdym wierszu za pomocą Python
W przypadku tabeli nut użyj języka Python i biblioteki open source mido. Przygotuj plik notes.csv z jedną nutą w każdym wierszu oraz następującymi kolumnami: start_beat, duration_beat, pitch, velocity i channel. Używaj wartości MIDI wysokości dźwięku od 0 do 127, wartości velocity od 1 do 127, kanałów od 0 do 15 oraz wartości beatów liczonych względem ćwierćnuty.
- Zainstaluj zależność za pomocą polecenia
python -m pip install mido. - Zapisz ten skrypt jako
csv_to_midi.pyobok plikunotes.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')
- Uruchom polecenie
python csv_to_midi.py. Wynikiem będzie pliknotes.midz 480 tickami na ćwierćnutę i stałym tempem 120 BPM. - Otwórz plik w MuseScore Studio za pomocą opcji File → Open lub zaimportuj go za pomocą polecenia importu MIDI w programie DAW. Dodaj instrumenty, zmiany tempa, metrum, tonacje lub inne dane muzyczne, których nie zawierał plik CSV.
Jeśli czasy źródłowe są podane w sekundach, przelicz je na beaty za pomocą beats = seconds * bpm / 60. Jeśli są podane w tickach MIDI, podziel je przez wartość ticks-per-beat pliku źródłowego. Sekundy, beaty i ticki nie są jednostkami wymiennymi. Jeśli plik CSV zawiera wiersze zdarzeń zamiast wierszy nut, napisz parser mapujący każdy typ zdarzenia na odpowiedni komunikat MIDI, zamiast używać skryptu dla tabeli nut.
Ograniczenia jakości i zgodności
Wynik może zachować wyłącznie dane reprezentowane przez schemat źródłowy i zastosowaną metodę konwersji. Przykład zachowuje wysokość dźwięku, czas rozpoczęcia, czas trwania, velocity i kanał, ale nie zachowuje tekstów utworów, pedału sustain, automatyzacji kontrolerów, zmian programu, zmian tempa, metrum, tonacji, artykulacji ani wielu ścieżek.
Obsługiwane są nakładające się nuty, ale nakładające się nuty o tej samej wysokości dźwięku i na tym samym kanale mogą być niejednoznaczne dla niektórych instrumentów. Numery programów MIDI, działanie kanału perkusyjnego, strojenie, reakcje kontrolerów i brzmienia instrumentów różnią się w zależności od aplikacji i sprzętu. Sprawdź zaimportowany plik w edytorze piano-roll lub edytorze zdarzeń i zwróć uwagę na nieprawidłowe tempo, brakujące nuty, konflikty kanałów oraz skrócone czasy trwania.
Usługi internetowe nadają się do użycia wyłącznie wtedy, gdy dokumentują dokładny układ plików CSV, który akceptują. Ogólne konwertery plików nie potrafią określić, czy kolumna zawiera ticki MIDI, sekundy, beaty, nazwy nut czy typy zdarzeń. W przypadku niestandardowych kompozycji lub prywatnych materiałów lokalna konwersja za pomocą MIDICSV lub Python pozwala uniknąć przesyłania danych i zapewnia powtarzalne ustawienia.
Porównanie formatu CSV z MIDI
Jak formaty CSV i MIDI wypadają w porównaniu pod względem najważniejszych cech dla tej konwersji.
| Cecha | .CSV Comma-Separated Values | .MIDI MIDI Standard File |
|---|---|---|
| Otwarty standard | Tak | Tak |
| Kompresja | Bez kompresji | Bez kompresji |
| Typowy rozmiar pliku | Mały | Bardzo mały |
| Otwiera się w przeglądarce internetowej | Tak, natywnie | Nie |
| Dalsza edycja | Łatwy | Łatwy |
| Obsługa metadanych | Podstawowy | Podstawowy |
| Czytelny tekstowo | Tak | Nie |
| Najlepszy do | Wymiana danych | Muzyka |
| Wprowadzono | — | 1983 |
| Twórca | — | MIDI Manufacturers Association / MIDI Association |
| Typ MIME | text/csv | audio/midi |
Sugerowane oprogramowanie i linki: konwertery csv na midi
Dodatkowe formaty dla konwersji pliku
csv
Konwersja odwrotna
Konwersja do .midi
z innych formatów
- 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