Convertir csv en midi

Convertir CSV en MIDI

Convertissez des tableaux de notes musicales ou des fichiers d’événements MIDICSV en Standard MIDI Files modifiables.

Convertir des fichiers CSV en ligne

Nous n’avons pas encore de convertisseur en ligne dédié pour CSV vers MIDI, mais vous pouvez convertir des fichiers CSV en ligne vers ces formats et bien d’autres :

Comment convertir csv en fichier midi

Un tableur, un programme d’analyse ou un outil de composition personnalisé peut exporter des données de notes au format CSV, tandis qu’un séquenceur, un programme de notation ou un équipement MIDI nécessite un Standard MIDI File. La conversion transforme des événements musicaux tabulaires en une séquence modifiable plutôt qu’en audio.

Qu’est-ce que le CSV ?

CSV (comma-separated values) est un texte brut organisé en lignes et en colonnes. Les compositeurs, les chercheurs en musique, les utilisateurs de tableurs, les DAW et les scripts personnalisés peuvent l’utiliser pour les hauteurs, les temps de début, les durées, les vélocités, les canaux, les contrôleurs ou les données de tempo.

Le CSV ne possède aucun schéma musical universel. Un fichier peut contenir des colonnes telles que pitch,start,duration ; un autre peut utiliser des noms de notes, des secondes, des ticks ou une ligne pour chaque événement MIDI. Le délimiteur peut être une virgule, un point-virgule ou une tabulation, et les champs entre guillemets peuvent contenir des délimiteurs. Identifiez la signification des colonnes, les unités de temps, l’encodage et la structure de l’en-tête avant la conversion.

Qu’est-ce que le MIDI ?

Un Standard MIDI File (.mid ou .midi) stocke des instructions musicales horodatées, notamment les événements de note, de vélocité, de canal, de changement de programme, de contrôleur, de pitch-bend, de tempo, de métrique et d’armure. Il ne contient pas de son enregistré : un synthétiseur, un instrument virtuel ou un appareil matériel génère l’audio.

Les fichiers MIDI sont normalement beaucoup plus petits que les fichiers audio et permettent de modifier indépendamment les notes, le timing, la vélocité, les instruments, le tempo et les données d’arrangement. Ils peuvent être ouverts par MuseScore Studio, Cubase, Logic Pro, Ableton Live, REAPER et les séquenceurs matériels, bien que les sons de lecture dépendent des instruments de destination.

Utiliser MIDICSV avec un schéma d’événements MIDI existant

Les utilitaires open source MIDICSV sont l’option la plus directe lorsque le CSV suit le format d’événements MIDICSV. Il ne s’agit pas de convertisseurs génériques pour tableurs : midicsv exporte un fichier MIDI vers une représentation CSV définie, et csvmidi reconvertit cette représentation en fichier MIDI.

  1. Installez le package MIDICSV pour votre système d’exploitation depuis sa source documentée.
  2. Exportez un fichier MIDI avec midicsv input.mid events.csv.
  3. Modifiez events.csv sans changer ses champs obligatoires de piste, de temps, de type d’événement et de paramètre. Préservez les plages numériques ainsi que la syntaxe obligatoire de l’en-tête ou des événements.
  4. Compilez-le avec csvmidi events.csv output.mid.
  5. Ouvrez output.mid dans un éditeur MIDI et vérifiez le timing, les instruments, les contrôleurs et la structure des pistes.

Un tableur contenant des colonnes arbitraires telles que start_beat, duration_beat et pitch n’est pas automatiquement compatible avec csvmidi. Utilisez un analyseur personnalisé pour cette mise en page.

Convertir un CSV avec une note par ligne à l’aide de Python

Pour une table de notes, utilisez Python avec la bibliothèque open source mido. Préparez notes.csv avec une note par ligne et les colonnes suivantes : start_beat, duration_beat, pitch, velocity et channel. Utilisez des hauteurs MIDI de 0 à 127, des vélocités de 1 à 127, des canaux de 0 à 15 et des temps exprimés en battements par rapport à une noire.

  1. Installez la dépendance avec python -m pip install mido.
  2. Enregistrez ce script sous le nom csv_to_midi.py, à côté de notes.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')
  1. Exécutez python csv_to_midi.py. Le résultat est notes.mid, avec 480 ticks par noire et un tempo fixe de 120 BPM.
  2. Ouvrez le fichier dans MuseScore Studio via File → Open, ou importez-le à l’aide de la commande d’importation MIDI d’un DAW. Ajoutez les instruments, les changements de tempo, la métrique, les armures ou les autres données musicales absentes du CSV.

Si les temps source sont exprimés en secondes, convertissez-les en battements à l’aide de beats = seconds * bpm / 60. S’ils sont exprimés en ticks MIDI, divisez-les par la valeur de ticks par battement du fichier source. Les secondes, les battements et les ticks ne sont pas interchangeables. Si le CSV contient des lignes d’événements plutôt que des lignes de notes, écrivez un analyseur qui associe chaque type d’événement au message MIDI correspondant au lieu d’utiliser le script de table de notes.

Limites de qualité et de compatibilité

Le résultat ne peut préserver que les données représentées par le schéma source et la méthode de conversion. L’exemple préserve la hauteur, le temps de début, la durée, la vélocité et le canal, mais pas les paroles, la pédale de sustain, l’automatisation des contrôleurs, les changements de programme, les changements de tempo, la métrique, les armures, les articulations ou les pistes multiples.

Les notes qui se chevauchent sont prises en charge, mais les notes qui se chevauchent avec la même hauteur et le même canal peuvent être ambiguës pour certains instruments. Les numéros de programme MIDI, le comportement du canal de batterie, l’accordage, les réponses des contrôleurs et les sons des instruments varient selon les applications et les équipements. Inspectez le fichier importé dans un éditeur piano-roll ou d’événements et écoutez-le pour détecter un tempo incorrect, des notes manquantes, des collisions de canaux et des durées raccourcies.

Les services en ligne conviennent uniquement lorsqu’ils documentent la mise en page CSV exacte qu’ils acceptent. Les convertisseurs de fichiers génériques ne peuvent pas déterminer si une colonne contient des ticks MIDI, des secondes, des battements, des noms de notes ou des types d’événements. Pour les compositions personnalisées ou les données privées, une conversion locale avec MIDICSV ou Python évite de téléverser les données et fournit des paramètres reproductibles.

Comparaison du format CSV vs MIDI

Comparaison entre les formats CSV et MIDI sur les propriétés les plus importantes pour cette conversion.

Comparaison des formats de fichier CSV et MIDI
Propriété .CSV Comma-Separated Values .MIDI MIDI Standard File
Norme ouverte Oui Oui
Compression Non compressé Non compressé
Taille de fichier typique Petit Très petit
S’ouvre dans un navigateur web Oui, nativement Non
Modification ultérieure Facile Facile
Support des métadonnées Basique Basique
Lisible en texte brut Oui Non
Idéal pour Échange de données Musique
Date d’introduction — 1983
Développeur — MIDI Manufacturers Association / MIDI Association
Type MIME text/csv audio/midi