Nik Reisman - lo siento, pero no estoy de acuerdo con usted ... el análisis de midi en C#, C++ es algo así como 400 filas de código ... No es nada difícil y no es nada difícil.
aconsejaré de empezar con este enlace: http://www.sonicspot.com/guide/midifiles.html Hay todo lo que necesita saber acerca de MIDI y cómo leerlo ..
En la breve descripción de cómo el analizador funcionará:
1) Abrir midi en modo byte
2) ¡Lee el fragmento de encabezado donde hay información sobre el tamaño, el número de pistas y el formato de archivo IMPORTANTE!
- Hay 3 tipos de formatos: 0,1,2 (el tipo 2 es realmente "valioso", solo hay pocos archivos midi con este tipo, por lo que no es necesario leer el midi si hay tipo 2)
- si no se escribe: "MThd" (0x4D546864)
, extremo con el error (que es un archivo mal midi)
3) Leer pista trozo
- si no se escribe: "MTrk" (0x4D54726B)
final con el error (es un archivo MIDI malo)
4) Lea los eventos midi .. - Hay muchos eventos, puede leerlos todos con comandos if-else, o puede leer solo los eventos lo que quiere saber, por ejemplo, NOTA ENCENDIDA, NOTA DESACTIVADA - A veces en algunos archivos midi no están NOTE OFF ... este evento es chang ed con NOTE ON y velocidad 0
En los sitios web todo se explica muy bien. Si abre el archivo midi en modo byte, tendrá solo unos pocos métodos y todo será solo sobre los comandos if-else y allí encontrará lo que está almacenado en este momento.
Es importante entender LONGITUD VARIABLE, pero en los sitios web también se explica. No es dificil. Puede buscar en Google muchos sitios donde también se explica VARIABLE LENGTH, con algunas imágenes y ejemplos. Entonces no creo que sea difícil explicarlo aquí.
Si quiere un poco más de consejos, escríbame, lo intentaré. Pero analizar MIDI no es tan difícil como parece. Si tiene algún problema, escríbame ...
¿Síndrome de NIH tal vez? Quiero decir que una clase std :: vector no es difícil de escribir, en la superficie es simplemente una matriz de longitud variable ... std :: log2() tampoco es difícil de escribir ... y así sucesivamente. ¿Por qué no escribir todo tú mismo? Cosas como el análisis de archivos a mano es lo más repetitivo de todos, incluso más cuando se trata de formatos "estándar" que definitivamente deberían tener una implementación sólida y funcional en alguna parte. – thesaint
Lo siento, podría enviarle marcos de 2198312093 y soluciones de terceros y él podría tener problemas más grandes que solo con la escritura por su cuenta. Por lo menos si uso bibliotecas de terceros, estoy teniendo problemas más grandes que si lo hubiera escrito yo mismo. Y de todos modos ALGUIEN necesita escribir el código. Si yo soy uno o algún Joseph Nowak de Taiwán escribe que no es importante. Todo el tiempo puede obtener algunos errores. Y si realmente quiere ENTENDER lo que hace una biblioteca, debe mirar el código de todos modos. Entonces, en muchos casos, es más fácil escribirlo usted mismo. – piggy