Converti CSV in MIDI
Converti tabelle di note musicali o file di eventi MIDICSV in Standard MIDI Files modificabili.
Converti i file CSV online
Non abbiamo ancora un convertitore online dedicato per CSV in MIDI, ma puoi convertire i file CSV online in questi e altri formati:
Come convertire csv in midi file
- Composizione musicale
- Ancora nessuna valutazione.
Un foglio di calcolo, un programma di analisi o uno strumento di composizione personalizzato può esportare i dati delle note come CSV, mentre un sequencer, un programma di notazione o un hardware MIDI richiede un Standard MIDI File. La conversione trasforma gli eventi musicali tabellari in una sequenza modificabile invece che in audio.
Cos'è CSV
CSV (comma-separated values) è testo semplice organizzato in righe e colonne. Compositori, ricercatori musicali, utenti di fogli di calcolo, DAW e script personalizzati possono usarlo per altezze, tempi di inizio, durate, velocity, canali, controller o dati di tempo.
CSV non dispone di uno schema musicale universale. Un file può contenere colonne come pitch,start,duration; un altro può usare nomi delle note, secondi, tick o una riga per ogni evento MIDI. Il delimitatore può essere una virgola, un punto e virgola o una tabulazione, e i campi tra virgolette possono contenere delimitatori. Prima della conversione, identifica il significato delle colonne, le unità di tempo, la codifica e la struttura dell'intestazione.
Cos'è MIDI
Un Standard MIDI File (.mid o .midi) memorizza istruzioni musicali temporizzate, inclusi eventi di nota, velocity, canale, program-change, controller, pitch-bend, tempo, metro e tonalità. Non contiene suoni registrati; un sintetizzatore, uno strumento virtuale o un dispositivo hardware genera l'audio.
I file MIDI sono normalmente molto più piccoli dei file audio e consentono di modificare indipendentemente note, temporizzazione, velocity, strumenti, tempo e dati di arrangiamento. Possono essere aperti da MuseScore Studio, Cubase, Logic Pro, Ableton Live, REAPER e sequencer hardware, anche se i suoni della riproduzione dipendono dagli strumenti di destinazione.
Usare MIDICSV per uno schema di eventi MIDI esistente
Le utility open-source MIDICSV sono l'opzione più diretta quando il CSV segue il formato degli eventi MIDICSV. Non sono convertitori generici per fogli di calcolo: midicsv esporta un file MIDI in una rappresentazione CSV definita, mentre csvmidi converte nuovamente tale rappresentazione in un file MIDI.
- Installa il pacchetto MIDICSV per il tuo sistema operativo dalla fonte documentata.
- Esporta un file MIDI con
midicsv input.mid events.csv. - Modifica
events.csvsenza cambiare i campi obbligatori relativi a traccia, tempo, tipo di evento e parametri. Mantieni gli intervalli numerici e la sintassi obbligatoria dell'intestazione o dell'evento. - Compilalo con
csvmidi events.csv output.mid. - Apri
output.midin un editor MIDI e controlla la temporizzazione, gli strumenti, i controller e la struttura delle tracce.
Un foglio di calcolo contenente colonne arbitrarie come start_beat, duration_beat e pitch non è automaticamente compatibile con csvmidi. Usa un parser personalizzato per questo layout.
Convertire un CSV con una nota per riga usando Python
Per una tabella di note, usa Python con la libreria open-source mido. Prepara notes.csv con una nota per riga e queste colonne: start_beat, duration_beat, pitch, velocity e channel. Usa pitch MIDI da 0 a 127, velocity da 1 a 127, canali da 0 a 15 e beat relativi a una semiminima.
- Installa la dipendenza con
python -m pip install mido. - Salva questo script come
csv_to_midi.pyaccanto anotes.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')
- Esegui
python csv_to_midi.py. Il risultato ènotes.mid, con 480 tick per semiminima e un tempo fisso di 120 BPM. - Apri il file in MuseScore Studio tramite File → Open oppure importalo usando il comando di importazione MIDI di una DAW. Aggiungi strumenti, variazioni di tempo, metro, tonalità o altri dati musicali non contenuti nel CSV.
Se i tempi di origine sono espressi in secondi, convertili in beat usando beats = seconds * bpm / 60. Se sono tick MIDI, dividili per il valore ticks-per-beat del file di origine. Secondi, beat e tick non sono intercambiabili. Se il CSV contiene righe di eventi anziché righe di note, scrivi un parser che associ ogni tipo di evento al messaggio MIDI corrispondente invece di usare lo script per la tabella di note.
Limiti di qualità e compatibilità
Il risultato può conservare solo i dati rappresentati dallo schema di origine e dal metodo di conversione. L'esempio conserva pitch, tempo di inizio, durata, velocity e canale, ma non testi, sustain pedal, automazione dei controller, program changes, variazioni di tempo, metro, tonalità, articolazioni o tracce multiple.
Le note sovrapposte sono supportate, ma le note sovrapposte con lo stesso pitch e canale possono risultare ambigue per alcuni strumenti. I numeri di programma MIDI, il comportamento del canale percussioni, l'accordatura, le risposte dei controller e i suoni degli strumenti variano tra applicazioni e hardware. Ispeziona il file importato in un editor piano-roll o degli eventi e ascolta per individuare tempo errato, note mancanti, conflitti tra canali e durate abbreviate.
I servizi online sono adatti solo quando documentano il layout CSV esatto che accettano. I convertitori generici di file non possono determinare se una colonna contiene tick MIDI, secondi, beat, nomi delle note o tipi di evento. Per composizioni personalizzate o materiale privato, la conversione locale con MIDICSV o Python evita il caricamento dei dati e fornisce impostazioni riproducibili.
Confronto formato: CSV vs MIDI
Come i formati CSV e MIDI si confrontano sulle proprietà più importanti per questa conversione.
| Proprietà | .CSV Comma-Separated Values | .MIDI MIDI Standard File |
|---|---|---|
| Standard aperto | Sì | Sì |
| Compressione | Non compresso | Non compresso |
| Dimensione tipica del file | Piccolo | Molto piccolo |
| Si apre in un browser web | Sì, nativamente | No |
| Modifica successiva | Facile | Facile |
| Supporto metadata | Base | Base |
| Leggibile come testo semplice | Sì | No |
| Ideale per | Scambio dati | Musica |
| Introdotto | — | 1983 |
| Sviluppatore | — | MIDI Manufacturers Association / MIDI Association |
| Tipo MIME | text/csv | audio/midi |
Software e collegamenti suggeriti: convertitori da csv a midi
Altre conversioni di file .csv
Conversione inversa
Conversione in .midi
da altri formati
- mscx in midi
- mscz in midi
- pdf in midi
- sib in midi
- gp5 in midi
- png in midi
- abc in midi
- gpx in midi
- nwc in midi
- gp4 in midi
- akai in midi
- ascii in midi
- bmp in midi
- cap in midi
- capx in midi
- cdo in midi
- doc in midi
- enf in midi
- gif in midi
- gp in midi
- gp3 in midi
- gtp in midi
- h2song in midi
- jpeg in midi
- jpg in midi
- mg1 in midi
- mgu in midi
- musicxml in midi
- mxl in midi
- ove in midi
- sbk in midi
- sf in midi
- smf in midi
- sng in midi
- tab in midi
- tef in midi
- tif in midi
- tiff in midi
- txt in midi
- wpp in midi
- xml in midi