Converter midi para csv

Converter MIDI para CSV

Converta eventos MIDI em linhas CSV editáveis para planilhas, scripts e análise de dados.

Converter ficheiros MIDI online

Ainda não temos um conversor online dedicado para MIDI para CSV, mas pode converter ficheiros MIDI online para estes e outros formatos:

Como converter midi para csv arquivo

Uma planilha, um banco de dados ou um script de análise não pode usar diretamente a estrutura binária de eventos de um Standard MIDI File. Convertê-lo para CSV expõe notas, temporização, controladores, alterações de tempo e metadados como linhas que podem ser inspecionadas ou processadas com ferramentas comuns de dados.

O que é o formato MIDI

MIDI é um formato de eventos que armazena instruções musicais, e não som gravado. Um Standard MIDI File pode conter faixas, eventos note-on e note-off, alterações de instrumento, controles de pedal de sustain, alterações de tempo, fórmulas de compasso e armaduras de clave, dados system-exclusive e metadados de texto.

Digital audio workstations, programas de notação, sequenciadores de hardware e aplicativos de composição criam ou exportam arquivos MIDI, normalmente com as extensões .mid ou .midi. Aplicativos como MuseScore, Cubase, Ableton Live, Logic Pro, FL Studio e Reaper usam MIDI para sequenciamento e intercâmbio. Os eventos são cronometrados em ticks; o cabeçalho do arquivo define o valor de ticks-per-quarter-note, e os eventos de tempo determinam a relação entre ticks e segundos.

O que é o formato CSV

CSV é texto simples no qual os registros ocupam linhas e os campos ocupam colunas separadas por um delimitador, geralmente uma vírgula. Planilhas, Python, R, importadores SQL e softwares de análise de dados podem lê-lo sem um parser de MIDI.

Não existe um schema oficial único para MIDI-to-CSV. Um conversor pode gravar um evento por linha, com campos para faixa, tick, tipo de evento, canal, nota, velocity, controlador, programa, tempo ou metadados. Outros conversores usam nomes de colunas, delimitadores, convenções de temporização ou representações diferentes para o mesmo evento. Confirme o schema necessário antes de importar o resultado.

Converter com MIDI CSV

MIDI CSV é a opção para desktop mais adequada quando a saída precisa manter a estrutura do Standard MIDI File e poder ser convertida novamente para MIDI. O programa midicsv decodifica um arquivo MIDI em uma representação CSV documentada, e csvmidi codifica essa representação novamente. Obtenha os programas na fonte oficial do projeto ou em um pacote confiável do sistema operacional; evite downloads de executáveis não verificados.

  1. Instale midicsv e csvmidi e, em seguida, abra o Terminal, o Command Prompt ou o PowerShell no diretório que contém o arquivo.
  2. Execute midicsv input.mid output.csv.
  3. Inspecione ou edite output.csv com um editor de texto. Se usar uma planilha, importe-o com o delimitador de vírgula e a codificação UTF-8, em vez de abri-lo e salvá-lo novamente de forma automática.
  4. Para recriar um arquivo MIDI, execute csvmidi output.csv recreated.mid.

A saída MIDI CSV normalmente inclui informações do cabeçalho, limites das faixas, divisão de temporização, eventos de canal e metaeventos MIDI. Preserve o arquivo MIDI original, pois os softwares de planilha podem alterar delimitadores, valores inteiros, codificações ou a formatação dos campos.

Criar um CSV de análise personalizado com Python

Use um script quando o sistema de destino precisar de um schema menor, como uma linha por evento com colunas para faixa, tick absoluto, tipo, canal, nota, velocity, controlador, programa e tempo. Instale o Mido com python -m pip install mido e salve o conteúdo a seguir como 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)

Execute-o com python midi_events.py input.mid events.csv. O Mido fornece delta times para cada faixa, portanto o script os acumula em posições de tick absolutas. Essa exportação simplificada não preserva todos os campos MIDI, incluindo componentes de time-signature, texto de key-signature, texto de letra e payloads system-exclusive; adicione colunas explícitas se esses eventos forem importantes.

Conversão online

A maioria dos conversores online confiáveis oferece suporte a formatos MIDI-to-audio, e não a CSV estruturado de eventos MIDI, portanto uma instalação local do MIDI CSV geralmente é a escolha correta. Se um serviço oferecer especificamente a exportação MIDI CSV, teste-o com um arquivo conhecido, verifique o schema e a saída MIDI reconstruída e confira a política de retenção de uploads antes de enviar músicas não publicadas ou metadados incorporados.

Limites de qualidade e compatibilidade

CSV contém dados de eventos, não áudio renderizado. Ele não pode preservar o som de um sintetizador, configurações de plug-ins, samples, mixagem ou efeitos, a menos que esses detalhes sejam representados por eventos MIDI e o sistema de destino saiba interpretá-los.

A duração da nota normalmente é derivada de um evento note-on e de um evento note-off posterior; ela não é necessariamente um campo de duração. Calcule o tempo musical a partir dos ticks e do valor de ticks-per-quarter-note do arquivo. Calcule os segundos aplicando as alterações de tempo, que podem ocorrer em posições diferentes do arquivo. Um evento note-on com velocity zero é comumente usado como note-off e deve ser tratado de acordo.

Para edição reversível, use a representação MIDI CSV completa em vez de uma exportação personalizada reduzida. Mantenha os valores de tick como inteiros, preserve a ordem dos eventos, mantenha o delimitador de vírgula e a codificação UTF-8 esperados e evite conversões da planilha para datas ou notação científica. Após a edição, execute csvmidi e abra o arquivo recriado em um player ou sequenciador MIDI para verificar a temporização, as faixas, os controladores e os metadados.

Comparação de formato: MIDI vs CSV

Como os formatos MIDI e CSV se comparam nas propriedades mais importantes para esta conversão.

Comparação dos formatos de arquivo MIDI e CSV
Propriedade .MIDI MIDI Standard File .CSV Comma-Separated Values
Padrão aberto Sim Sim
Compressão Sem compressão Sem compressão
Tamanho típico do arquivo Muito pequeno Pequeno
Abre num navegador web Não Sim, nativamente
Edição posterior Fácil Fácil
Suporte a metadados Básico Básico
Legível em texto simples Não Sim
Mais usado para Música Intercâmbio de dados
Introduzido 1983 —
Desenvolvedor MIDI Manufacturers Association / MIDI Association —
Tipo MIME audio/midi text/csv