¿Qué dice Angular? 🦊

Rate this content
Bookmark

Estamos muy acostumbrados a generar resultados visuales con código, pero a menudo nos sorprende escuchar que también podemos crear música de la misma manera. ¿No lo sabías? No estás solo. Aunque la idea de programar música es más antigua que todos nosotros, este concepto aún es bastante desconocido para muchos desarrolladores. ¡Pero no por mucho tiempo! Vamos a arrojar algo de luz sobre la programación musical en nuestras aplicaciones web diarias utilizando Angular.

FAQ

La Web Audio API es una tecnología avanzada que permite no solo reproducir pistas de audio, sino también crear, modificar y analizar sonidos directamente en el navegador. Funciona como un sintetizador, permitiendo a los desarrolladores manipular fuentes de audio como micrófonos, osciladores o pistas de audio.

En aplicaciones web que utilizan Angular, se puede integrar la biblioteca ToneJS para gestionar audio. Por ejemplo, se puede instalar ToneJS con npm, crear un componente de instrumento en Angular, y utilizar elementos de ToneJS como 'synth' y 'sampler' para reproducir y modificar sonidos, como en el caso de crear un instrumento que reproduzca notas a partir de muestras de sonidos de animales.

ToneJS es una biblioteca de JavaScript recomendada para trabajar con audio en la web. Es especialmente útil en la creación, modificación y reproducción de audio utilizando la Web Audio API. Se recomienda su uso para facilitar la manipulación de audio en aplicaciones web, como se menciona en la documentación de MDM.

Para crear un instrumento musical en una web utilizando Angular, primero se instala la biblioteca ToneJS. Luego, en el componente de Angular, se itera sobre una serie de notas en el HTML, y se usa un método como 'playNode' para activar notas específicas a través de un elemento de ToneJS como 'synth'. Esto permite reproducir cualquier tono deseado.

Con ToneJS, se pueden agregar diversas modificaciones a un instrumento, como filtros o diferentes tipos de sintetizadores y osciladores. También permite la creación de instrumentos únicos usando muestras específicas, como en el caso de un instrumento que reproduce sonidos de gatos o perros ajustados al tono correcto.

ToneJS ofrece varias herramientas para manipular audio, incluyendo diferentes tipos de sintetizadores, 'polysynth', elementos para reproducir notas predefinidas como 'part', y efectos como filtros automáticos para crear ondulaciones. Además, permite controlar aspectos como el tempo y la velocidad del audio, adaptándose a las acciones del usuario.

Laura Silvanavičiūtė
Laura Silvanavičiūtė
8 min
18 Jun, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La charla de hoy trata sobre cómo usar Angular, Web Audio API y ToneJS para crear sonidos e instrumentos personalizados en una aplicación web. El orador demuestra cómo crear un contexto de audio, conectar fuentes y agregar filtros para modificar los sonidos. Explora diferentes elementos en la biblioteca ToneJS, como sintetizadores, partes, ruido y pistas de audio, para mejorar la experiencia del usuario. La charla también muestra instrumentos que reproducen muestras de gatos y perros según la altura del tono. En general, destaca las posibilidades de utilizar estas tecnologías para crear experiencias de audio únicas e interactivas en aplicaciones web.

Available in English: What Does The Angular Say? 🦊

1. Introducción a los Sonidos de Angular y Web Audio API

Short description:

Hola a todos. Hoy quiero mostrarles los sonidos de Angular utilizando Web Audio API y ToneJS. Podemos crear nuestros propios sonidos, modificarlos y utilizar los navegadores como sintetizadores. Para hacer esto, necesitamos crear un contexto de audio, conectar fuentes como micrófonos u osciladores, y agregar filtros si es necesario. ToneJS es una biblioteca recomendada para esto. Demostraré cómo usar ToneJS en una aplicación web de Angular para crear nuestro propio instrumento.

Hola a todos. Soy Laura. Soy una desarrolladora front-end en Swedbank, y hoy quiero mostrarles los sonidos de Angular. O en otras palabras, responder a la pregunta, ¿qué dice Angular? ¿Qué quiero decir aquí? Estamos muy acostumbrados a generar visualizaciones para el código pero a menudo nos sorprendemos de que también podamos hacer lo mismo para la música. Podemos codificar música.

