Y a-t-il un moyen d'obtenir les données de note d'un fichier MIDI? C'est-à-dire que je veux casser le fichier MIDI dans ses parties constitutives afin qu'ils se présentent sous la forme d'un mot unique (ou de tout autre type de données). Ce que je veux faire à la fin, c'est prendre dans un fichier MIDI et trouver des modèles dans les notes. Obtenez dans chaque note, trouvez la fréquence (d'être jouée) et notez la probabilité que d'autres notes soient jouées après elle. P>
Ce serait bien de le faire en C / C ++, mais n'importe quelle langue serait bien. P>
3 Réponses :
L'analyse des fichiers MIDI à la main n'est pas amusant, prenez ma parole à ce sujet. ;) Le format, bien que bien documenté, il est difficile de traiter depuis que vous êtes toujours sur le niveau d'octet brut. Comme vous êtes intéressé à extraire des informations significatives des fichiers MIDI eux-mêmes, je vous recommanderais d'utiliser un cadre tel que Juce , qui est écrit en C ++ et prend en charge la lecture de fichiers MIDI. P>
Juce est assez grande, mais l'API est bonne et bien documentée. Classe pour analyser les fichiers MIDI , par exemple, est assez simple et facile à utiliser. p>
Nik Remanan - désolé, mais je ne suis pas d'accord avec vous ... Ansing Midi en C #, C ++ est quelque chose d'environ 400 rangées de code..it n'est rien difficile et ce n'est rien de difficile. P>
Je vous conseillerai de commencer avec ce lien: https://web.archive.org/web/20141227205754/http://www.sonicspot.com:80/guide/midifiles.html
Il y a tout ce que vous devez savoir sur MIDI et comment le lire .. P>
Dans la brève description Comment l'analyseur fonctionnera: sur les sites Web, tout est expliqué vraiment bien. Si vous ouvrez le fichier MIDI en mode octet, vous n'aurez que quelques méthodes et tout est alors à propos de la commande si-d'autre et que vous allez attraper ce qui est stocké maintenant. Si vous voulez un peu plus de conseils, écrivez-moi, je vais l'essayer. Mais l'analyse du MIDI n'est pas aussi difficile que son apparence. Si vous avez des problèmes, écrivez-moi .. P>
1) Ouvrez MIDI en mode octet
2) Lire le morceau d'en-tête où il y a des informations sur la taille, le nombre de pistes et le format de fichier important !!
- Il existe 3 types de formats: 0,1,2 (type 2 est vraiment "précieux", il n'y a que peu de fichiers MIDI avec ce type, vous n'avez donc pas besoin de lire le MIDI s'il y a le type 2)
- S'il n'y a pas écrit: "mthd" (0x4d546864) code>, fin avec erreur (c'est un mauvais fichier MIDI)
3) lire le morceau de piste de
- S'il n'y a pas écrit: "mtrk" (0x4d54726b) code> fin avec une erreur (c'est un mauvais fichier MIDI)
4) Lisez les événements MIDI ..
- Il y a beaucoup d'événements, vous pouvez tous les lire avec les commandes if-else, ou vous ne pouvez lire que les événements ce que vous voulez savoir, par exemple la note sur, NOTE OFF
- Parfois, dans certains fichiers MIDI ne sont pas remarqués ..Cet événement est modifié avec la note et la vélocité 0 p>
Il est important de comprendre la longueur variable, mais sur les sites Web, il est également expliqué. C'est pas difficile. Vous pouvez également expliquer de nombreux sites de Google de nombreux sites de la longueur variable, avec des images et des exemples. Donc, je ne pense pas qu'il est difficile de l'expliquer ici. P>
NIH Syndrom peut-être? Je veux dire un STD :: La classe de vecteur n'est pas difficile à écrire à la surface, c'est juste une matrice de longueur variable ... STD :: log2 () n'est pas difficile à écrire non plus ... et ainsi de suite. Pourquoi ne pas tout écrire vous-même? Des trucs comme le traitement du fichier à la main sont la chose la plus reddicolante de tous, encore plus lorsque vous traitez avec des formats «standard» qui devraient certainement avoir une implémentation solide de travail quelque part.
Désolé, je pourrais lui envoyer 2198312093 des cadres et des solutions 3 Au moins si j'utilise les bibliothèques 3th Party, je reçois de gros problèmes, alors si je l'ai écrit par moi-même. Et de toute façon quelqu'un doit écrire le code. Si je suis l'un ou certains Joseph Nowak de Taiwan écrit que ce n'est pas important. Tout le temps, vous pouvez obtenir des erreurs. Et si vous voulez vraiment comprendre ce que fait une bibliothèque, vous devez examiner le code qui est déshabillé de toute façon. Donc, dans de nombreux cas, il est plus facile de l'écrire par vous-même.
Il existe un certain nombre de solutions prêtes à l'emploi, en prenant une entrée du fichier MIDI, générant une visualisation musicale, Donc, en théorie et en pratique, l'analyseur MIDI fonctionne bien p>
Je travaille sur un tel visualiseur musical dans HTML5, générant une top verticale> Down Notes Timeline en direct pour soutenir les joueurs de piano handicapés. P>
Le projecteur DLP est génial mais il semble que j'ai besoin d'installer un grand écran de télévision LCD, juste sur le clavier de piano pour obtenir la visualisation pour correspondre aux notes jouées p>
@brendan kavanagh est le leader Un autre développeur clé s'appelle Stephen Malinowski P>
Suivez simplement ma question pour obtenir les bons liens Web p>