TL;DR
General MIDI (general midi) est une norme unifiée de MIDI qui définit les cartes de ton de base et les changements de contrôle. L'abréviation est GM. (De wikipedia https://ja.wikipedia.org/wiki/General_MIDI)
Ainsi, GS est l'extension de ce standard par Roland, et XG est l'extension par Yamaha. À cette époque, la série SC de Roland était la source sonore la plus vendue de ce type, donc beaucoup de données GS étaient distribuées sur les forums Nifty et ainsi de suite. Nostalgique,,,
Donc, recherchez les données GM, GS, XG de 130000 chansons sur cette page de reddit (https://www.reddit.com/r/WeAreTheMusicMakers/comments/3ajwe4/the_largest_midi_collection_on_the_internet/) J'ai fait un scénario.
Dans le cas des données GM, GS, XG, il contient souvent des informations pour configurer l'appareil avec SysEx (si vous avez créé correctement les données pour ces appareils), donc dans les données midi J'ai essayé de le faire avec la politique que vous devriez juger en regardant SysEx.
Abréviation de System Exclusive, cette page (https://www.g200kg.com/jp/docs/dic/systemexclusive.html) explique ce qui suit.
C'est l'un des types de messages MIDI, et ce n'est pas une fonction commune au MIDI, mais un message utilisé pour contrôler des fonctions telles que des effets spécifiques au modèle de la source sonore.
Donc, quand j'ai vérifié le SysEx de chaque entreprise en disant que si ce sont des données MIDI qui utilisent une fonction de GM, GS, XG, le SysEx correspondant devrait être inclus, ...
Types de normes de données MIDI | System Exclusive |
---|---|
GM (General MIDI) | F0 7E xx 09 |
GS (L'expansion GM de Roland) | F0 41 xx 42 |
XG (Expansion de Yamaha GM | F0 43 xx 4C |
S'il est inclus au début de SysEx, on peut dire qu'il s'agit d'un plan de chaque constructeur. Dans le tableau ci-dessus, F0 marque le début de SysEx. Vient ensuite l'ID du fabricant, xx est l'ID de l'appareil (ID spécifique à l'appareil) et le dernier est l'ID du modèle (si vous écoutez le GS de Roland, cela ressemble à l'ID de modèle 42, vous pouvez donc identifier la source sonore GS), alors utilisez-le.
Il existe une bibliothèque appelée mido (https://mido.readthedocs.io/en/latest/#) pour gérer midi en Python, donc je l'utilise. Le nom du référentiel est également utilisé pour le maîtriser, n'est-ce pas? Le mido est bien entretenu (important) et peut être fonctionnellement varié, donc je pense qu'il est parfait pour manipuler le midi.
Le résultat de l'exécution est un fichier appelé GMMidiCheck.ipynb
. Quand j'écrivais, mon ami m'a dit: «Si vous écrivez en .py, vous pouvez exécuter le test en CI», et j'ai pensé que c'était le cas, et toutes les fonctions étaient écrites dans midi_utill.py
(après tout). Je n'ai pas encore écrit de test, mais ...). Par conséquent, dans chaque cellule de .jpynb
importlib.reload(midi_utill)
Donc, je recharge midi_utill.py
. Donc, le but de ce traitement est que nous devons comparer SysEx des fichiers MIDI, donc nous comparons après avoir converti tous les midi en hex avec la fonction suivante.
def getMidiHexData(midifilename):
import mido
midi = mido.MidiFile(midifilename)
MidiData = []
for i in range(len(midi.tracks)):
for msg in midi.tracks[i]:
# print(msg.hex())
MidiData.append(msg.hex())
return MidiData
De plus, j'ai beaucoup appris sur la gestion des fichiers, la gestion des répertoires, etc., mais comme il s'agit de Python lui-même, je vais l'omettre, donc si vous êtes intéressé, veuillez lire le script.
Au fait, veuillez spécifier les deux suivants comme variables dans GMMidiCheck.ipynb
.
On suppose que les données reddit sont dans le même répertoire que GMMidiCheck.ipynb
. De même, on suppose que les données jugées conformes à GM seront écrites en créant un répertoire au même emplacement.
Sur les 130 000 chansons (dans ce script), 33 000 chansons ont été capturées comme "comme les données GM, GS, XG".
C'est suffisant comme données source d'apprentissage pour l'apprentissage automatique, n'est-ce pas? De plus, étant donné que les informations de tonalité sont ouvertes au public pour GM, il est également possible d'extraire de la piste «batterie et percussions», «instruments de musique simples», «instruments de musique doubles», etc. , Devrait être. Je suis sûr).
Au fait, il faut environ 5 heures pour vérifier 130 000 chansons, alors utilisez-les systématiquement.