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

Temas - 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..
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 ;)
#4
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.