Arxiu

Arxiu per a novembre, 2009

Google Wave

dilluns, 30 de novembre de 2009 1 comentari

Queréis saber que es google wave? mirad éste vídeo, aunque necesitaréis investigar un poco más. En todo caso éste es uno de las mejores diálogos de la historia del cine y el vídeo es genial.

Categories: Aplicacions, Web Etiquetes:,

Detectar solicitud AJAX con PHP

dijous, 26 de novembre de 2009 Comentaris desactivats

Si queréis detectar las solicitudes AJAX mediante PHP podéis hacerlo mediante la variable HTTP_X_REQUESTED_WITH:

/* Verificamos si hay ajax  */
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
	/* Contenido ajax */
}else{
	/* Contenido normal */
}

Id con cuidado porque algunos servidores no proporcionan la variable HTTP_X_REQUESTED_WITH, así que haced alguna prueba antes de ir con toda la confianza a usarlo directamente en vuestra aplicación 😉

Categories: Programació, Web Etiquetes:, ,

Sintesis modular (Parte 1)

dimecres, 25 de novembre de 2009 Comentaris desactivats

Este artículo proviene del audioblog, clausurado por su desuso y cuyas entradas han sido movidas a este blog para que no se pierdan en el olvido.

Entrada escrita originalmente por 909.

Para empezar, le daremos un repaso rápido a lo que en si un sinteizador modular, ya que quizas sea la primera vez que te encuentres con este tipo de “cacharros”.

Mirando por la red he encontrado la siguiente definición que creo que La definición de la naturaleza propiamente dicha de la síntesis modular es la modulación del flujo.

Otra de las claves de la defición, es que, los sintetizadores modulares son instrumentos que no son fijos en la forma en que la mayoría de los sintetizadores son. Sus propietarios estan continuamente añadiendo y cambiando módulos, cambiar el alcance y enfoque de su sistema, dependiendo de sus gustos y objetivos actuales.

Visto que este tipo de sintetizadores se construyen apartir de modulos, veamos los diferentes modulos que podemos encontrar. Los principales para la construcción de uno modular serían: VCO, VCA, VCF, EG y/o LFO. Luego puedes encontrar modulos de efectos, secuenciadores, logic gates, modulos Sync (de MIDI a CV), glides, re-triggers y un largo etcetera de modulos.

  • VCO: Corresponde al oscilador. Este modulo es el encargado de generar una nota a una frecuencia concordante a la tecla que hayamos tocado de nuestro teclado, con un tipo de onda. (Sinoidal, sierra, cuadrada, etc)
  • LFO: Coresponde al oscilador de baja frecuencia. Este oscilador altera el tono de una manera periodica del oscilador principal, produciendo el vibrato.
  • VCA: Corresponde al amplificador. Este amplificador es el que aumenta la amplitud de la onda. (Recordad, que todas estas ondas son eléctricas, es decir hasta que no pasa por un altavoz no transforma en “algo” audible.)
  • EG: Corresponde al generador de envolventes. Cuando una tocas una tecla, se dispara una señal que llega a este, que provoca una tensión para controlar la onda del amplificador. Al controlar la onda del VCA provaca la genreación de lo que se denomina ADSR (Attack, Decay, Sustain y Release). Aunque también podemos encontrar otras varientes, como por ejemplo: AHDSR (Attack, Hold, Decay, Release) este tipo envolvente es lo podemos encontrar en los famosos Korg MS-20, aunque las verdaderas estrellas de dicho sintetizador son los filtros.
  • VCF: Corresponde a los filtros. El filtro recorta harmonicos de la onda que genera el oscilador, antes de pasar por el VCA. Existen muchos tipos de filtros, como por ejemplo: HP, BP, LP y/o Comb.

Para que no suene tanto a chino, en el siguiente diagrama podemos observar el esquema básico de un sintetizador:

Esquema sintetizador

Para empezar, antes de ir con la elección de los modulos, hay que ver las principales características de los fabricantes de sintes modulares ( formatos, voltaje, tipo de conexiones etc ). Ya que puede darse el caso que se compre un modulo super-chulo pero que es incompatible con el votlaje o con el formato del propio modulo. En la siguiente tabla, se puede observar las caracteristicas de varios fabricantes.

Marca Formato Conexiones Web
Cwejman Eurorack Jack 3,5mm www.cwejman.net
Doepfer Eurorack Jack 3,5mm www.doepfer.de
Analogue Solutions Eurorack Jack 3,5mm www.analoguesolutions.com
Plan B Eurorack Jack 3,5mm www.ear-group.net
Paia Frac Jack 3,5mm www.paia.com
Livewire Electronics Eurorack Jack 3,5mm www.livewire-synthesizers.com
Tip Top Eurorack Jack 3,5mm www.tiptopaudio.com

