Beep En Gambas.


Objetivo: Beep En Gambas.
Hola a todos.
Alguien sabe como hacer un "beep" en gambas con componentes nativos?
He visto estas referencias pero todas hablan de "rodeos" para hacerlo pero no de algo interno de gambas.
http://gambas.8142.n7.nabble.com/Beep-td28956.html
http://www.gambas-it.org/smf/index.php?topic=2361.0
http://www.gambas-it.org/wiki/index...generare_un_bip

Saludos.

última edición por tincho el Miercoles, 28 Marzo 2018, 17:00; editado 1 vez
Perfil MP  
Objetivo: Re: Beep En Gambas.
Hoola tincho,

sin usar archivos Audio ni Midi, podemos ejecutar una breve onda audio mediante las Clases " Al " y " Alc " del Componente gb.openal de Gambas:

Private Const AMPLITUD As Integer = 127
Private Const FRECUENCIA As Integer = 880
Private Const MUESTREO As Integer = 44100
Private Const DURACION As Single = 0.1


Public Sub Main()

Dim disp As AlcDevice
Dim cont As AlcContext
Dim src, buffer As Integer[]
Dim err As Boolean
Dim Formato_audio As Integer
Dim datos As New Byte[]

' Configura el dispositivo y el contexto audio con la Clase "Alc":
disp = Alc.OpenDevice(Null)
cont = Alc.CreateContext(disp)

err = cont.MakeCurrent()
If err = False Then Error.Raise("Imposible crear el contexto audio !")

src = Al.GenSources(1)

' Configura el buffer audio:
buffer = Al.GenBuffers(1)

Onda(datos)

Formato_audio = 4352

' Los datos audio son cargados en el buffer audio:
Al.BufferData(buffer[0], Formato_audio, datos.Data, datos.Count, MUESTREO)

' Conecta el buffer audio a la fuente de audio:
Al.Sourcei(src[0], Al.BUFFER, buffer[0])

' Ejecuta la fuente de audio:
Al.SourcePlay(src[0])

' Permite la ejecución por la entera duración de la onda sonora:
Sleep DURACION

' Libera la memoria:
Al.DeleteBuffers(buffer)
Al.DeleteSources(src)
Alc.DestroyContext(cont)
Alc.CloseDevice(disp)

End


Private Function Onda(bb As Byte[]) ' Crea los datos audio de la onda sinusoidal

Dim i As Integer

For i = 0 To (DURACION * 2 * MUESTREO) - 1
bb.Push(CByte(128 + AMPLITUD * Sin(CFloat(i / MUESTREO * FRECUENCIA * (2 * Pi)))))
Next

End

última edición por vuott el Miercoles, 28 Marzo 2018, 23:46; editado 7 veces
Perfil MP  
Objetivo: Re: Beep En Gambas.
vuott escribió: [Ver mensaje]
...sin usar archivos Audio ni Midi, podemos ejecutar una breve unda audio mediante la Clase " Alc " del Componente gb.openal de gambas...

Bueno, que despliegue !! siempre haces cosas muy interesantes.
intentare meterlo en una función para llamarlo desde cualquier parte del programa.
Yo estoy buscando algo como el beep de basic, algo sencillo si es que lo incluye gambas. La verdad que me extraña que no tenga algo sencillo para hacer un aviso sonoro.
Por otra parte, reproducir algún archivo de audio pequeño e incluirlo en el programa no es mala opción.

Saludos.

Perfil MP  
Objetivo: Re: Beep En Gambas.
vuott escribió: [Ver mensaje]
...Private Function Onda(bb As Byte[]) ' Crea los datos audio de la onda sonora
...

o sea que con este código y un poco de maña se puede crear un piano con el teclado de la computadora. !!!!

Saudos.

Perfil MP  
Objetivo: Re: Beep En Gambas.
tincho escribió: [Ver mensaje]
Por otra parte, reproducir algún archivo de audio pequeño e incluirlo en el programa no es mala opción.

...está claro que tendrás que buscar un pequeño archivo wav o mp3 o ogg contenente un sonido "bip" !
Para usar, pero, un archivo muuuy pequeño, tienes que usar un archivo Midi.

última edición por vuott el Miercoles, 28 Marzo 2018, 23:52; editado 1 vez
Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.453s (PHP: -71% SQL: 171%)
Consultas SQL: 48 - Debug off - GZIP Activado