Programa seleccionar audio por programa para win 8.1?

ups!
#16 por ups! el 08/01/2014
quizá muy extremo para el estadio inicial del programa... repetimos !!! con la audiofire
Subir
ups!
#17 por ups! el 08/01/2014
lo mismo con la misma tarjeta y con diferentes programas.
Algo tengo que dejarme o estar haciendo mal.
Subir
plastamix
#18 por plastamix el 08/01/2014
Las versiones server de windows son mucho más tiquismiquis que las caseras, no creo que eso tenga que ver.

Me he instalado el driver RME y he visto lo que ya me esperaba: funciones para cargar drivers en los exes, lo que sugiere que usa el driver directamente, pasando de otras funciones y librerías.

El aparato drivers wdm tiene, dado que dices que la línea del programa parpadea, y parpadea porque tiene capturada la función de salida de onda a través de wdm. Lo que puede ser es que para hacer las comprobaciones use ese driver, y la línea parpadee, pero luego a la hora de abrir de verdad el dispositivo use otra cosa, como directx o incluso asio, que de momento no captura.

Se ve enseguida lo que sucede con el programa que ves en las capturas que he puesto, el Api Monitor de Rohitab Batra (indio tenía que ser). No sé si te animarás a usarlo (http://www.rohitab.com/apimonitor). He estado pensando cómo engañar al windows para hacerle creer que cuando enchufo un pincho wifi he enchufado una Fireface 800 para ver lo que hace pero igual es más fácil conseguir una por ahí para probar.

De momento voy a ponerle al programa que capture las funciones directx, que las usan muchos programas, e igual con eso ya no hay que hacerle más.

En el pos #12 +1 tienes tambien, abajo del todo, otro WaveOut Capture. Prueba ese a ver si suena la flauta por casualidad.
Subir
ups!
#19 por ups! el 08/01/2014
Soy un gili !!! no había visto tu última versión debajo de los gráficos. Ahora mismo hago las pruebas con ella y solo con la audiofire, dejaremos la rme para otra versión.

Me animo me animo, solo faltaría !. por cierto... que gran descubrimiento y que gran enlace el del api monitor.

Me lio con unas pruebas y te cuento.
Subir
ups!
#20 por ups! el 08/01/2014
Lo mismo.

Con la última versión que indicas y ceñido a la audiofire, sigue ignorando lo que le pongas al plastmix.

Haciendo pruebas con la integrada del pc, por excluir RME y audiofire, también lo mismo.

Me voy a mirar lo del api monitor y si ves alguna forma que te puedo ayudar, sacar logs, etc tu mismo.
Subir
ups!
#21 por ups! el 09/01/2014
He estado probando el api monitor, aún me queda cogerle el tranquillo, pero así a primeras, lo que he visto lo que he visto y cogiendo el vlc:

# Time of Day Thread Module API Return Value Error Duration
606 9:13:50.971 PM 9 libwaveout_plugin.dll waveOutGetNumDevs ( ) 22 0.0000953
620 9:13:50.971 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 0, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0013787
724 9:13:50.972 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 1, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0013795
725 9:13:50.974 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 2, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0010712
726 9:13:50.975 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 3, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0011704
727 9:13:50.976 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 4, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0013646
728 9:13:50.977 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 5, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0012273
729 9:13:50.978 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 6, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0012523
730 9:13:50.980 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 7, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0011828
731 9:13:50.981 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 8, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0011349
732 9:13:50.982 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 9, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0011669
733 9:13:50.983 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 10, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0011545
734 9:13:50.984 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 11, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0011807
735 9:13:50.986 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 12, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0011753
736 9:13:50.987 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 13, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0012040
737 9:13:50.988 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 14, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0011944
738 9:13:50.989 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 15, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0011276
739 9:13:50.990 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 16, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0009829
740 9:13:50.991 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 17, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0012199
741 9:13:50.993 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 18, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0011258
742 9:13:50.994 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 19, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0007148
743 9:13:50.994 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 20, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0008743
744 9:13:50.995 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 21, 0x058dfbc8, 84 ) MMSYSERR_NOERROR 0.0008448
745 9:13:50.996 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 4294967295, 0x058dfb74, 84 ) MMSYSERR_NOERROR 0.0002345
746 9:13:50.996 PM 9 msacm32.drv waveOutMessage ( NULL, 2053, 0, 0 ) MMSYSERR_NOERROR 0.0000445
747 9:13:50.996 PM 9 msacm32.drv waveOutMessage ( 0x00000001, 2053, 0, 0 ) MMSYSERR_NOERROR 0.0000292
748 9:13:50.997 PM 9 libwaveout_plugin.dll waveOutOpen ( 0x0049b160, 4294967295, 0x0049b164, 1719541008, 5113716, CALLBACK_FUNCTION ) MMSYSERR_NOERROR 0.0152885