El formato Eurorack, basados en los bastidores Rack, es el formato standar a dia de hoy. Esto queda palpable en las dimensiones de los compresores, croosovers que podaís ver en cualquier fiestas, clubs o estudios de audio, por ejemplo, o en la informatica para albergar servidores. Las medidas del formato se basan basada en las espeficaciones definadas en la EIA-310 . El ancho esta normalizado, siempre es de 19″, recordemos que 1″(pulgada) = 2,54cm .·. 19″ = 48,26cm. Mientras que la altura viene determinada por la altura propia del aparato. Para unificar los fabricantes crearon una unidad rack, U,que determina la altura del aparato. Hay aparatos que requieren solo 1U, como ejemplo, una Motu 828 y otras que necesitan varios “slots”como por ejemplo los servidores normalmente necesitan 4U. Esta medida U = 1,75″ = 2,54 cm. Por lo que si nos dicen que el modulo son 4U, la conversión sería así: Si 4U = 7″ ? 4U = 10,16cm . Los modulos que venden para estos sistemas de son de 3U, ya que, las columnas de los racks se distrubuyen cada 3U.

Una vez vista las caracteriticas propias de cada fabricante, llega la gran pregunta: ¿Qué queremos que haga nuestro modular? Al ser un sintetizador creado por modulos indepedendientes, a nivel físico, entre ellos, podemos crear des de una caja de ritmos, o un procesador de señal externa, o sintetizador puro y duro. En este caso vamos usarlo tanto para crear sonidos propios, como para la modificación de una señal externa que le entre al modular.

A modo de curiosidad-ejemplo, un modular hecho para funcionar como caja de ritmos. Como se puede observar se han susituido los componentes/modulos de un sintetizador (VCO, VCA) por modulos que contienen los samples con los sonidos de la caja. Por experencia propia, estas cajas son las más divertidas con las que me he podido encontrar, quien tenga cualquier modelo de las cajas Vermona DRM, lo sabe. 😉Modular Drum Machine

OSCILADOR CONTROLADO POR VOLTAJE – VCO:

El VCO, el corazón de un sintetizador, es un circuito electrónico que tiene una señal de salida, cuya frecuencia depende del valor de la amplitud de una tensión de entrada. Un módulo de VCO típico proporciona simultáneamente diferentes tipos de formas de onda a sus salidas. Las formas de onda más comunes son: Sinoidal, cuadrada, triángular y diente de sierra (sawtooths), llegando algunos incluso a proporcionar estas ondas invertidas, e incluso sawtooths no invertidas.

Como se puede observar en la imagen un VCO standar tiene las siguientes entradas CV simultáneas:

  • Una entrada 1Volt/octave utilizado conjuntamente con un teclado o un secuenciador salida CV.
  • Una entrada de frecuencia modulada (FM) lineal,con un knob para atenuar, aunque también se puede dar el caso de que se incluya también una entrada exponencial, con un potenciametro para atenuar.
  • Una entrada de Pulse Width Modulation (PWM).
  • Una entrada de sincronización .
  • En algunos casos, en este modulo Doepfer no esta presente, existe un knob adicional llamado Fine Tuning para los ajustes discretos de la frecuencia.

AMPLIFICADOR CONTROLADO POR VOLTAJE – VCA:

·Modo lineal : f(g) = k · v c | g = ganancia; v = el voltage; k= constante de augmento. (El valor que damos al girar el knob gain)

·Modo exponecial : f(g) = k v· c | g = ganancia, v = el voltage, k= constante de augmento.

Función modo exponecial y lineal de un VCA

Vista la representación gráfica de las dos funciones para expresar el como aumenta la ganacia respecto al modo (función) que utilizemos ; saquemos las conclusiones al respecto.

Como se puede observar , en el modo linear el aumento de la ganancia es contastante respecto al voltage que se le de. Mientras que en modo exponecial, al ser una función donde uno de los valores del polinomio esta elevado a un valor, en este caso respecto al voltage, la función se vuelve parabolica, por lo que el aumento de la ganacia no será constante. Si dejamos el tema modular a un lado, y miramos las propiedades de la parabola que crea podemos sacar la siguiente conclusión para el modo exponecial: A mayor valor del voltage más rápido crece la ganacia. Como curiosidad este tipo de funciones, Exp o Lin, también se da en las diversas fases de las envolventes e incluso pueden llegar a dar una respuesta negativa o postiva.

Para hacerlo más “visual”; En este caso más audible :P. He echado mano de mi Dave Smith Evolver para que se pueda apreciar la diferencia “practica” de los dos modos.

GENERADOR DE ENVOLVENTES – EG:

Un generador de envolvente es un circuito que genera una señal susceptible de controlar algún parámetro dentro de un sistema de síntesis. Normalmente, un EG se dispara con un evento note on , y por lo general, ataca a un VCA, a un VCF, etc.

Una cosa que me gustaría dejar claro antes de ponerse con lo que es una envolvente. Cabe decir que la envolvente no es solo un termino de sintesis, ya que, los DAW’s basan las automatizaciones en envolventes. O por ejemplo, al pasar una señal de un kick por un compresor, un ataque largo dejará pasar los transitorios iniciales, y el sonido global será más impactante, porque el sonido empieza a comprimir más tarde que con un ataque corto.

Apostillado este comentario, veamos los parámetros de una envolvente ADSR:

