elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Reproduccion de Sonidos... clamando por ayuda...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Reproduccion de Sonidos... clamando por ayuda...  (Leído 5,413 veces)
Delta24

Desconectado Desconectado

Mensajes: 4


Delta24


Ver Perfil
Reproduccion de Sonidos... clamando por ayuda...
« en: 25 Octubre 2005, 19:40 pm »

Hola que tal usuarios de este foro. Veran, molestandoles preguntado sobre como podria desviar los comandos enviados al altavoz del gabinete hacia la tarjeta de sonido, mediante funciones en Visual Basic.

Luego de un tiempo encontre la funcion Beep de la API, que me recive valores de frecuencias y duracion en milisegundos de las mismas, pero les señalo el problema:

Reproduce el sonido en la bocina del gabinete, y no puedo variar la intensidad del sonido que se emite. De inmediato pense en buscar otra funcion. Encontre las funciones de la API para reproduccion de formato WAVE, pero no les entiendo....   ???. Mi problema es que no encuentro como se estructura un archivo WaveForm.

Es como dejo mi comentario, preguntando por cualquiera de las 2 soluciones, o las que sean necesarias, jeje, pues si existe alguna otra funcion o libreria que me saque de este problema pues seria un completo alivio, sintetizo mis dudas:

- Como desviar la señal del altavoz de gabiente a la tarjeta de sonido.

ó

- Como rayos puedo hacer un archivo WaveForm, (.WAV), mediante el Visual Basic.

De antemano y sobreentendido queda mi agradecimiento por quien conteste a mi peticion, asi como quien lea este comentario...


En línea

Delta24
Kizar


Desconectado Desconectado

Mensajes: 1.325


kizar_net


Ver Perfil
Re: Reproduccion de Sonidos... clamando por ayuda...
« Respuesta #1 en: 26 Octubre 2005, 18:34 pm »

Fuente: api - guide

Código:

Private Const SND_APPLICATION = &H80         '  look for application specific association
Private Const SND_ALIAS = &H10000     '  name is a WIN.INI [sounds] entry
Private Const SND_ALIAS_ID = &H110000    '  name is a WIN.INI [sounds] entry identifier
Private Const SND_ASYNC = &H1         '  play asynchronously
Private Const SND_FILENAME = &H20000     '  name is a file name
Private Const SND_LOOP = &H8         '  loop the sound until next sndPlaySound
Private Const SND_MEMORY = &H4         '  lpszSoundName points to a memory file
Private Const SND_NODEFAULT = &H2         '  silence not default, if sound not found
Private Const SND_NOSTOP = &H10        '  don't stop any currently playing sound
Private Const SND_NOWAIT = &H2000      '  don't wait if the driver is busy
Private Const SND_PURGE = &H40               '  purge non-static events for task
Private Const SND_RESOURCE = &H40004     '  name is a resource name or atom
Private Const SND_SYNC = &H0         '  play synchronously (default)
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

Private Sub Form_Load()
PlaySound "C:\WINDOWS\MEDIA\TADA.WAV", ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub



En línea

Delta24

Desconectado Desconectado

Mensajes: 4


Delta24


Ver Perfil
Reproduccion de Sonidos... clamando por ayuda...
« Respuesta #2 en: 26 Octubre 2005, 22:04 pm »

Saludos de nuevo.

Kizar, la función que posteas, es la solución, efectivamente logras reproducir un sonido por medio de la tarjeta de audio. pero quizás no expliqué bien mi problema. Lo replanteo de la siguiente manera, quizás me puedas ayudar... :

- Cómo puedo hacer, para que la tarjeta de sonido, me emita por medio de las bocinas un sonido de 500hz a 30db?

Ese es el asunto, quisiera poder mandar reproducir una sola frecuencia. La solución que me brindas, me plantea la opción de grabar archivos WAV, con las frecuencias que necesito, ( un archivo que contenga un sonido de 250hz, otro para 500hz, y asi...). Pero, definitivamente esos archivos durarán siempre el mismo tiempo. Yo necesito que duren N tiempo, es decir, que de la tarjeta de sonido salga la señal mientras el usuario mantenga oprimida la tecla Enter, ( por dar un ejemplo ).