Pregunta por todos los dispositivos waveout (22 en mi caso) y el último es el "Asignador de sonido Microsoft"

# Type Name Pre-Call Value Post-Call Value
1 UINT_PTR uDeviceID 4294967295 4294967295
2 LPWAVEOUTCAPS pwoc 0x058dfb74 0x058dfb74
WAVEOUTCAPS { wMid = 1908, wPid = 78, vDriverVersion = 1721395506 ...} { wMid = 1, wPid = 2, vDriverVersion = 1280 ...}
WORD wMid 1908 1
WORD wPid 78 2
MMVERSION vDriverVersion 1721395506 1280
TCHAR [MAXPNAMELEN] szPname "P" "Asignador de sonido Microsoft"
DWORD dwFormats WAVE_INVALIDFORMAT WAVE_FORMAT_1M08 | WAVE_FORMAT_1M16 | WAVE_FORMAT_1S08 | WAVE_FORMAT_1S16 | WAVE_FORMAT_2M08 | WAVE_FORMAT_2M16 | WAVE_FORMAT_2S08 | WAVE_FORMAT_2S16 | WAVE_FORMAT_44M08 | WAVE_FORMAT_44M16 | WAVE_FORMAT_44S08 | WAVE_FORMAT_44S16 | WAVE_FORMAT_48M08 | WAVE_FO
WORD wChannels 64552 2
WORD wReserved1 1421 105
DWORD dwSupport WAVECAPS_LRVOLUME | WAVECAPS_PITCH | WAVECAPS_SAMPLEACCURATE | WAVECAPS_VOLUME | 1634168896 WAVECAPS_LRVOLUME | WAVECAPS_PLAYBACKRATE | WAVECAPS_VOLUME
3 UINT cbwoc 84 84

y con este se va a reproducir.

Ahora bien si activo plastamix y api-monitor, el vlc peta justo porque esta llamada:
45 9:13:50.996 PM 9 libwaveout_plugin.dll waveOutGetDevCapsW ( 4294967295, 0x058dfb74, 84 )
devuelve todos los datos a null.

No se si te sirve mucho esto y no se como "tracear" más las llamas al api porque curiosamente con el plastamix y el apimonitor ningún programa me reproduce nada y todos petan al empezar... que raro.


En otro orden de cosas y por lo que has comentado en tu último post, estaba yo pensando...mmmmmm....

¿No te saldría más a cuenta, que plastamix ofrezca al sistema una tarjeta de audio virtual, ponemos esa como tarjeta por defecto a windows y tu dispositivo haga de proxy redirigiendo E/S de audio según tal como se configura actualmente el plastamix que me encanta ?

dime que más te puedo mirar.
Subir
plastamix
#22 por plastamix el 11/01/2014
Ya veo que te ha gustado el Api Monitor.

Con lo que has pasado se ve claramente que en ningón momento llama ninguna función fuera de la típica waveOutOpen, así que, descartando esa posibilidad, le he dado vueltas al programa y alguna cosilla he visto mal. Son cosas que un windows más antiguo tolera pero uno nuevo no. Cuanto más moderna es una versión más quisquilloso se vuelve. Me parece que ahora sí va como la seda. Antes en algún momento hacía alguna cosa rara, pero en lo que he probado ahora, no falla ni a tortas. A mí al menos, ya veremos

Con el Api Monitor debajo sigue sin funcionar. No sé si es por algún error en mi programa o porque se produce una pelea de gallitos por controlar el gallinero con daños colaterales que se lleva el pobre reproductor que pasaba por allí. Puede que sea un error mío, alguna convención de llamada, pero de momento no sé.

