Algoritmos a palo seco
También valdrían aplicados a alguna plataforma en concreto, siempre que no se ponga solo una screen del programa en cuestión... mínimo que se explique su funcionamiento someramente, para no tener que saber 20 lenguajes o dominar 15 softwares distintos
Todo esto viene porque ultimamente he necesitado un par de algoritmos (stereo y filtros de los llamados "resonators"), y a parte de ficheros concretos de plataformas concretas, encontré muy poca cosa y casi todo en KVR. Y oye, KVR está muy bien, pero si ya buscar en una página taan grande es un coñazo, pues si está en inglés peor. Además, que por muy grande que sea no todo está ahí, a veces incluso te encuentras el vst pero no cómo hacerlo.
En fin, si no hay ganas pues ya se irá el hilo pal fondo del foro
Saludos.
Música: http://www.hispasonic.com/noxLP
Reaktor 6ª parte: http://www.hispasonic.com/blogs/primeros-pasos-reaktor-6-parte/2822
La educación es muy bonita y es gratis.
El respeto es muy caro...
http://www.musicdsp.org/
(en la lengua del imperio)
Saludos
...so I can fuck the world for 72 hours
Por cierto, me olvidaba que también necesitaba ruido rosa, y buscando encontré http://www.firstpr.com.au/dsp/pink-noise/ , que es una discusión sobre dos métodos para generarlo: pasando ruido blanco por un LPF de 3db/octava, con dos problemas, primer problema hacer este filtro, porque siempre se ven filtros de 2, 4, 8... db/octava, no de 3, y segundo que el cómo de "rosa" sea el ruido generado, depende directamente del filtro; y otro método que consiste en añadir osciladores de ruido blanco uno encima de otro, si no recuerdo mal, bajando octavas a los osciladores.
A ver si esta tarde pongo algo más, para empezar con buen pie el hilo.
Saludos.
Música: http://www.hispasonic.com/noxLP
Reaktor 6ª parte: http://www.hispasonic.com/blogs/primeros-pasos-reaktor-6-parte/2822
La educación es muy bonita y es gratis.
El respeto es muy caro...
Yo estoy metiendole mano a Pure Data armando los patchs directamente, pero creo que estaria bueno pensarlos primero en "papel y lapiz" para despues traducirlos a PD (como para ver las cosas de otro modo).
Voy a estar atento y si puedo aporto
Saludos
De todas formas, voy a poner un par de ejemplillos para hacer cosas típicas, que son fáciles de encontrar (incluso en la wikipedia inglesa, que no es tan mala pa estas cosas, por cierto) y de hacer, para que se vea un poco más claro.
Vibrato: Por pura lógica, si tienes acceso al pitch el vibrato se hace modulando el pitch con un LFO. Pero si no tienes acceso al pitch original, por ejemplo si estás haciendo un efecto a tiempo real para cualquier fuente de audio como un sinte hard o un sample, conectas la fuente de sonido a un delay, y modulas el tiempo de retardo con un LFO. De esta forma, la velocidad del vibrato es igual a la velocidad del LFO, y la cantidad de vibrato igual a la cantidad de modulación del LFO.
Filtro Comb: Se consigue añadiendo a la señal original, la misma señal retardada unos cuantos milisegundos (yo suelo dejarlo entre 0 y 30). Los milisegundos que se retarda la señal son el cutoff del filtro, la cantidad de señal retardada que añades (feedback de toda la vida) es la resonancia. Además puedes hacer 2 tipos de filtro comb, uno retardando la señal original pura y sumando, y otro retardando la señal ya sumada y volviendo a sumar... con las imágenes que aparecen en la wikipedia se entiende mejor, y además está toda la parafernalia matemática.
No son algoritmos matemáticos tal cual (sinceramente, a esta hora acabo de levantarme de una mega siesta
Saludos.
Música: http://www.hispasonic.com/noxLP
Reaktor 6ª parte: http://www.hispasonic.com/blogs/primeros-pasos-reaktor-6-parte/2822
La educación es muy bonita y es gratis.
El respeto es muy caro...
Música: http://www.hispasonic.com/noxLP
Reaktor 6ª parte: http://www.hispasonic.com/blogs/primeros-pasos-reaktor-6-parte/2822
La educación es muy bonita y es gratis.
El respeto es muy caro...
Así todo voy a probar a darle un último empujón con un post que ha surjido en los foros de reaktor de NI (http://www.native-instruments.com/forum/showthread.php?t=149876) que ha provocado mi curiosidad, donde se pedía una manera de obtener la frecuencia de un sonido, por ejemplo de un sample vocal, con alguien cantando vamos.
Yo, si bien es verdad que he leído del tema en algún foro, no tengo ni idea de lo que puede decir la teoría sobre esto, así que pensándolo un poco, directamente hice una core cell en reaktor que cuenta los samples que tarda la onda en cruzar 0, y dividiendo la sample rate entre el número de samples debería obtenerse la frecuencia.
En la práctica esto funciona... con un par de peros:
1 La frecuencia obtenida siempre tiene pequeñitas variaciones sobre la real, algo como lo que los guiris llaman "jitter". Por ejemplo si la frecuencia es 440, el resultado siempre va variando entre distintos decimales de 439/440/441.
2 Para ondas simples no debería haber problema, pero si la onda es un pizco diferente de lo normal (prácticamente todas), no va a cruzar el 0 un mismo número de veces en cada ciclo, una lo cruzara 2 veces y otra 6...
El primer problema lo resolví haciendo una media de los distintos valores, concretamente crei lo más correcto hacerlo por medias móviles (modelo ARIMA si lo buscáis en la wikipedia), así que hice una simplificación de dicho modelo y se acabó el "jitter" completamente en ondas simples, dando un resultado estable. El problema que tiene esto es que las medias móviles necesitan un poco de tiempo para estabilizarse, así que si hay cambios rápidos de frecuencias (una melodía un poco más rápida de lo normal), acaba haciendo cosas raras.
El segundo problema todavía no lo he resuelto... simplemente le puse un knob para controlar ese número de veces que la onda debe cruzar 0, y efectivamente hay que cambiarlo según el tipo de onda. Por ejemplo cuando usas una onda simple de un oscilador de reaktor, con 2 veces que cruze 0 reconoce la frecuencia perfectametne, sin embargo usando un sample que tengo en el HD de un violín manteniendo un Do4 hay que ponerlo a 3
En fin... ¿Alguna idea, referencia para leer, comentario?
Saludos.
Música: http://www.hispasonic.com/noxLP
Reaktor 6ª parte: http://www.hispasonic.com/blogs/primeros-pasos-reaktor-6-parte/2822
La educación es muy bonita y es gratis.
El respeto es muy caro...
De paso si alguien lo encuentra en i-net porfa que pegue el link para descargarlo, ahí sale practicamente todo.
"the computer music tutorial"
Curtis Roads
http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=8218
Honestamente a mi parecer es el mejor que hay sobre esto.
Música: http://www.hispasonic.com/noxLP
Reaktor 6ª parte: http://www.hispasonic.com/blogs/primeros-pasos-reaktor-6-parte/2822
La educación es muy bonita y es gratis.
El respeto es muy caro...
De esa forma, pregunta respeusta, sabremos que poner, personalmente tengo mucha info, pero no sé como o por donde empezar a entregarla
P.D. Este año aprendo a realizar convolución en tiempo real, busquen sobre convolución en el sonido, es bastante entrete e interesante, a penas lo maneje bien lo posteo
Nox escribió:obtener la frecuencia de un sonido
http://en.wikipedia.org/wiki/Pitch_detection_algorithm
Yo uso un algoritmo basado en autocorrelación en "Orfeo y los Argoflautas":
http://vagar.org/wordpress/?tag=orfeo-y-los-argoflautas&lang=es
Si usas un algoritmo temporal y quieres más resolución siempre puedes sobremuestrear la señal (intercalas ceros y metes un filtro paso bajo).
Están muy buenos tus sonidos en Csound Dan_Vates. Porfa no pidas una "copia para libre descarga" de un libro que sabemos que no es gratuito en un foro público, pones en riesgo a toda la comunidad. Mal, mal, mal, mal...
arte en proceso http://www.sonidiario.wordpress.com
#10 Es una buena idea, el problema es que alguien tiene que venir a preguntar
Por cierto, lo de la convolución es algo que me ha intrigado siempre. A lo mejor es que no termino de entender el concepto, pero no le veo la utilidad práctica
Lo que me sorprende es que en la wikipedia diga que es un tipo de media móvil
#11 Ya no estoy con lo de detectar la frecuencia, pero así todo es interesante, nunca pensé que se pudiera hacer mediante correlación. De todas formas, por pura curiosidad y ya que lo has usado, ¿cómo lo haces? ¿desplazas la señal original en una frecuencia determinada, si hay autocorrelación esa es la frecuencia de la onda y si no hay vas aproximando?
Lo de sobremuestrear la señal lo leí en un artículo en algún blog en inet, si no recuerdo mal incluso daba coeficientes para el filtro, pero los filtros son una asignatura que tengo pendiente, más que nada por desinterés... es que ya hay tantos disponibles
#12 Los he visto Ardot
Saludos.
Música: http://www.hispasonic.com/noxLP
Reaktor 6ª parte: http://www.hispasonic.com/blogs/primeros-pasos-reaktor-6-parte/2822
La educación es muy bonita y es gratis.
El respeto es muy caro...
Después para hacer el proceso eficiente algorítmicamente aplico una batería de optimizaciones más o menos sofisticadas, pero ésa es la base.