Y si exploramos todas las posibilidades en la web, eso no es nada nuevo. También tenemos diferentes formas de manejar la música en la web. Pero hoy quiero centrarme en la forma más sofisticada de hacerlo en la actualidad, que es la Web Audio API. ¿Y por qué es tan genial? La Web Audio API no solo nos permite reproducir una pista de audio. La Web Audio API nos permite crear nuestros propios sonidos modificarlos y analizarlos también. Básicamente nos permite utilizar los navegadores como sintetizadores.

¿Cómo funciona eso? Si tenemos alguna aplicación para eso, necesitaríamos crear el contexto de audio. Y todo va a suceder allí. Crearíamos las fuentes. Eso puede ser tu micrófono, eso puede ser tus osciladores, o también pueden ser pistas de audio. Y luego necesitaríamos conectar eso al destino, que generalmente son solo los altavoces. Si deseas agregar algunas modificaciones como filtros, eso sucedería en el medio. Y, por supuesto, hay ayudantes para eso. Porque nosotros, los desarrolladores, amamos las bibliotecas. Y también hay bibliotecas para eso. Una de ellas es ToneJS. ToneJS incluso se recomienda si estás leyendo sobre la Web o la API en la documentación de MDM. Y hoy voy a mostrarles una demostración rápida de cómo podemos usar ToneJS en nuestra aplicación web utilizando Angular. ¿Qué tengo aquí hasta ahora? Acabo de instalar la biblioteca Tone con el símbolo npm install. También tengo el componente de instrumento. Como entenderán, hoy crearemos nuestro propio instrumento. En HTML, simplemente itero a través de una serie de notas. Y en el evento de clic, llamo al método playNode. En el propio componente, tomo el elemento symf de la biblioteca Tone. Y en el método playNode, simplemente activo esa nota exacta con una duración de 1 octavo.

2. Explorando Modificaciones y Diferentes Elementos

Short description:

Increíblemente, con solo unas pocas líneas de código, creamos un instrumento capaz de reproducir cualquier tono. Pero no nos detendremos ahí. Vamos a explorar algunas modificaciones para hacer nuestro instrumento más único. Tenemos el instrumento Katiana que reproduce muestras de gatos según el tono correcto. Sorprendentemente, fue mucho más fácil de lo esperado con la ayuda de la biblioteca ToneJS. También tenemos el elemento sampler, que nos permite asignar muestras al tono correcto. Y no juzgues demasiado pronto, porque he creado algo especial: el instrumento doggyana, que reproduce muestras de perros. Hay muchos elementos diferentes en esta biblioteca, incluyendo sintetizadores, partes, ruido y pistas de audio, que pueden mejorar la experiencia del usuario.

¿Cómo se ve y suena eso? ¿Cómo se ve y suena eso? Increíblemente, con esas pocas líneas de código, creamos el instrumento que es capaz de reproducir cualquier tono que desees. Pero no nos detendremos aquí porque hasta ahora, solo estamos usando sonidos predeterminados. Y para eso, pensé en agregar algunas modificaciones para hacer nuestro instrumento un poco más único.

Tenemos este instrumento llamado Katiana que reproduce muestras de gatos pero aún según el tono correcto. Y honestamente, me sorprendió lo fácil que es hacerlo con la biblioteca ToneJS, porque en mi imaginación, pensé que tendría que cambiar cada muestra por mí misma y luego simplemente asignarla con la ayuda de la biblioteca Tone. Pero resultó ser mucho más fácil que eso. Echemos un vistazo.

Tenemos otro elemento de la biblioteca Tone, se llama el sampler. Y para la inicialización del sampler, tuve que proporcionar la muestra original de gato, que está aquí. Y luego asignarla al tono correcto. Así que entender qué estaba cantando el gato, esa fue la parte difícil. Pero no se necesitó nada más para proporcionar. Todos los demás ajustes los hizo la biblioteca misma. Y puedes ver eso en la reproducción de la nota ahora que estoy activando el sampler y el sintetizador juntos.

