Konversi midi ke csv

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

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.

  1. Instal midicsv dan csvmidi, lalu buka Terminal, Command Prompt, atau PowerShell di directory yang berisi file tersebut.
  2. Jalankan midicsv input.mid output.csv.
  3. Periksa atau edit output.csv dengan text editor. Jika menggunakan spreadsheet, impor file tersebut dengan delimiter koma dan encoding UTF-8, bukan membukanya lalu menyimpannya kembali secara otomatis.
  4. 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.

Perbandingan format file MIDI dan CSV
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