Espero puedan ayudarme, tanto tú como quien se interese por el tema. Como antes, mis saludos y agradecimientos por prestar lectura a estos posts...
En línea

Delta24
Kizar


Desconectado Desconectado

Mensajes: 1.325


kizar_net


Ver Perfil
Re: Reproduccion de Sonidos... clamando por ayuda...
« Respuesta #3 en: 27 Octubre 2005, 18:09 pm »

Fuente : Api Guide

Código:
'Example submitted by Danjel Nyberg
'It needs a textbox (Text1) and two command buttons (Command1, Command2)
Private Declare Function waveOutSetVolume Lib "Winmm" (ByVal wDeviceID As Integer, ByVal dwVolume As Long) As Integer
Private Declare Function waveOutGetVolume Lib "Winmm" (ByVal wDeviceID As Integer, dwVolume As Long) As Integer
Private Sub Command1_Click()
    Dim a, i As Long
    Dim tmp As String
    a = waveOutGetVolume(0, i)
    tmp = "&h" & Right(Hex$(i), 4)
    Text1 = CLng(tmp)
End Sub
Private Sub Command2_Click()
    Dim a, i As Long
    Dim tmp, vol As String
    vol = Text1
    tmp = Right((Hex$(vol + 65536)), 4)
    vol = CLng("&H" & tmp & tmp)
    a = waveOutSetVolume(0, vol)
End Sub

En línea

Delta24

Desconectado Desconectado

Mensajes: 4


Delta24


Ver Perfil
Reproduccion de Sonidos... clamando por ayuda...
« Respuesta #4 en: 28 Octubre 2005, 06:55 am »

Hola que tal. Veran: la solución que me posteas, no me arroja ningun resultado, quisiera explicarte como la entiendo, si en algo me equivoco, ruego me corrijan... :

'Example submitted by Danjel Nyberg
'It needs a textbox (Text1) and two command buttons (Command1, Command2)

Private Declare Function waveOutSetVolume Lib "Winmm" (ByVal wDeviceID As Integer, ByVal dwVolume As Long) As Integer // Carga de la libreria Winmm.dll la funcion WaveOutSetVolume, la cual establece el valor de volumen de salida de la tarjeta de sonido.

Private Declare Function waveOutGetVolume Lib "Winmm" (ByVal wDeviceID As Integer, dwVolume As Long) As Integer //Carga de la libreria winmm.dll la funcion WaveOutGetVolume que obtiene el valor del volumen de la tarjeta de sonido,

Private Sub Command1_Click() // Cuando se haga click en command1
    Dim a, i As Long // Declare las variables a,i de tipo LONG
    Dim tmp As String  //Declare la variable TMP de tipo STRING
    a = waveOutGetVolume(0, i) // el valor devuelto por la funcion con los parametros de Dispositivo Numero 0, al valor de i, sera igual a la variable a
    tmp = "&h" & Right(Hex$(i), 4) // temp es igual a "&h", ( segun yo esto es para direccionar a un puerto ) mas los cuatro caracteres de la derecha del hexadecimal de i.
    Text1.text = CLng(tmp) // El texto de text1 vale tmp convertido a tipo LONG
End Sub

Private Sub Command2_Click() // Cuando se haga click en Command2
    Dim a, i As Long // Declare a,i como LONG
    Dim tmp, vol As String //Declaro tmpo,vol como STRING
    vol = Text1.text //Iguala vol, al valor de text de text1
    tmp = Right((Hex$(vol + 65536)), 4) //Iguala a tmpo a los cuatro caracteres de la derecha del hexadecimal de vol + 65536
    vol = CLng("&H" & tmp & tmp) //Iguala a vol a la parte LONG de "&h" mas el valor de temp mas el valor de tmp
    a = waveOutSetVolume(0, vol) //iguala a a con el resultado devuelto de la funcion con los parametros Dispositivo Numero 0 y el Volumen igual al valor de VOL
End Sub


