Extraer Información De Un Archivo Midi Con Sólo Las Funciones De Gambas.


Subject: Extraer Información De Un Archivo Midi Con Sólo Las Funciones De Gambas.
Hola hermanosss,

una otra vez con la... MIDI-mania

Este código permite obtener con sólo las funciones de gambas las siguientes informaciones de un archivo Midi:
- nombre;
- tamaño;
- tipo file Midi;
- Cantidad de pistas;
- Resolución PPQN;
- Tempo metronomico inicial.
Public Sub Main()

Dim file_midi As String = "/ruta/del/file.mid"
Dim fl As File
Dim bb As Byte[]
Dim i As Integer
Dim t As Short


fl = Open file_midi For Read

' Muestra el nombre del archivo Midi.:
Print "Nombre del archivo Midi: "; File.Name(file_midi)

' Verifica el tamaño del archivo Midi:
Print "Tamaño del archivo Midi: "; Lof(fl); " byte"

' Lee todo el archivo Midi y carga los datos en la variable vectorial:
With bb = New Byte[Lof(fl)]
.Read(fl)
End With

' Verifica que el archivo subido sea un archivo MIDI estándar.:
If bb.ToString(0, 4) <> "MThd" Then Error.Raise("El archivo subido no es un archivo Midi !")

' Verifica el tipo de archivo Midi:
Print "Tipo de archivo Midi: "; CStr(bb[9])

' Verifica la cantidad de pistas en el archivo Midi.:
Print "Numero de pistas: "; CStr(bb[11])

' Verifica la resolución PPQN del archivo Midi.:
Print "Resolución PPQN: "; legge_Byte(fl, 12, 2)

' Verifica el Tempo metronomico inicial del archivo Midi:
i = InStr(bb.ToString(0, Lof(fl)), Chr(&FF) & Chr(&51) & Chr(&03))
If i > 0 Then
t = 60000000 \ legge_Byte(fl, i + 2, 3)
Else
t = 120
Endif
Print "Tempo metronomico: "; t; " bpm"


fl.Close

End


Private Function legge_Byte(f As File, s As Short, q As Byte) As Integer

Dim ris As Integer
Dim b As Byte

Seek #f, s

Do

Read #f, b
ris = (ris * CInt(2 ^ 8)) Or b
Dec q

Loop Until q = 0

Return ris

End

Last edited by vuott on Wednesday, 03 September 2014, 19:29; edited 1 time in total
Profile PM  
Subject: Re: Extraer Información De Un Archivo Midi Con Sólo Las Funciones De Gambas.
Muy bueno, como siempre vuott. Me gusta el asunto de Midi y el sonido en general, por mi condición de "músico".

Saludos

Profile PM  
Subject: Re: Extraer Información De Un Archivo Midi Con Sólo Las Funciones De Gambas.
jguardon escribió: [Ver mensaje]
Muy bueno, como siempre vuott.


Muchas gracias, jguardon.


jguardon escribió: [Ver mensaje]
Me gusta el asunto de Midi y el sonido en general, por mi condición de "músico".

Saludos


Bueno !

Saludos

Profile PM  

Page 1 of 1


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.1267s (PHP: -18% SQL: 118%)
SQL queries: 24 - Debug Off - GZIP Enabled