Convertir CSV a MIDI
Convierte tablas de notas musicales o archivos de eventos MIDICSV en Standard MIDI Files editables.
Convierte archivos CSV en línea
Todavía no tenemos un conversor en línea específico para CSV a MIDI, pero puedes convertir archivos CSV en línea a estos y otros formatos:
Cómo convertir un archivo csv a midi
- Composición musical
- Aún sin calificaciones.
Una hoja de cálculo, un programa de análisis o una herramienta de composición personalizada puede exportar datos de notas como CSV, mientras que un secuenciador, un programa de notación o un dispositivo MIDI requiere un Standard MIDI File. La conversión transforma eventos musicales tabulares en una secuencia editable en lugar de audio.
Qué es CSV
CSV (comma-separated values) es texto sin formato organizado en filas y columnas. Compositores, investigadores musicales, usuarios de hojas de cálculo, DAW y scripts personalizados pueden usarlo para datos de tonos, tiempos de inicio, duraciones, velocidades, canales, controladores o tempo.
CSV no tiene un esquema musical universal. Un archivo puede contener columnas como pitch,start,duration; otro puede usar nombres de notas, segundos, ticks o una fila para cada evento MIDI. El delimitador puede ser una coma, un punto y coma o una tabulación, y los campos entre comillas pueden contener delimitadores. Identifica los significados de las columnas, las unidades de tiempo, la codificación y la estructura de los encabezados antes de realizar la conversión.
Qué es MIDI
Un Standard MIDI File (.mid o .midi) almacena instrucciones musicales sincronizadas, incluidos eventos de nota, velocidad, canal, cambio de programa, controlador, pitch-bend, tempo, compás y armadura. No contiene sonido grabado; un sintetizador, instrumento virtual o dispositivo de hardware genera el audio.
Los archivos MIDI normalmente son mucho más pequeños que los archivos de audio y permiten editar de forma independiente las notas, la sincronización, la velocidad, los instrumentos, el tempo y los datos de arreglo. Pueden abrirse con MuseScore Studio, Cubase, Logic Pro, Ableton Live, REAPER y secuenciadores de hardware, aunque los sonidos de reproducción dependen de los instrumentos de destino.
Usar MIDICSV para un esquema de eventos MIDI existente
Las utilidades de código abierto MIDICSV son la opción más directa cuando el CSV sigue el formato de eventos MIDICSV. No son convertidores genéricos de hojas de cálculo: midicsv exporta un archivo MIDI a una representación CSV definida, y csvmidi convierte esa representación de nuevo en un archivo MIDI.
- Instala el paquete MIDICSV para tu sistema operativo desde su fuente documentada.
- Exporta un archivo MIDI con
midicsv input.mid events.csv. - Edita
events.csvsin cambiar sus campos obligatorios de pista, tiempo, tipo de evento y parámetros. Conserva los rangos numéricos y la sintaxis requerida de encabezado o evento. - Compílalo con
csvmidi events.csv output.mid. - Abre
output.miden un editor MIDI y comprueba la sincronización, los instrumentos, los controladores y la estructura de las pistas.
Una hoja de cálculo que contenga columnas arbitrarias como start_beat, duration_beat y pitch no es automáticamente compatible con csvmidi. Usa un parser personalizado para ese diseño.
Convertir un CSV con una nota por fila usando Python
Para una tabla de notas, usa Python con la biblioteca de código abierto mido. Prepara notes.csv con una nota por fila y estas columnas: start_beat, duration_beat, pitch, velocity y channel. Usa pitches MIDI de 0 a 127, velocidades de 1 a 127, canales de 0 a 15 y beats relativos a una negra.
- Instala la dependencia con
python -m pip install mido. - Guarda este script como
csv_to_midi.pyjunto 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')
- Ejecuta
python csv_to_midi.py. El resultado esnotes.mid, con 480 ticks por negra y un tempo fijo de 120 BPM. - Abre el archivo en MuseScore Studio mediante File → Open, o impórtalo usando el comando de importación MIDI de un DAW. Añade los instrumentos, cambios de tempo, compás, armaduras u otros datos musicales que no estuvieran incluidos en el CSV.
Si los tiempos de origen están en segundos, conviértelos a beats usando beats = seconds * bpm / 60. Si están expresados en MIDI ticks, divídelos por el valor de ticks-per-beat del archivo de origen. Los segundos, beats y ticks no son intercambiables. Si el CSV contiene filas de eventos en lugar de filas de notas, escribe un parser que asigne cada tipo de evento al mensaje MIDI correspondiente en lugar de usar el script para tablas de notas.
Límites de calidad y compatibilidad
El resultado solo puede conservar los datos representados por el esquema de origen y el método de conversión. El ejemplo conserva el pitch, el tiempo de inicio, la duración, la velocidad y el canal, pero no las letras, el pedal de sustain, la automatización de controladores, los cambios de programa, los cambios de tempo, el compás, las armaduras, las articulaciones ni varias pistas.
Las notas superpuestas son compatibles, pero las notas superpuestas con el mismo pitch y canal pueden resultar ambiguas para algunos instrumentos. Los números de programa MIDI, el comportamiento del canal de batería, la afinación, las respuestas de los controladores y los sonidos de los instrumentos varían entre aplicaciones y dispositivos de hardware. Inspecciona el archivo importado en un editor de piano-roll o de eventos y escucha si hay un tempo incorrecto, notas faltantes, colisiones de canales y duraciones acortadas.
Los servicios en línea solo son adecuados cuando documentan el diseño exacto de CSV que aceptan. Los convertidores de archivos genéricos no pueden determinar si una columna contiene MIDI ticks, segundos, beats, nombres de notas o tipos de eventos. Para composiciones personalizadas o material privado, la conversión local con MIDICSV o Python evita cargar datos y proporciona configuraciones reproducibles.
CSV vs MIDI: comparación de formatos
Cómo se comparan los formatos CSV y MIDI en las propiedades que más importan para esta conversión.
| Propiedad | .CSV Comma-Separated Values | .MIDI MIDI Standard File |
|---|---|---|
| Estándar abierto | Sí | Sí |
| Compresión | Sin compresión | Sin compresión |
| Tamaño de archivo típico | Pequeño | Muy pequeño |
| Se abre en un navegador web | Sí, de forma nativa | No |
| Edición posterior | Fácil | Fácil |
| Compatibilidad con metadata | Básico | Básico |
| Legible como texto plano | Sí | No |
| Más adecuado para | Intercambio de datos | Música |
| Introducido | — | 1983 |
| Desarrollador | — | MIDI Manufacturers Association / MIDI Association |
| Tipo MIME | text/csv | audio/midi |
Software sugerido para convertir csv a midi
Otras conversiones de archivos .csv
Conversión inversa
Convertir a .midi
desde otros formatos
- mscz a midi
- sib a midi
- abc a midi
- mscx a midi
- gif a midi
- pdf a midi
- gp5 a midi
- png a midi
- gpx a midi
- nwc a midi
- akai a midi
- ascii a midi
- bmp a midi
- cap a midi
- capx a midi
- cdo a midi
- doc a midi
- enf a midi
- gp a midi
- gp3 a midi
- gp4 a midi
- gtp a midi
- h2song a midi
- jpeg a midi
- jpg a midi
- mg1 a midi
- mgu a midi
- musicxml a midi
- mxl a midi
- ove a midi
- sbk a midi
- sf a midi
- smf a midi
- sng a midi
- tab a midi
- tef a midi
- tif a midi
- tiff a midi
- txt a midi
- wpp a midi
- xml a midi