Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - gazpachu

#1
Programación de audio / Timeline Of A Direct Sound Buffer
12 de Febrero de 2004, 12:19:15 PM
 Alguien tiene alguna idea de como hacer el seeking de un buffer de direct sound ( streaming ). No vale SetCursor position.
Si alguien tiene algo de codigo por ahi, le agradecería mucho q me lo pasara...

Graciassss  ;) ciaooo
#2
Programación de audio / Streaming Con Direct Sound
05 de Febrero de 2004, 01:32:04 PM
 Problema:

Tengo una aplicación que lanza dos streams de sonido. Por separado se oyen bien y los threads hacen bien su trabajo. El problema es a la hora de mezclar los streams.... Los threads siguen haciendo bien su trabajo, lo que me lleva a pensar que tiene que ser algún problema con el Buffer Primario.

Los streams son buffers secundarios. Actualmente cada vez que creo un stream, lo hago con el siguiente codigo:

// Calculate the Notify Size for the Streaming
nBlockAlign = ( DWORD )m_pWaveFile->m_pwfx->nBlockAlign;
nSamplesPerSec = m_pWaveFile->m_pwfx->nSamplesPerSec;
m_dwNotifySize = nSamplesPerSec * 3 * nBlockAlign / NUM_PLAY_NOTIFICATIONS;
m_dwNotifySize -= m_dwNotifySize % nBlockAlign;

   // Figure out how big the DSound buffer should be
   m_dwDSBufferSize = m_dwNotifySize * NUM_PLAY_NOTIFICATIONS;

   // Set up the direct sound buffer.  Request the NOTIFY flag, so
   // that we are notified as the sound buffer plays.  Note, that using this flag
   // may limit the amount of hardware acceleration that can occur.
   DSBUFFERDESC dsbd;
ZeroMemory( &dsbd, sizeof( DSBUFFERDESC ) );

   dsbd.dwSize          = sizeof( DSBUFFERDESC );
   dsbd.dwFlags         = m_dwCreationFlags;
   dsbd.dwBufferBytes   = m_dwDSBufferSize;
   dsbd.lpwfxFormat     = m_pWaveFile->m_pwfx;

// Check Primary Buffer Capabilities
/*LPDSBCAPS DSBCaps;
ZeroMemory( &DSBCaps, sizeof( LPDSBCAPS ) );
m_pDSPrimary->GetCaps( DSBCaps );

if( DSBCaps->dwBufferBytes < dsbd.dwBufferBytes )
{*/
 //  Since the Primary Buffer is already created by the Plugin definition,
 // we don't need to create it again. Only if is smaller.
 if( FAILED ( hr = m_pDS->CreateSoundBuffer( &dsbd, &m_pDSPrimary, NULL ) ) )
 {
  return hr;
 }
// }

if( FAILED( hr = m_pDSPrimary->QueryInterface( IID_IDirectSoundBuffer8, ( LPVOID* )&m_pDS8Buffer ) ) )
{
 return hr;
}


Osea, que cada vez que creo un buffer secundario, se crea un buffer primario con las especificaciones de tamaño del buffer secundario-.----
Cuando se oyen los streams a la vez, hay problemas para mezclar el sonido, se oyen chasquidos, los streams saltan....

En fin,... sé que tiene que ser problema de como inicializo el buffer primario...

Si alguien tiene alguna idea... se lo agradecería---

Graciass!!!
#3
Programación de audio / Directmusic, Directsound..
01 de Febrero de 2004, 04:05:59 PM
 Pregunta de DirectSound:

Como se puede hacer para programar un TimeLine para la reproducción de un fichero Wav. El tema, es crear un slider que se vaya moviendo a medida que el tema musical va avanzando y que se pueda avanzar o retroceder a gusto del usuario por medio de dicho slider. Por ahora ya tengo el slider que se va moviendo ... pero ¿ como hacer para que el buffer apunte a la posición que nosotros queramos dentro del Wav??

Estoy un poco liado, y no acabo de hacerme a la idea de como hacerlo...

Alguna sugerencia? Algún código para ojear?? alguna web??? algun contacto???

Muchas Graciass! ;) (nooo)  
#4
Programación de audio / Directmusic, Directsound..
15 de Enero de 2004, 10:25:39 AM
 Alguien podría decirme la mejor forma que se le ocurre de acceder al buffer de un segmento en Direct Music y haciendo streaming del fichero.

El objetivo es conseguir los datos del buffer y el tamaño para poder aplicarle fft para crear un analizador de frecuencias.

Ya tengo hecho el osciloscopio y en analizador de espectro para los streams de grabacion y funciona perfecto, pero con la reproduccion tengo problemas para conseguir los datos del buffer...

Espero que alguien me pueda ayudar o al menos orientar un poco..

Graciassss ;)
#5
Programación de audio / Documentación Para Programar Audio
03 de Septiembre de 2003, 03:47:34 PM
 Hola Sync,

gracias por contestarme tan pronto!, realmente la aplicación que quiero programar está a medio camino entre  un videojuego ( porque van a haber modulos en 3D, 2D ), pero en cuanto al módulo de sonido, está claramente orientado a la edición y gestión de las diferentes señales de audio. Vamos..., que se parece más a un Sound Forge, que a un videojuego.

Empezaré por mirarme el SDK de Directx 9 y buscaré documentación de todo esto que me has comentado!

Estamos en contacto!  :rolleyes:

Ciaoo!
#6
Programación de audio / Documentación Para Programar Audio
03 de Septiembre de 2003, 02:26:25 PM
 Hola a todos y en especial a "synchrnzr", pues creo que eres la persona más indicada para ayudarme.

Actualmente estoy terminando un proyecto, en el cual he desarrollado un gestor de sonido con ayuda de la librería BASS. Estoy muy contento de la experiencia con esta librería, yo creo que para proyectos no comerciales es de lo mejorcito que puedes encontrar. Además, el proceso de aprendizaje es muy rápido y enseguida te acostumbras a ella.

Por otro lado, ahora se me presenta un problema... Tengo que desarrollar un módulo de sonido, que se encargue de controlar entradas, salidas, mezcla de canales, carga de sonidos, grabación a través de diferentes entradas, controlar MIDI y FireWire, y edición de samples... ( tampoco muy complicado )... Vamos en pocas palabras, desarrollar una aplicación a medio camino entre un reproductor avanzado y un SoundForge bastante "capado".

Por ello, quiero ponerme cuanto antes a empezar a estudiar todo lo necesario para poder realizar este proyecto. ¿Qué me recomendais? Empiezo a estudiar Direct Sound?, conoceis bibliografía que pueda ayudarme?, Documentación, Tutoriales, Programación de la Interface,... vamos cualquier cosa que se os ocurra, me vendría muy muy pero que muy bien, porque ahora estoy un poco perdido..  :(

Necesito aprender a programar un módulo de Audio sin ayuda de librerias! ¿Qué es lo que debo aprender? ¿Cómo lo hariais vosotros?

Muchisimas gracias por todo! Un saludo,  Pachu.





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.