Attack: Es el tiempo que la envolvente tarda en llegar desde el nivel cero hasta el nivel máximo.

Si una envolvente se usa para afectar a la amplitud, entonces el ataque es el tiempo que transcurre desde que una tecla es presionada hasta que el sonido alcanza su nivel máximo de volumen. Estos tiempos son de unos cuantos milisegundos, y entre mas corto sea, mas percusivo será el sonido, entre mas largo sea, mas suave será el sonido.

Decay: Es el tiempo que la envolvente tarda en descender desde su nivel máximo hasta el nivel de sostenido, el cual también es definido por la envolvente.

Sustain: A diferencia de los otros parámetros de una ADSR, el sustain no es tiempo, sino un nivel. Es el nivel que conservará la envolvente mientras esté activa. En la mayoría de sintetizadores y samplers esto significa que el sustain es el nivel que la envolvente mantendrá mientras la tecla esté presionada.

Release: Es el tiempo que la envolvente tarda en descender desde el nivel de sustained, hasta el nivel. Normalmente, una envolvente pasa por su etapa de relajación después de que la tecla presionada es liberada.

Este tipo de envolvente no es una norma, pero si la más comun, ya que se pueden dar muchas tipos de envolventes. Ya que podemos encontrar des de la AD (Attack-Decay) tipica de los instrumentos naturales, una flauta, como la anteriormente mencionada AHDSR (Attack-Hold-Decay-Sustain-Release) de los Korg Ms-20, o la ADSD (Attack-Decay-Sustain-Decay) de los Minimoog. Esta última no tiene un valor de release, sino que el valor del decay sirve tanto para el propio decay, como para el release.

Para ver como funciona un ciruicto del EG, he cogido el modelo de la página (http://sam.atlantes.org/eg.html)
eg1
Cuando le entra una tensión por la entrada GATE, la entrada TRIGG del circuito mutilfuncional 555 pasa a nivel bajo a través del colector del transistor bipolar. Cuando dicha tensión es superada, provoca que la salida Q (salida 3) del integrado se ponga a nivel alto durante un tiempo. Es esta salida la que cierra el interruptor CMOS formado por los pines 1, 2 y 13 del conmutador y que provoca una carga suave del condensador situado en el pin 6. Esta rampa de carga corresponde con el attack de la envolvente. Cuando el período de temporización termina (cuando el pin 6 alcanza un valor máximo), la salida Q pasa a nivel bajo, provocando que el interruptor 10,11,12 se abra y se conecte así el interruptor 3,4,5. Este interruptor provoca una descarga del condensador (decay) hasta que éste alcanza el nivel de voltaje determinado por el divisor de tension de sustain. El circuito se mantiene en este estado hasta que la entrada GATE vuelve a nivel bajo, momento en el cual el interruptor 6,8,9 se cierra y provoca una descarga total del condensador, el release.

De todos los VCO’s que corren por el mercado, he decido coger el Z3000 de la marca Tip Top. He escogido el Tip Top, por que es compatible con los diferentes modulos de la marca Doepfer, ya que algunos modulos serán de dicha marca. Una de las principales opciones que hizo decidirme por un par de estos osciladores Z3000 es la posibilidad de tener dos tipos de entradas de datos para la generación de una onda. Por una parte el oscilador es capaz de responder a frecuencías y por otro lado es capaz de entender datos musicales, como lo son las octavas y las notas. Veamos un poco las espeficaciones de este VCO:

Tipos de VFC:

Categories: General Etiquetes:

Bestiario digital spaces

dilluns, 23 de novembre de 2009 Comentaris desactivats

Bestiario is a Barcelona/Lisbon based company dedicated to data dynamic representation and to the creation of digital spaces for the collective creation of knowledge. Our slogan is: ‘making the complex comprehensible.’ We combine art and science to design and create interactive information spaces. We developed a powerful framework based on graph theory, topological algorithms, physic models, geometrical and geographical representations.

bestiario

Categories: Web Etiquetes:, ,

Instalación de CakePHP sin base de datos

dilluns, 23 de novembre de 2009 Comentaris desactivats

Si queréis hacer una aplicación de CakePHP sin utilizar conexión a base de datos podéis hacerlo mediante la creación de un nuevo datasource.

En el directorio /app/models/datasources/dbo/* cread un fichero llamado dbo_sin_conexion.php con el siguiente contenido:

* Nota: es posible que el directorio dbo tampoco exista y tengáis que crearlo.

<?php // /app/models/datasources/dbo/dbo_sin_conexion.php
class DboSinConexion extends DboSource
{
	function connect()
	{
		$this->connected = true;
		return $this->connected;
	}
	function disconnect()
	{
		$this->connected = false;
		return !$this->connected;
	}
	function isConnected()
	{
		return true;
	}
}

Ahora modificad vuestro fichero database.php (en /app/config/) para indicarle que utilizaremos este fichero para “conectarnos a la base de datos”:

<?php // /app/config/database.php
class DATABASE_CONFIG {

	var $default = array('driver' => 'sin_conexion');
}

Y listo, ya tenemos CakePHP funcionando sin conexión a la base de datos :)