Converter CSV para MIDI
Converta tabelas de notas musicais ou arquivos de eventos MIDICSV em Standard MIDI Files editáveis.
Converter ficheiros CSV online
Ainda não temos um conversor online dedicado para CSV para MIDI, mas pode converter ficheiros CSV online para estes e outros formatos:
Como converter csv para midi arquivo
- Composição musical
- Nenhuma avaliação ainda.
Uma planilha, um programa de análise ou uma ferramenta de composição personalizada pode exportar dados de notas como CSV, enquanto um sequenciador, um programa de notação ou um hardware MIDI exige um Standard MIDI File. A conversão transforma eventos musicais tabulares em uma sequência editável, em vez de áudio.
O que é CSV
CSV (valores separados por vírgulas) é texto simples organizado em linhas e colunas. Compositores, pesquisadores de música, usuários de planilhas, DAWs e scripts personalizados podem usá-lo para alturas, tempos de início, durações, velocidades, canais, controladores ou dados de tempo.
CSV não possui um esquema musical universal. Um arquivo pode conter colunas como pitch,start,duration; outro pode usar nomes de notas, segundos, ticks ou uma linha para cada evento MIDI. O delimitador pode ser uma vírgula, um ponto e vírgula ou uma tabulação, e campos entre aspas podem conter delimitadores. Identifique os significados das colunas, as unidades de tempo, a codificação e a estrutura do cabeçalho antes de converter.
O que é MIDI
Um Standard MIDI File (.mid ou .midi) armazena instruções musicais temporizadas, incluindo eventos de nota, velocity, canal, program-change, controller, pitch-bend, tempo, métrica e armadura de clave. Ele não contém som gravado; um sintetizador, instrumento virtual ou dispositivo de hardware gera o áudio.
Os arquivos MIDI normalmente são muito menores que arquivos de áudio e permitem editar notas, tempo, velocity, instrumentos, tempo e dados de arranjo de forma independente. Eles podem ser abertos por MuseScore Studio, Cubase, Logic Pro, Ableton Live, REAPER e sequenciadores de hardware, embora os sons da reprodução dependam dos instrumentos de destino.
Use MIDICSV para um esquema de eventos MIDI existente
Os utilitários de código aberto MIDICSV são a opção mais direta quando o CSV segue o formato de eventos MIDICSV. Eles não são conversores genéricos de planilhas: midicsv exporta um arquivo MIDI para uma representação CSV definida, e csvmidi converte essa representação novamente em um arquivo MIDI.
- Instale o pacote MIDICSV para seu sistema operacional a partir da fonte documentada.
- Exporte um arquivo MIDI com
midicsv input.mid events.csv. - Edite
events.csvsem alterar seus campos obrigatórios de faixa, tempo, tipo de evento e parâmetros. Preserve os intervalos numéricos e a sintaxe obrigatória do cabeçalho ou dos eventos. - Compile-o com
csvmidi events.csv output.mid. - Abra
output.midem um editor MIDI e verifique o tempo, os instrumentos, os controladores e a estrutura das faixas.
Uma planilha contendo colunas arbitrárias como start_beat, duration_beat e pitch não é automaticamente compatível com csvmidi. Use um parser personalizado para esse layout.
Converta um CSV com uma nota por linha usando Python
Para uma tabela de notas, use Python com a biblioteca de código aberto mido. Prepare notes.csv com uma nota por linha e estas colunas: start_beat, duration_beat, pitch, velocity e channel. Use pitches MIDI de 0 a 127, velocities de 1 a 127, canais de 0 a 15 e beats relativos a uma semínima.
- Instale a dependência com
python -m pip install mido. - Salve este script como
csv_to_midi.pyao lado denotes.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')
- Execute
python csv_to_midi.py. O resultado énotes.mid, com 480 ticks por semínima e um tempo fixo de 120 BPM. - Abra o arquivo no MuseScore Studio usando File → Open ou importe-o usando o comando de importação MIDI de uma DAW. Adicione instrumentos, mudanças de tempo, métrica, armaduras de clave ou outros dados musicais que o CSV não continha.
Se os tempos de origem estiverem em segundos, converta-os para beats usando beats = seconds * bpm / 60. Se estiverem em MIDI ticks, divida-os pelo valor de ticks-per-beat do arquivo de origem. Segundos, beats e ticks não são intercambiáveis. Se o CSV contiver linhas de eventos em vez de linhas de notas, escreva um parser que mapeie cada tipo de evento para a mensagem MIDI correspondente, em vez de usar o script de tabela de notas.
Limites de qualidade e compatibilidade
O resultado pode preservar apenas os dados representados pelo esquema de origem e pelo método de conversão. O exemplo preserva pitch, tempo de início, duração, velocity e canal, mas não letras, pedal de sustain, automação de controladores, mudanças de programa, mudanças de tempo, métrica, armaduras de clave, articulações ou várias faixas.
Notas sobrepostas são compatíveis, mas notas sobrepostas com o mesmo pitch e canal podem ser ambíguas para alguns instrumentos. Números de programa MIDI, comportamento do canal de percussão, afinação, respostas dos controladores e sons dos instrumentos variam entre aplicativos e hardwares. Inspecione o arquivo importado em um editor de piano roll ou de eventos e verifique se há tempo incorreto, notas ausentes, conflitos de canal e durações encurtadas.
Serviços online são adequados apenas quando documentam o layout exato de CSV que aceitam. Conversores genéricos de arquivos não conseguem inferir se uma coluna contém MIDI ticks, segundos, beats, nomes de notas ou tipos de eventos. Para composições personalizadas ou materiais privados, a conversão local com MIDICSV ou Python evita o upload de dados e fornece configurações reproduzíveis.
Comparação de formato: CSV vs MIDI
Como os formatos CSV e MIDI se comparam nas propriedades mais importantes para esta conversão.
| Propriedade | .CSV Comma-Separated Values | .MIDI MIDI Standard File |
|---|---|---|
| Padrão aberto | Sim | Sim |
| Compressão | Sem compressão | Sem compressão |
| Tamanho típico do arquivo | Pequeno | Muito pequeno |
| Abre num navegador web | Sim, nativamente | Não |
| Edição posterior | Fácil | Fácil |
| Suporte a metadados | Básico | Básico |
| Legível em texto simples | Sim | Não |
| Mais usado para | Intercâmbio de dados | Música |
| Introduzido | — | 1983 |
| Desenvolvedor | — | MIDI Manufacturers Association / MIDI Association |
| Tipo MIME | text/csv | audio/midi |
Software sugerido para converter csv para midi
Outras conversões de arquivo .csv
Conversão inversa
Converter para .midi
de outros formatos
- mscz para midi
- pdf para midi
- sib para midi
- gp5 para midi
- png para midi
- abc para midi
- gpx para midi
- nwc para midi
- gp4 para midi
- gp para midi
- akai para midi
- ascii para midi
- bmp para midi
- cap para midi
- capx para midi
- cdo para midi
- doc para midi
- enf para midi
- gif para midi
- gp3 para midi
- gtp para midi
- h2song para midi
- jpeg para midi
- jpg para midi
- mg1 para midi
- mgu para midi
- mscx para midi
- musicxml para midi
- mxl para midi
- ove para midi
- sbk para midi
- sf para midi
- smf para midi
- sng para midi
- tab para midi
- tef para midi
- tif para midi
- tiff para midi
- txt para midi
- wpp para midi
- xml para midi