Lo del dispositivo virtual ya lo he pensado. Podría ser algo así como un Asio4All que dirigiera luego la salida a donde sea. La ventaja que tendría es que funcionaría exactamente igual con programas de 32 bits o 64, no como ahora, a parte de salvar otro inconveniente que tiene ahora. La desventaja es que habría que estar configurando en reproductores y windows los dispositivos de salida, mientras que ahora eso da igual, y a saber qué otro problema podría encontrarme. Pero si así funciona yo creo que es suficiente.
Archivos adjuntos ( para descargar)
WaveOut.rar
Subir
ups!
#23 por ups! el 13/01/2014
Enhorabuena!!!

Con VLC va fino fino, canela fina que se dice, no importa la salida que escojas o la tarjeta/salida que escojas (tengo varias)

Spotify, firefox/chrome se resiste, sigue sin hacer caso. "Encienden" su fila pero siguen tirando la de por defecto.

Tan solo he notado con versiones anteriores un pequeño detalle, la actualización de la lista de ejecutables, es un poco más errática ahora, le cuesta sacar la lista de programas e hijos. Por ejemplo para pillar el plugincontainer he tenido que abrir y cerrar no pocas veces el navegador. En las anteriores, incluso arrastraba el navegador a otro monitos y zas! salía en display2->......

pregunta: Esa lista, es la lista de programas en ejecución o la de programas/threads que te piden "audio".

Con respecto a la versión de dispositivo virtual, creo que tiene muchisimas ventajas, y veo que el problema que expones tiene muy facil solución, si quieres las ventajas de plastamix, ponlo como dispositivo por defecto de windows y déjale actuar.

Imagínatelo, que a futuro le pudieras colocar un vst a un par "programa/salida" sería de nota.

lo dicho, mi más sincera enhorabuena.

espero babeando tus próximas versiones si le sigues dedicando :)
Subir
plastamix
#24 por plastamix el 13/01/2014
El problema del firefox, y me imagino que del spotify y chrome también, es que usan un proceso oculto para abrir el dispositivo de salida. En el vlc, winamp, mpc, o el reproductor multimedia de windows, como no hacen eso, va a la primera.

Lo que hace el programa es ir viendo qué ventanas se crean o se activan, y los procesos ocultos no tienen por qué crear o abrir una ventana, como pasa con el skype, spotify, o todos esos que se quedan en el icono de la barra de tareas. Y ahí está el problema. Usa un hook cbt, y mientras el proceso no cree una ventana no se entera. Le estoy añadiendo otra cosilla para solucionar ese problema y de paso otro más que aún no has visto.

El programa detecta todas las ventanas abiertas, pidan audio o no.

Sí, el dispositivo virtual-driver es la leche. Con eso metes no un hook cbt o getmessage o mouse, sino un hook a la ssdt, y con eso ya haces lo que quieras, como hace un root kit o los antivirus o firewalls que se precien. Pero también hay que tener en cuenta que es mucho menos desagradable que te salga un "este programa a efectuado una operación no permitida y será interrumpido" a una explendorosa pantalla azul con un montrón de letras escritas que nadie (o casi nadie) entiende.

Lo del vst aún no lo he entendido. Sí que estoy pensando en un vst, pero no sé si va de lo mismo que dices.
Subir
ups!
#25 por ups! el 14/01/2014
Lo de los procesos ocultos me lo he imaginado, por eso te preguntaba, si la lista de programas que sacabas era la que cazabas de "procesos activos" o lo que sea que te da los principales o padres, o el matíz que sería quizá una solución rápida, si en cambio rellenabas (y cazabas) los procesos que ya que has interceptado las llamadas, de esos procesos/threads que pedian por dispositivos de audio.

Pero si tomas el camino del dispositivo "virtual" creo que de un tacazo lo solucionas todo.

El tema del vst es una virquería, pero sería una vez tengas un módulo tal cual que funcione completamente, que no es poco.

Si pudiera, esto es para nota, ser host de un vst y que pudieras vincularlo a un proceso/salida, por ejemplo para ecualizar (o lo que sea) la salida de spotify a un canal con tu vst preferido y que por ejemplo la asignación de vlc a otro canal no tenga que utilizar este vst.

Pero vamos, es que sin vst .... no sabes tu lo que acabas de crear para windows jejejeje, con lo del vst (steinberg brinda muchisima información para desarrolladores al respecto) sería ya para meterle la guinda.

yo con que funcione tal cual proxy/router de cualquiera hacia cualquiera me doy con un canto.

felicidades, no me cansaré de repetirlo.
Subir
plastamix
#26 por plastamix el 14/01/2014
Si, lo que había pensado yo de vst es eso mismo aunque de otra manera. Lo tengo ya hecho pero al revés. Ahora tengo un plugin que manda la señal de la pista en la que esté a una dll, y puedes usar esa dll en cualquier programa que hagas, de manera que reciba esa señal del daw, la proceses como quieras, y se la devuelvas al daw procesada. En vista del éxito obtenido (100 visitas - 0 respuestas en 2 meses) iba a hacer este otro.

Sería un plugin vsti que capturaría el programa reproductor, ya sea el vlc, winamp, firefox, y le mandaría la señal, en vez de al dispositivo de salida de onda, al daw. Entonces pillaría el waveOutWrite, en vez del waveOutOpen, cogería el bufer de datos que iban para el driver del dispositivo de onda, y se lo mandaría al daw, que lo recibiría como señal de cualquier instrumento vst (kontakt, batery, massive, lo que sea), y devolvería al reproductor un "todo correcto" nada más, ya que no haría falta ya que reprodujera nada, ya lo hace el daw. Una vez la señal en la pista del daw puedes procesarla exactamente igual que con cualquier otro instrumento. Puedes incluso grabarla, aunque ya sabemos todos que sólo lo harás si es legal.

Así puedes analizar una mezcla de alguien sin tener que estar descargándola, cargándola luego en el daw que la pasará a wav, y metiendo un montón de archivos en el disco duro que ya se quedarán ahí para siempre. Es coger una mitad del otro plugin, otra mitad de este programa y hacer un vsti. Una monada.
Subir
mvina
#27 por mvina el 14/01/2014
#26 me gusta la idea del capturador de reproductores, tiene buena pinta. Quedo a la espera de mas noticias, a mi gustaría para poder reproducir mp3 con cualquier programa y mezclarlo en el daw con otras pistas.
Subir
ups!
#28 por ups! el 15/01/2014
#26 ostras que bueno!

bueno, a ver a ver, ganas tengo de probar tu próxima versión, pena que no te pueda ayudar en algo, más que dándo opiniones.
Subir
Gracias a todos
#29 por Gracias a todos el 16/01/2014
Interesante; veo a gente interesante por este hilo.
Inahabitual cambio de rumbo.
Subir
1
plastamix
#30 por plastamix el 17/01/2014
#27 Para mezclar un mp3 con otras pistas es mejor pasarlo a wav, dado que hace falta buena sincronización y los reproductores no entienden mucho de eso.

#define IPC_JUMPTOTIME 106
/* (requires Winamp 1.60+)
** SendMessage(hwnd_winamp,WM_WA_IPC,ms,IPC_JUMPTOTIME);
** IPC_JUMPTOTIME sets the position in milliseconds of the
** current song (approximately). <- esto de approximately no suena muy pro en mezcla
** Returns -1 if not playing, 1 on eof, or 0 if successful
*/

El Samplitude pasa a wave sin problemas, o si no puedes usar el plugin Nullsoft Disk Writer (http://www.winamp.com/plugin/file-writer-output-plugin-v1-17c/96985).

A mí esta versión del programa me va muy bien. Tenía pensado ponerle otro sistema de enlace, creando un hilo remoto, pero iba a darse de tortas con el del hook cbt, y creo que tampoco hace falta.

Hay que tener en cuenta que para que el programa pille el plugin-container tiene que usarlo el firefox. Si lo abres y no carga una página que tenga algo que lo use, no lo activará, y no lo pillará. Si cargas una página que tenga un vídeo que vaya a reproducir el flash player (no hace falta que sea porno el vídeo), enseguida lo pilla. Al menos a mí me hace eso, tanto en 2003 como 2012. También hay que tener en cuenta que una vez pillado le das a grabar, lo carga nada más arrancar el programa, y ya no tiene que buscarlo más.

Spotify no tengo, y no he podido probarlo, pero en skype o messenger va bien.
Archivos adjuntos ( para descargar)
WaveOut.rar
Subir
Hilos similares
Nuevo post

Regístrate o para poder postear en este hilo