[Ayuda] ¿Cómo leer un archivo midi?

Iniciado por Topyr, 3 Octubre 2008, 21:51 PM

0 Miembros y 1 Visitante están viendo este tema.

ssccaann43 ©

En el ejemplo que te pase, esta lo que necesitas. No entiendo porque no puedes usarlo.

Recomendación,

Bajate un manual de visual basic.
- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

Topyr1

#11
Cita de: APOKLIPTICO en 19 Octubre 2008, 20:26 PM
Supongo que tendrías que analizar como es la forma de un archivo midi.
Ak tenes algo para empezar:
http://es.wikipedia.org/wiki/MIDI#Bytes_MIDI
Es posible, animo!

Gracias por tu aporte, creo que me servirá  :laugh:

Cita de: ssccaann43 en 19 Octubre 2008, 20:28 PM
En el ejemplo que te pase, esta lo que necesitas. No entiendo porque no puedes usarlo.

Recomendación,

Bajate un manual de visual basic.
Mira, yo te estoy pidiendo (por ejemplo) que me des la partitura de una canción y tu me estás pasando un programa para escucharlo, puede que me sirva, pero no es lo que busco. Y gracias por tu consejo.

APOKLIPTICO

Cita de: ssccaann43 en 19 Octubre 2008, 20:28 PM
En el ejemplo que te pase, esta lo que necesitas. No entiendo porque no puedes usarlo.

Recomendación,

Bajate un manual de visual basic.

Lo que está pidiendo, es conocer el pitch de los sonidos, osea, quiere saber como están compuesto cada uno de los midis, no necesita reproducirlos...
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

Topyr1

Cita de: APOKLIPTICO en 19 Octubre 2008, 21:06 PM
Cita de: ssccaann43 en 19 Octubre 2008, 20:28 PM
En el ejemplo que te pase, esta lo que necesitas. No entiendo porque no puedes usarlo.

Recomendación,

Bajate un manual de visual basic.

Lo que está pidiendo, es conocer el pitch de los sonidos, osea, quiere saber como están compuesto cada uno de los midis, no necesita reproducirlos...
Gracias por tu aporte, pero ahora me encunetro otro problema.

Según la wikipedia un Byte que lee el midi son 10 bits (0's y 1's), pues bien, cuando voy a poner a binario separándolo con "[]" me salen 8 bits, no 10 como decía la wikipedia.

Aquí está el código.
Código (vb) [Seleccionar]

Private Sub Form_Load()
Dim leer As String
Open "leer.mid" For Input As #1
Input #1, leer
Close #1
ConvertBin leer
Text1 = leer
End Sub
Public Sub ConvertBin(TheString As String)
    Dim C As Integer
    Dim DD As Integer
    Dim EE As Integer
    Dim BinArray(7) As String
    Dim TempString As String
    Dim NewTheString As String
   
   
   
    For C = 1 To Len(TheString)
        DD = Asc(Mid(TheString, C, 1))
       
        BinArray(7) = DD Mod 2
        DD = DD \ 2
        BinArray(6) = DD Mod 2
        DD = DD \ 2
        BinArray(5) = DD Mod 2
        DD = DD \ 2
        BinArray(4) = DD Mod 2
        DD = DD \ 2
        BinArray(3) = DD Mod 2
        DD = DD \ 2
        BinArray(2) = DD Mod 2
        DD = DD \ 2
        BinArray(1) = DD Mod 2
        DD = DD \ 2
        BinArray(0) = DD Mod 2
       
        For EE = 0 To UBound(BinArray)
            TempString = TempString + BinArray(EE)
        Next EE
        TempString = TempString + "[]" 'Esto se lo puse para separar los bytes
        NewTheString = NewTheString + TempString
       
        TempString = ""
       
    Next C

    TheString = NewTheString
    NewTheString = ""
End Sub

APOKLIPTICO

y... Obvio, un byte son 8 bits...
lo que tenes q hacer, es concatenarlos de a 10 bits y listo...
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.