[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.

Topyr

Buenas noches. Primero me presento. Soy Topyr, pero no me llamo así ;D. He estado curioseando alguna vez este foro por la parte de programación. Me registré por varios motivos, pero uno de ellos es que necesito "procesar" archivos .MID (midi's). Pero con leerlos me conformo. Quisiera saber si hay una librería disponible en Visual Basic que se encargue de leer las notas y la duración de cada una. Ante todo gracias y, ya he buscado en google y en otros motores de búsqueda pero, no he encontrado nada.

ssccaann43 ©

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

Topyr

Cita de: ssccaann43 en  3 Octubre 2008, 22:01 PM
Aquí tienes lo que buscas... Un saludo
Gracias por tu aporte, pero no entiendo muy bien la parte de abrir un .MID
(Aquí dejo el codigo)
Código (vb) [Seleccionar]

Private Sub MnuAbrir_Click()
On Error Resume Next
    CMDialog1.FilterIndex = 1
    CMDialog1.Filter = "Secuencia Midi|*.Mid;*.rmi;*.Midi"
    CMDialog1.Flags = OFN_READONLY Or OFN_FILEMUSTEXIST
    CMDialog1.CancelError = True
    CMDialog1.FileName = ""
    On Error Resume Next
    CMDialog1.Action = 1
    If Err <> 0 Then
       Exit Sub
    End If
Dim i As Long, RS As String, cb As Long, A$, X As Long, Y As Long
    RS = Space$(128)
    Text1.Text = CMDialog1.FileName
    A$ = Text1.Text
      i = mciSendString("Stop Mid1", RS, 128, cb)
     i = mciSendString("Close Mid1", RS, 128, cb)
    i = mciSendString("open " & A$ & " Type Sequencer Alias Mid1 ", RS, 128, cb)
Form1.Caption = "Reproductor de Midi - " + CMDialog1.FileTitle
App.Title = "Reproductor de Midi - " + CMDialog1.FileTitle
    Timer1.Enabled = True
    ProgressBar2.Cls
    i = mciSendString("play Mid1", RS, 128, cb)
End Sub

¿Qué tendría que tocar para plasmarlo en un texbox aparte?

Saludos.

s E t H

un midi es sonido.. como queres ponerlo en un textbox?

ssccaann43 ©

ahora si me quede  :o sorprendido... Sabes que es un archivo MDI? No entiendo como quieres ponerlo en un text?
- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

BlackZeroX

si lo quieres plasmar en un texbox

Código (vb) [Seleccionar]

dim ff
ff = freefile
open "Ruta del archivo" for binary as #f
    get #ff,,Datos
close #ff
textbox.text=datos

para reproducir los archivos de audio midi usa el codigo de arriba ok (el de este post no el de Topyr o el Link de sccaann143)
The Dark Shadow is my passion.

Topyr1

Con "Plasmar" Me refiero a poner el número de hercio de la nota, la duración, el instrumento, el volumen, el tempo de todo el tema.

¿Ahora me entienden?

PD: He probado lo de ░▒▓BlackZeroҖ▓▒░ pero me da unos carácteres de cualquier forma (pensareis que soy vago al preguntarlo, pero he intentado ponerlo pero no he podido).

seba123neo

Hola, el codigo de ░▒▓BlackZeroҖ▓▒░  te lo abre en modo binario...no es lo que buscas...lo que vos queres es como lo que puso ssccaann43...pero si no sabes que es lo que dice el codigo entocnes es muy dificil ayudarte...

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Topyr1

Entonces, ¿No hay solución a mi problema  :(?
Entonces dejo el post abierto por si alguien se le ocurre alguna idea, mientras intentaré buscar otras formas de hacer mi proyecto.

APOKLIPTICO

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!
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.