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

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [SOLUCIONADO] ¿Como modificar el nivel de audio (ganancia) de un archivo wav?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO] ¿Como modificar el nivel de audio (ganancia) de un archivo wav?  (Leído 4,410 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.818



Ver Perfil
[SOLUCIONADO] ¿Como modificar el nivel de audio (ganancia) de un archivo wav?
« en: 13 Julio 2013, 05:46 am »

Pues eso, si alguien me puede explicar como puedo modificar la ganancia de un Wav...

En un form reproduzco un Wav que lo tengo como archivo de Recurso (my.resources.wave), lo que quiero es poder ajustar el nivel de audio de este Recurso para reproducirlo con un nivel más bajo del máximo (1.000f = Máximo).

Se supone que con la librería NAudio se puede conseguir esto, pero sólo he llegado hasta aquí:
Código
  1. Public wavefile As New NAudio.Wave.WaveFileReader("C:\Archivo.wav")

la class tiene miles de métodos y no son nada claros para mi, no sé como hacerlo.

Si alguien conoce otro método para conseguir esto no tiene importancia, no dependo de dicha librería, sólo es que ...es lo único que he encontrado sobre el tema.





Aquí tienen la Lib, por si alguien puede ayudar echándole un vistazo:
http://naudio.codeplex.com/
PD: Los ejemplos son en C#,
hay una "demoApp" que hace exáctamente lo que quiero, pero todo el code es demasiado Pro para mi nivel a la hora de intentar trasladar lo que necesito a VB.



Creo que la parte interesante del source de la Demo está aquí:

Código
  1.        namespace NAudioDemo.AudioPlaybackDemo
  2.  
  3.        this.fileWaveStream = plugin.CreateWaveStream(fileName);
  4.        var waveChannel =  new SampleChannel(this.fileWaveStream, true);
  5.        this.setVolumeDelegate = (vol) => waveChannel.Volume = vol;
  6.        waveChannel.PreVolumeMeter += OnPreVolumeMeter;
  7.  
  8.        var postVolumeMeter = new MeteringSampleProvider(waveChannel);
  9.        postVolumeMeter.StreamVolume += OnPostVolumeMeter;
...Obviamente falta mucho más código necesario, pero es que es muy, muy, muy extensa.

Saludos


« Última modificación: 13 Julio 2013, 09:00 am por EleKtro H@cker » En línea

OmarHack


Desconectado Desconectado

Mensajes: 1.268


Ver Perfil
Re: ¿Como modificar el nivel de audio (ganancia) de un archivo wav?
« Respuesta #1 en: 13 Julio 2013, 06:57 am »

No es justo lo que buscas pero te ayudará:
http://stackoverflow.com/questions/12609782/play-audio-files-wav-in-vb-net-w-volume-control



En línea

I like to test things.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.818



Ver Perfil
Re: ¿Como modificar el nivel de audio (ganancia) de un archivo wav?
« Respuesta #2 en: 13 Julio 2013, 09:00 am »

No es justo lo que buscas pero te ayudará:

Era justo lo que necesitaba :), Gracias @OmarHack.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.818



Ver Perfil
Re: [SOLUCIONADO] ¿Como modificar el nivel de audio (ganancia) de un archivo wav?
« Respuesta #3 en: 13 Julio 2013, 10:18 am »

Listo:

Código
  1. Play_Sound(my.resources.WavFile)

Código
  1.    ' Play Sound
  2.    Private Sub Play_Sound(ByVal Sound As IO.UnmanagedMemoryStream)
  3.        Dim Wave1 As New NAudio.Wave.WaveOut
  4.        Wave1.Init(New NAudio.Wave.BlockAlignReductionStream(NAudio.Wave.WaveFormatConversionStream.CreatePcmStream(New NAudio.Wave.WaveFileReader(Sound))))
  5.        Wave1.Volume = Soundvolume ' Single num
  6.        Wave1.Play()
  7.    End Sub
En línea

OmarHack


Desconectado Desconectado

Mensajes: 1.268


Ver Perfil
Re: [SOLUCIONADO] ¿Como modificar el nivel de audio (ganancia) de un archivo wav?
« Respuesta #4 en: 13 Julio 2013, 16:30 pm »

Por si te interesa la clase volumen alterna los valores normales de entre 0 y 100 con  0 y 1. Es decir: Soundvolume = 1; 'valor máximo normal
Soundvolume = 0; 'valor mínimo

Lo que no sé es si pones: Soundvolume = 2; 'Te doblará el sonido o se ajustará al máximo normal?

Me alegro de que sirva. :)
En línea

I like to test things.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.818



Ver Perfil
Re: [SOLUCIONADO] ¿Como modificar el nivel de audio (ganancia) de un archivo wav?
« Respuesta #5 en: 13 Julio 2013, 17:38 pm »

Lo que no sé es si pones: Soundvolume = 2; 'Te doblará el sonido o se ajustará al máximo normal?

No se puede doblar el volumen :P, al menos no con la Class de los Waves, con la Class de los MP3 no lo sé, aunque me imagino que será igual.

Saludos
En línea

OmarHack


Desconectado Desconectado

Mensajes: 1.268


Ver Perfil
Re: [SOLUCIONADO] ¿Como modificar el nivel de audio (ganancia) de un archivo wav?
« Respuesta #6 en: 13 Julio 2013, 18:56 pm »

Intenta buscar el ecualizador del vcl a ver si lo encuentras entre tanto código.
http://download.videolan.org/pub/videolan/vlc/2.0.7/vlc-2.0.7.tar.xz

Seguramente mirando su funcionamiento puedas recrear algo similar.
Suerte!
En línea

I like to test things.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayudaaaaa no se como Modificar el contenido de una linea de un archivo de texto
Programación General
luiggi1990 0 2,235 Último mensaje 11 Octubre 2011, 02:16 am
por luiggi1990
subir nivel de audio en video
Multimedia
maxmag 3 5,311 Último mensaje 18 Noviembre 2011, 17:19 pm
por Eleкtro
Nivel administrador en archivo y problema de arranque
Análisis y Diseño de Malware
illuminat3d 6 3,889 Último mensaje 7 Abril 2016, 15:13 pm
por illuminat3d
Nivel del volumen de audio
Multimedia
Zorronde 6 6,936 Último mensaje 12 Abril 2023, 16:20 pm
por MCKSys Argentina
MOVIDO: Nivel del volumen de audio
Software
Songoku 0 1,298 Último mensaje 12 Abril 2023, 12:57 pm
por Songoku
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines