rvega / instrumento-escuela-experimentos

Instrumento musical pedagógico versión web para la Escuela de Experimentos de Medellín Vive la Música.
GNU General Public License v3.0
0 stars 0 forks source link

Web Audio API es la tecnología adecuada para client-side? Cuales navegadores? #2

Closed rvega closed 9 years ago

rvega commented 10 years ago

Issue by rvega Saturday Oct 11, 2014 at 21:46 GMT Originally opened as https://github.com/rvega/casaDeExperimentos/issues/2


Para este tipo de apps hay 3 opciones: 1. Un applet de Java, 2. Una pelicula de flash y 3. Web Audio API.

La opción 1 yo la descartaría por obvias razones. La 2 tambalea al no ser abierta y no estar soportada para dispositivos móviles pero es válida. La 3 es abierta, estándar y es el "estado del arte" pero vamos a tener inconvenientes con algunos navegadores. Internet Explorer 11 no soporta nada, Chrome, Firefox y Safari desktop dicen que sí pero probando la prueba de concepto que hice en Linux Chrome y Linux Firefox, firefox funcionó re-mal.

Creo que lo mas sensato es irnos con la opción 3, reportar bugs a los desarrolladores de el o los navegadores que decidamos soportar y que la vida siga :)

De acuerdo?

Cuales navegadores queremos/debemos soportar? Touch screens? Moviles?

rvega commented 10 years ago

Comment by son0p Sunday Oct 12, 2014 at 13:38 GMT


Otra opción podría ser tener ChucK (o PD, o cualquier motor de audio) en el servidor y usar la web como control y devolver un streaming ogg o mp3? una leve ventaja es sería más incluyente en cuanto a navegadores, una desventaja importante es que quizá el rollo de multiusuario sea muy complejo de manejar.

rvega commented 10 years ago

Comment by rvega Monday Oct 13, 2014 at 20:50 GMT


Si, esa también es una opción. Una dificultad grande sería la escalabilidad del servidor:

20 instancias de PD haciendo síntesis aditiva ocupan mi computador (2 cores i7 @ 2,7GHz) al 70% de CPU. En términos de ancho de banda, si tenemos un stream de 44.1KHz, monofónico, a 16 bits, necesitamos un poco mas de 700Kbits/seg por usuario (sin comprimir, comprimido digamos que se reduzca el ancho de banda en un factor de 10, osea 70Kbps ). Para soportar 100 usuarios simultáneos, necesitaríamos entonces algo así como 7Mbits/seg y 5 cores de CPU, ese es un servidor + conexión a internet bastante caro. Luego vienen 100 usuarios mas y plop! :(