Ahora, algunos de ustedes pueden pensar, instrumento de sonido de gato, información súper útil. Pero no me juzguen demasiado pronto. Porque para aquellos pocos de ustedes, fui un paso más allá. Y creé algo más, algo especial. Este es el instrumento doggyana, que reproduce muestras de perros según el tono correcto. Pero no solo eso. Hay muchos elementos diferentes y no quiero abrumarlos con muchos detalles, pero solo una visión general rápida de lo que puedes usar en esta biblioteca. Comencemos con diferentes sintetizadores, antes estaba usando synth y ahora ves que tengo polysynth también. Puedo proporcionar diferentes parámetros como diferentes osciladores, cuadrados, senos, etc. Luego está la parte, que es un elemento que te ayuda a reproducir notas predefinidas con un instrumento predefinido. Aquí estoy tomando, por ejemplo, acordes incluso de archivos constantes separados y luego tengo el bucle encima de todo y así sucesivamente. Luego, otro elemento es el ruido, el ruido aquí no lo estoy reproduciendo directamente, estoy agregando el filtro, el filtro automático que hace un efecto de ondulación y luego volviendo a lo básico, tengo algunas pistas de audio que reproduzco al azar y los parámetros generales están cambiando el tempo, la velocidad del micrófono, la velocidad del micrófono y acelerando un poco, así que hay muchos elementos diferentes que puedes usar según las acciones de los diferentes usuarios y usualmente cuando pensamos en el desarrollo de front-end, nuestro enfoque completo está solo en las partes visuales, a veces olvidamos por completo que tenemos la posibilidad de audio en el desarrollo, pero por favor sepan que a veces el audio correcto realmente puede enriquecer nuestras visuales y de esta manera podemos crear el siguiente nivel user experience en el desarrollo. Y con esto, quiero terminar. Si quieres ver música en vivo codificando usando javascript y sony pi, puedes ver mis charlas anteriores en YouTube y muchas gracias por escuchar y que tengas una gran conferencia!

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

El Viento y las Olas: La formación de Olas de Framework desde el Epicentro
JSNation 2022JSNation 2022
20 min
El Viento y las Olas: La formación de Olas de Framework desde el Epicentro
Top Content
¿Qué haces cuando eres un framework que ha sobrevivido e innovado en dos Olas de Framework de JavaScript, y ves la nueva ola creciendo en la distancia? Innovas. En esta charla, exploramos el panorama del Framework de JavaScript, y algunas de las principales características competitivas que hemos visto. Exploraremos lo que Angular está introduciendo hoy y hacia dónde nos dirigimos en el futuro.
Momento Angular
JSNation 2023JSNation 2023
22 min
Momento Angular
En esta charla aprenderás todo sobre el renacimiento que Angular ha estado experimentando. Primero, analizaremos cómo el framework adoptó la reactividad detallada con señales para mejorar su rendimiento en tiempo de ejecución por órdenes de magnitud.
Luego nos sumergiremos en la aplicación de un enfoque similar de carga de código detallada para hacer que todo se cargue más rápido. Al final, aprenderás sobre las herramientas que puedes aprovechar para implementar todo esto en tus aplicaciones.
Diseño Dirigido por Dominio con Aplicaciones Vue
Vue.js London 2023Vue.js London 2023
14 min
Diseño Dirigido por Dominio con Aplicaciones Vue
Top Content
Introducción al Diseño Dirigido por Dominio- ¿Qué es DDD?- Principios clave de DDD- Beneficios de usar DDD en el desarrollo de aplicaciones webModelado de Dominio en Aplicaciones Vue 3- Cómo diseñar e implementar modelos de dominio en Vue 3- Estrategias para integrar la lógica de dominio con el modelo de datos reactivo de Vue y la arquitectura basada en componentesMejores Prácticas para Implementar DDD en Vue 3- Estrategias para organizar el código de una manera que siga los principios de DDD- Técnicas para reducir el acoplamiento entre la lógica de dominio y la lógica de la aplicación- Consejos para probar y depurar la lógica de dominio en las aplicaciones Vue 3
Cómo compartir código entre una aplicación web de React y una aplicación móvil de React Native en Monorepo
React Summit 2022React Summit 2022
7 min
Cómo compartir código entre una aplicación web de React y una aplicación móvil de React Native en Monorepo
Por lo general, crear aplicaciones web y móviles requiere diferentes conjuntos de tecnologías, y es bastante difícil compartir código. Esta charla mostrará cómo agregué una aplicación web de React y una aplicación móvil de React Native en el mismo monorepo utilizando Nx, y cómo optimicé el intercambio de código entre la aplicación web de React y la aplicación móvil de React Native.
La próxima ola de frameworks web es BYOJS
JSNation 2022JSNation 2022
23 min
La próxima ola de frameworks web es BYOJS
El desarrollo de aplicaciones web ha tenido muchos cambios a lo largo de la vida de la web. Desde aplicaciones del lado del servidor con un toque de JavaScript hasta aplicaciones de una sola página construidas completamente con JavaScript. Ahora estamos volviendo a donde muchos nuevos frameworks web se construyen primero de forma estática, con JavaScript agregado según sea necesario. Esta charla cubre la construcción de aplicaciones web con JavaScript a través de la lente de Astro, un generador de sitios estáticos donde la elección del framework de JavaScript es única para ti.
Cargadores de datos: Mejorando la obtención de datos en Vue
Vue.js Live 2024Vue.js Live 2024
30 min
Cargadores de datos: Mejorando la obtención de datos en Vue
La obtención de datos es una parte crítica de las aplicaciones web modernas. Es un problema complejo que ha sido (parcialmente) resuelto de muchas formas diferentes. En esta charla, exploraremos la nueva API de Cargadores de Datos para Vue Router, cómo se compara con las soluciones existentes y cómo puede simplificar en gran medida la obtención de datos en tus aplicaciones Vue.

Workshops on related topic

Comienza con AG Grid Angular Data Grid
JSNation 2022JSNation 2022
116 min
Comienza con AG Grid Angular Data Grid
WorkshopFree
Stephen Cooper
Stephen Cooper
Comienza con AG Grid Angular Data Grid con un tutorial práctico del equipo principal que te guiará a través de los pasos para crear tu primera cuadrícula, incluyendo cómo configurar la cuadrícula con propiedades simples y componentes personalizados. La edición de la comunidad de AG Grid es completamente gratuita para usar en aplicaciones comerciales, por lo que aprenderás una herramienta poderosa que puedes agregar de inmediato a tus proyectos. También descubrirás cómo cargar datos en la cuadrícula y diferentes formas de agregar representación personalizada a la cuadrícula. Al final del masterclass, habrás creado y personalizado una cuadrícula de datos AG Grid Angular.
Contenido:- comenzando e instalando AG Grid- configurando ordenamiento, filtrado, paginación- cargando datos en la cuadrícula- la API de la cuadrícula- agregar tus propios componentes a la cuadrícula para representación y edición- capacidades de la edición de la comunidad gratuita de AG Grid
Microfrontends con Module Federation y Angular
JSNation Live 2021JSNation Live 2021
113 min
Microfrontends con Module Federation y Angular
Workshop
Manfred Steyer
Manfred Steyer
Cada vez más empresas eligen Microfrontends. Sin embargo, no son fáciles de implementar. Afortunadamente, Module Federation introducido con webpack 5 ha iniciado un cambio crucial de dirección.
En este masterclass interactivo, aprenderás de Manfred Steyer, Angular GDE y Colaborador de Confianza en el equipo de Angular, cómo planificar e implementar arquitecturas de Microfrontend con Angular y el nuevo Module Federation de webpack. Hablaremos sobre compartir bibliotecas y conceptos avanzados como manejar desajustes de versión, Module Federation dinámico e integración en monorepos.
Después de los ejercicios individuales, tendrás un estudio de caso que podrás utilizar como plantilla para tus proyectos. Este masterclass te ayuda a evaluar las opciones individuales para tus proyectos.
Prerrequisitos:Debes tener algo de experiencia con Angular.
Accesibilidad web en aplicaciones JavaScript
React Summit 2022React Summit 2022
161 min
Accesibilidad web en aplicaciones JavaScript
Workshop
Sandrina Pereira
Sandrina Pereira
A menudo vemos que JavaScript daña la accesibilidad de un sitio web. En esta masterclass, aprenderás cómo evitar errores comunes y cómo utilizar JS a tu favor para mejorar la accesibilidad de tus aplicaciones web.
En esta masterclass exploraremos múltiples ejemplos del mundo real con problemas de accesibilidad, y aprenderás cómo hacer que funcionen para las personas que utilizan un mouse o un teclado. También aprenderás cómo se utilizan los lectores de pantalla, ¡y te mostraré que no hay razón para tener miedo de usar uno!
Únete a mí y déjame mostrarte cómo la accesibilidad no limita tus soluciones o habilidades. ¡Al contrario, las hace más inclusivas!
Al final, serás capaz de:- Comprender los principios de WCAG y cómo están organizados- Conocer casos comunes en los que JavaScript es esencial para la accesibilidad- Crear enlaces, botones y elementos conmutables inclusivos- Utilizar regiones en vivo para errores y estados de carga- Integrar la accesibilidad en el flujo de trabajo de tu equipo de inmediato- Darte cuenta de que crear sitios web accesibles no es tan difícil como parece ;)
Construye una Biblioteca Universal de Datos Reactiva con Starbeam
JSNation 2023JSNation 2023
66 min
Construye una Biblioteca Universal de Datos Reactiva con Starbeam
WorkshopFree
Yehuda Katz
Yehuda Katz
Esta sesión se centrará en los bloques de construcción universales de Starbeam. Usaremos Starbeam para construir una biblioteca de datos que funcione en múltiples frameworks.Escribiremos una biblioteca que almacene en caché y actualice datos, y admita relaciones, ordenación y filtrado.En lugar de obtener datos directamente, funcionará con datos obtenidos de forma asíncrona, incluidos los datos obtenidos después de la representación inicial. Los datos obtenidos y actualizados a través de web sockets también funcionarán bien.Todas estas características serán reactivas, por supuesto.Imagina que filtras tus datos por su título y luego actualizas el título de un registro para que coincida con el filtro: cualquier resultado que dependa de los datos filtrados se actualizará para reflejar el filtro actualizado.En 90 minutos, construirás una increíble biblioteca de datos reactiva y aprenderás una nueva herramienta poderosa para construir sistemas reactivos. La mejor parte: la biblioteca funciona en cualquier framework, incluso si no piensas en (o dependes de) ningún framework al construirla.
Tabla de contenidos- Almacenar un registro obtenido en una celda- Almacenar múltiples registros en un Mapa reactivo- La iteración reactiva es una iteración normal- El filtrado reactivo es un filtrado normal- Obtener más registros y actualizar el Mapa- La ordenación reactiva es una ordenación normal (¿se está volviendo un poco repetitivo?)- Modelar la invalidación de la caché como datos- Bonus: relaciones reactivas
Construye aplicaciones Web3 con React
React Summit 2022React Summit 2022
51 min
Construye aplicaciones Web3 con React
WorkshopFree
Shain Dholakiya
Shain Dholakiya
El masterclass está diseñado para ayudar a los desarrolladores Web2 a comenzar a construir para Web3 utilizando el Hyperverse. El Hyperverse es un mercado abierto de módulos inteligentes construidos por la comunidad, auditados y fáciles de descubrir. Nuestro objetivo es hacer que sea fácil para los desarrolladores de React construir aplicaciones Web3 sin escribir una sola línea de código de contrato inteligente. Piensa en 'npm para contratos inteligentes'.
Aprende más sobre el Hyperverse aquí.
Repasaremos todos los conceptos básicos de blockchain/crypto que necesitas saber para comenzar a construir en el Hyperverse, por lo que no necesitas tener ningún conocimiento previo sobre el espacio Web3. Solo necesitas tener experiencia en React.