Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Beep En Gambas.
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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, 18:00; editado 1 vez 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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 Jueves, 29 Marzo 2018, 00:46; editado 7 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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 Jueves, 29 Marzo 2018, 00:52; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
9.00 9 9 3
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Cerrar Gambas Para Abrir Otro Proyecto De ... Shell General 5 Jueves, 21 Septiembre 2017, 20:42 Ver último mensaje
shordi
No hay nuevos mensajes Comunicar Un Movil Con Gambas: Bluetooth ... jsbsan General 2 Domingo, 15 Julio 2012, 00:37 Ver último mensaje
sebikul
No hay nuevos mensajes Hay Algun Comando De Gambas Para Saber La ... v3ctor General 11 Jueves, 07 May 2015, 23:49 Ver último mensaje
vuott
No hay nuevos mensajes Como Hacer Proyecto Gambas Sin Depender De... rocky2007 General 5 Domingo, 06 Marzo 2011, 21:39 Ver último mensaje
fabianfv
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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
No puede descargar archivos
No puede publicar eventos en el calendario