Segun entiendo, las funciones:

- waveOutGetVolume.- Obtiene el valor del volumen actual
- waveOutSetVolume.- Establece el valor de volumen

( es obvio que hablamos de intesidad de sonido )

De acuerdo a esto, logramos el objetivo de variar el volumen de salida de la tarjeta de sonido, pero seguimos con la maxima duda: Como puedo hacer que se reproduzcan 1000Hz.?? o x numero de Hz...

Quiero compartir con ustedes lo siguiente:

las propiedades del sonido son 3: Intensidad, Frecuencia, y Duracion.

Bajo esta loógica, todo lo que oimos proviene de una fuente que emite a determinada intensidad, ( dB ), a determinada frecuencia, ( hz ) y por determinado tiempo, ( segs. ). Entonces, un archivo de sonido, como es un midi, wav, mp3, rar, etc., etc., tiene forzosamente que tener un registro, ( una especie de base de datos por decirlo de otro modo ), que por cada milisegundo, guarde intensidad y frecuencia.

Mi duda es, en que momento, en que parte, bajo que condiciones y como se guarda ese registro, en un archivo WAVEFORM, por ejemplo, o en un Midi, o no se, creo que el mas conveniente seria el WaveForm...

Como siempre les agradezo, y quedamos en contacto...
( jeje, ya logramos una... )
En línea

Delta24
Sancho.Mazorka


Desconectado Desconectado

Mensajes: 480


Gamer & Programador


Ver Perfil WWW
Re: Reproduccion de Sonidos... clamando por ayuda...
« Respuesta #5 en: 30 Noviembre 2005, 22:34 pm »

alguno me puede dejar el link de donde puedo bajar la API-Guide ya la busque pero no la encuentro.
muchas gracias
Sancho Mazorka   :P
En línea

Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html


NYlOn


Desconectado Desconectado

Mensajes: 842


OOOOHHHHHH, TARAGÜIIII xDDDDDD


Ver Perfil WWW
-.-''
« Respuesta #6 en: 1 Diciembre 2005, 02:03 am »

Google

El segundo resultado... No buscaste un choto
En línea

el_chente23

Desconectado Desconectado

Mensajes: 142



Ver Perfil
Re: Reproduccion de Sonidos... clamando por ayuda...
« Respuesta #7 en: 1 Diciembre 2005, 03:43 am »

Citar
alguno me puede dejar el link de donde puedo bajar la API-Guide ya la busque pero no la encuentro

http://foro.elhacker.net/index.php/topic,82675.msg381363.html#msg381363

Saludos
En línea

Sancho.Mazorka


Desconectado Desconectado

Mensajes: 480


Gamer & Programador


Ver Perfil WWW
Re: Reproduccion de Sonidos... clamando por ayuda...
« Respuesta #8 en: 1 Diciembre 2005, 23:23 pm »

no si busque y habia entrado a al pagina esa que es toda verde pero como no entendia bien todo eso segui buiscando.
y aca en el foro o encontre nada.

Sancho Mazorka   :P
En línea

Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html


Sancho.Mazorka


Desconectado Desconectado

Mensajes: 480


Gamer & Programador


Ver Perfil WWW
Re: Reproduccion de Sonidos... clamando por ayuda...
« Respuesta #9 en: 8 Diciembre 2005, 23:56 pm »

miren ya se que paso mucho tiempo y me meti para preguntar sobre la API-GUIDE, pero les queria decir que yo tengo un ej que te marca en un form con lineas la frecuancia como los programas WAVE cut pro para edicon de sonido pero no la podes modificar ni nada solo te marca el sonido. despues tengo otro que te sube o baja el volumen de la makina. salu2


Sancho Mazorka  :P
En línea

Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html


Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda] Grabar sonidos
.NET (C#, VB.NET, ASP)
blaron 0 1,597 Último mensaje 18 Abril 2014, 20:15 pm
por blaron
Firefox 66 ya está disponible: bloqueo de reproducción automática de sonidos ...
Noticias
wolfbcn 0 971 Último mensaje 19 Marzo 2019, 14:37 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines