Converti midi in csv

Converti MIDI in CSV

Converti gli eventi MIDI in righe CSV modificabili per fogli di calcolo, script e analisi dei dati.

Converti i file MIDI online

Non abbiamo ancora un convertitore online dedicato per MIDI in CSV, ma puoi convertire i file MIDI online in questi e altri formati:

Come convertire midi in csv file

Un foglio di calcolo, un database o uno script di analisi non possono utilizzare direttamente la struttura binaria degli eventi di un Standard MIDI File. La conversione in CSV espone note, temporizzazione, controller, cambi di tempo e metadati come righe che possono essere esaminate o elaborate con normali strumenti per dati.

Che cos'è il formato MIDI

MIDI è un formato di eventi che memorizza istruzioni musicali anziché audio registrato. Un Standard MIDI File può contenere tracce, eventi note-on e note-off, cambi di strumento, controlli del pedale sustain, cambi di tempo, indicazioni di tempo e tonalità, dati system-exclusive e metadati testuali.

Le workstation audio digitali, i programmi di notazione, i sequencer hardware e le applicazioni per la composizione musicale creano o esportano file MIDI, comunemente con le estensioni .mid o .midi. Applicazioni come MuseScore, Cubase, Ableton Live, Logic Pro, FL Studio e Reaper utilizzano MIDI per il sequencing e l'interscambio. Gli eventi sono temporizzati in tick; l'intestazione del file definisce il valore dei tick per semiminima e gli eventi di tempo determinano la relazione tra tick e secondi.

Che cos'è il formato CSV

CSV è testo semplice in cui i record occupano righe e i campi occupano colonne separate da un delimitatore, solitamente una virgola. Fogli di calcolo, Python, R, importatori SQL e software di analisi dei dati possono leggerlo senza un parser MIDI.

Non esiste un unico schema ufficiale MIDI-to-CSV. Un convertitore può scrivere un evento per riga con campi per traccia, tick, tipo di evento, canale, nota, velocity, controller, programma, tempo o metadati. Altri convertitori utilizzano nomi delle colonne, delimitatori, convenzioni di temporizzazione o rappresentazioni diverse per lo stesso evento. Verificare lo schema richiesto prima di importare il risultato.

Convertire con MIDI CSV

MIDI CSV è l'opzione desktop più adatta quando l'output deve conservare la struttura dello Standard MIDI File e poter essere riconvertito in MIDI. Il suo programma midicsv decodifica un file MIDI in una rappresentazione CSV documentata e csvmidi codifica nuovamente tale rappresentazione. Ottenere i programmi dalla fonte ufficiale del progetto o da un pacchetto affidabile del sistema operativo; evitare download di eseguibili non verificati.

  1. Installare midicsv e csvmidi, quindi aprire Terminal, Command Prompt o PowerShell nella directory contenente il file.
  2. Eseguire midicsv input.mid output.csv.
  3. Esaminare o modificare output.csv con un editor di testo. Se si utilizza un foglio di calcolo, importarlo con il delimitatore virgola e la codifica UTF-8 invece di aprirlo e salvarlo nuovamente in modo automatico.
  4. Per ricreare un file MIDI, eseguire csvmidi output.csv recreated.mid.

L'output MIDI CSV include normalmente informazioni dell'intestazione, limiti delle tracce, divisione della temporizzazione, eventi di canale e meta-eventi MIDI. Conservare il file MIDI originale perché il software per fogli di calcolo può modificare delimitatori, valori interi, codifiche o formattazione dei campi.

Creare un CSV di analisi personalizzato con Python

Utilizzare uno script quando il sistema di destinazione necessita di uno schema più ridotto, ad esempio una riga per evento con colonne per traccia, tick assoluto, tipo, canale, nota, velocity, controller, programma e tempo. Installare Mido con python -m pip install mido e salvare il seguente contenuto come 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)

Eseguirlo con python midi_events.py input.mid events.csv. Mido fornisce delta time per ogni traccia, quindi lo script le accumula in posizioni assolute espresse in tick. Questa esportazione semplificata non conserva tutti i campi MIDI, inclusi i componenti delle indicazioni di tempo, il testo delle indicazioni di tonalità, il testo dei lyrics e i payload system-exclusive; aggiungere colonne esplicite se tali eventi sono importanti.

Conversione online

La maggior parte dei convertitori online affidabili supporta formati MIDI-to-audio anziché CSV strutturati di eventi MIDI, quindi un'installazione locale di MIDI CSV è solitamente la scelta corretta. Se un servizio offre specificamente l'esportazione MIDI CSV, testarlo con un file noto, verificare il relativo schema e l'output MIDI ricostruito e controllare la policy di conservazione degli upload prima di inviare musica non pubblicata o metadati incorporati.

Limiti di qualità e compatibilità

CSV contiene dati sugli eventi, non audio renderizzato. Non può conservare il suono di un sintetizzatore, le impostazioni dei plug-in, i campioni, il missaggio o gli effetti, a meno che tali dettagli non siano rappresentati da eventi MIDI e il sistema di destinazione sappia interpretarli.

La durata di una nota normalmente deriva da un evento note-on e da un successivo evento note-off; non è necessariamente un campo di durata. Calcolare il tempo musicale a partire dai tick e dal valore dei tick per semiminima del file. Calcolare i secondi applicando i cambi di tempo, che possono verificarsi in posizioni diverse del file. Un evento note-on con velocity pari a zero viene comunemente utilizzato come note-off e deve essere gestito di conseguenza.

Per modifiche reversibili, utilizzare la rappresentazione MIDI CSV completa anziché un'esportazione personalizzata ridotta. Mantenere i valori dei tick come interi, conservare l'ordine degli eventi, preservare il delimitatore virgola previsto e la codifica UTF-8 ed evitare le conversioni dei fogli di calcolo in date o notazione scientifica. Dopo la modifica, eseguire csvmidi e aprire il file ricreato in un lettore MIDI o sequencer per verificare temporizzazione, tracce, controller e metadati.

Confronto formato: MIDI vs CSV

Come i formati MIDI e CSV si confrontano sulle proprietà più importanti per questa conversione.

Confronto dei formati MIDI e CSV
Proprietà .MIDI MIDI Standard File .CSV Comma-Separated Values
Standard aperto Sì Sì
Compressione Non compresso Non compresso
Dimensione tipica del file Molto piccolo Piccolo
Si apre in un browser web No Sì, nativamente
Modifica successiva Facile Facile
Supporto metadata Base Base
Leggibile come testo semplice No Sì
Ideale per Musica Scambio dati
Introdotto 1983 —
Sviluppatore MIDI Manufacturers Association / MIDI Association —
Tipo MIME audio/midi text/csv