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

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación Visual Basic / Re: Reproduccion de Sonidos... clamando por ayuda... en: 10 Diciembre 2005, 00:51 am
Ahora que mencionas eso, podemos encontrar una manerade solucionar mi problema. Todos los reproductores de sonidos, ( ...bueno la mayoria ), utilizan visualizaciones donde se ve reflejada la onda del sonido; como rayos hacen eso???

 Obviamente extraen la frecuencia y dibujan la gráfica con el valor de la intensidad. tambien en los ecualizadores de winamp y windows media player, en fin, cualquier tipo de ecualizador hace eso precisamente, entonces, la idea es investigar, como obtener los valores de las frecuencias de una onda WAVE. Si hay una funcion get, a fuerza que existe uan set ;) .

Quiza es ahi donde entren los tipos esos de WAVEFORM,  ( pero no entiendo que significan los parametros...  :( ), en fin, a seguirle buscando... estamos en contacto..
2  Programación / Programación Visual Basic / Reproduccion de Sonidos... clamando por ayuda... 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... )
3  Programación / Programación Visual Basic / Reproduccion de Sonidos... clamando por ayuda... 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...
4  Programación / Programación Visual Basic / 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...
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines