Konversi MIDI menjadi CSV
Konversi MIDI events menjadi baris CSV yang dapat diedit untuk spreadsheet, skrip, dan analisis data.
Konversi file MIDI secara online
Kami belum punya konverter online khusus untuk MIDI ke CSV, tetapi Anda bisa mengonversi file MIDI secara online ke format berikut dan lainnya:
Bagaimana mengkonversi midi ke csv berkas
- Komposisi musik
- Belum ada peringkat.
Spreadsheet, database, atau analysis script tidak dapat langsung menggunakan struktur event biner dari Standard MIDI File. Mengonversinya ke CSV menampilkan note, timing, controller, perubahan tempo, dan metadata sebagai baris yang dapat diperiksa atau diproses dengan data tools biasa.
Apa itu format MIDI
MIDI adalah format event yang menyimpan instruksi musik, bukan suara yang direkam. Standard MIDI File dapat berisi track, event note-on dan note-off, perubahan instrumen, kontrol sustain-pedal, perubahan tempo, time signature dan key signature, data system-exclusive, serta text metadata.
Digital audio workstation, program notasi, hardware sequencer, dan aplikasi penulisan lagu membuat atau mengekspor file MIDI, umumnya dengan ekstensi .mid atau .midi. Aplikasi seperti MuseScore, Cubase, Ableton Live, Logic Pro, FL Studio, dan Reaper menggunakan MIDI untuk sequencing dan pertukaran data. Event diberi timing dalam ticks; header file menentukan nilai ticks-per-quarter-note, dan event tempo menentukan hubungan antara ticks dan detik.
Apa itu format CSV
CSV adalah plain text yang record-nya menempati baris dan field-nya menempati kolom yang dipisahkan oleh delimiter, biasanya koma. Spreadsheet, Python, R, SQL importer, dan software data-analysis dapat membacanya tanpa MIDI parser.
Tidak ada schema MIDI-to-CSV resmi tunggal. Converter dapat menulis satu event per baris dengan field untuk track, tick, event type, channel, note, velocity, controller, program, tempo, atau metadata. Converter lain menggunakan nama kolom, delimiter, konvensi timing, atau representasi yang berbeda untuk event yang sama. Pastikan schema yang diperlukan sebelum mengimpor hasilnya.
Konversi dengan MIDI CSV
MIDI CSV adalah opsi desktop yang paling sesuai ketika output harus mempertahankan struktur Standard MIDI File dan dapat dikonversi kembali ke MIDI. Program midicsv mendekode file MIDI menjadi representasi CSV yang terdokumentasi, sedangkan csvmidi mengenkode kembali representasi tersebut. Dapatkan program dari sumber resmi project atau package sistem operasi yang tepercaya; hindari download executable yang tidak terverifikasi.
- Instal
midicsvdancsvmidi, lalu buka Terminal, Command Prompt, atau PowerShell di directory yang berisi file tersebut. - Jalankan
midicsv input.mid output.csv. - Periksa atau edit
output.csvdengan text editor. Jika menggunakan spreadsheet, impor file tersebut dengan delimiter koma dan encoding UTF-8, bukan membukanya lalu menyimpannya kembali secara otomatis. - Untuk membuat ulang file MIDI, jalankan
csvmidi output.csv recreated.mid.
Output MIDI CSV biasanya mencakup informasi header, batas track, timing division, channel event, dan MIDI meta-event. Simpan file MIDI asli karena software spreadsheet dapat mengubah delimiter, nilai integer, encoding, atau format field.
Membuat analysis CSV khusus dengan Python
Gunakan script ketika sistem penerima memerlukan schema yang lebih kecil, seperti satu baris per event dengan kolom track, absolute tick, type, channel, note, velocity, controller, program, dan tempo. Instal Mido dengan python -m pip install mido dan simpan kode berikut sebagai 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)
Jalankan dengan python midi_events.py input.mid events.csv. Mido menyediakan delta times untuk setiap track, sehingga script mengakumulasikannya menjadi posisi absolute tick. Export sederhana ini tidak mempertahankan setiap MIDI field, termasuk komponen time-signature, text key-signature, text lyric, dan payload system-exclusive; tambahkan kolom eksplisit jika event tersebut penting.
Konversi online
Sebagian besar online converter tepercaya mendukung format MIDI-to-audio, bukan structured MIDI-event CSV, sehingga instalasi MIDI CSV secara lokal biasanya merupakan pilihan yang tepat. Jika suatu service secara khusus menawarkan export MIDI CSV, uji dengan file yang diketahui, verifikasi schema dan output MIDI yang dibuat ulang, serta periksa kebijakan retensi upload sebelum mengirim musik yang belum dipublikasikan atau metadata yang disematkan.
Batasan kualitas dan kompatibilitas
CSV berisi event data, bukan rendered audio. CSV tidak dapat mempertahankan suara synthesizer, pengaturan plug-in, sample, mixing, atau effects, kecuali detail tersebut direpresentasikan oleh MIDI event dan sistem penerima mengetahui cara menginterpretasikannya.
Durasi note biasanya diturunkan dari event note-on dan event note-off berikutnya; durasi tidak selalu merupakan field tersendiri. Hitung musical time dari ticks dan nilai ticks-per-quarter-note file. Hitung detik dengan menerapkan perubahan tempo, yang dapat terjadi pada posisi berbeda dalam file. Event note-on dengan velocity nol biasanya digunakan sebagai note-off dan harus ditangani sebagaimana mestinya.
Untuk editing yang dapat dibalik, gunakan representasi MIDI CSV lengkap, bukan reduced export khusus. Pertahankan nilai tick sebagai integer, pertahankan urutan event, gunakan delimiter koma dan encoding UTF-8 yang diharapkan, serta hindari konversi spreadsheet menjadi tanggal atau scientific notation. Setelah mengedit, jalankan csvmidi dan buka file yang dibuat ulang dalam MIDI player atau sequencer untuk memeriksa timing, track, controller, dan metadata.
MIDI vs CSV: perbandingan format
Bagaimana format MIDI dan CSV dibandingkan pada properti yang paling penting untuk konversi ini.
| Properti | .MIDI MIDI Standard File | .CSV Comma-Separated Values |
|---|---|---|
| Standar terbuka | Ya | Ya |
| Kompresi | Tanpa kompresi | Tanpa kompresi |
| Ukuran file umum | Sangat kecil | Kecil |
| Terbuka di browser web | Tidak | Ya, secara native |
| Pengeditan lanjutan | Mudah | Mudah |
| Dukungan metadata | Dasar | Dasar |
| Dapat dibaca teks biasa | Tidak | Ya |
| Paling cocok untuk | Musik | Pertukaran data |
| Diperkenalkan | 1983 | — |
| Pengembang | MIDI Manufacturers Association / MIDI Association | — |
| Tipe MIME | audio/midi | text/csv |