22 noviembre, 2008

Teclado MIDI en Linux

Hace unos años compré este teclado MIDI (MK-3701) en ebay. Es un teclado puramente MIDI, no tiene altavoz ni genera sonido alguno. Para utilizarlo es imprescindible conectarlo a un puerto MIDI como el que tenían las tarjetas de sonido antiguas.
Por otro lado tengo un PC viejo con una tarjeta de sonido Avance Logic ALS120 (semi-compatible con Sound Blaster 16).


  • La primera opción era conectar directamente el teclado al sintetizador OPL3 de la tarjeta (mediante rosegarden). Pero por alguna razón no me funciona.
  • La segunda opción era usar un sintetizador software (timidity) y utilizar la salida PCM. El problema es el uso de CPU (es un PC que tiene bus ISA...) y la calidad de sonido (esta tarjeta parece funcionar en 8 bits).
  • La opción que me da mejor resultado es usar mi flamante portátil para sintetizar el sonido. Para ello tengo que enviar el protocolo MIDI por la red (al principio probé con rosegarden y multimidicast).
La forma más sencilla y eficiente de enviar los eventos MIDI por la red es usar las herramientas de ALSA:

Primero ejecuto esto en el PC antiguo que tiene el teclado:
aseqnet &       # Lanzar el servidor MIDI en red
aseqdump -l # Listar los dispositivos disponibles (16:0 Avance Logic, 128:0 Net Client)
aconnect 16:0 128:0 # Conectar la entrada del teclado al servidor MIDI.

A continuación ejecuto esto en el portátil:
aseqnet 192.168.1.10 &      # Conectar a la IP del servidor MIDI
timidity -iA -Os1 -B 2,3 & # Lanzar el sintetizador software (Fijarse que le asigna el nº 128:0)
aseqdump -l # Listar los dispositivos disponibles (129:0 Net Client)
aconnect 128:0 129:0 # Conectar el cliente MIDI con el sintetizador

Tras esto ya puedo tocar el piano con baja latencia y alta calidad de sonido.

Si algo falla lo primero es comprobar que el sonido se esté enviando por la red: ejecutar ambos comandos aseqnet y medir el tráfico en la red al pusar las teclas (debe subir a ~1 KB/s).

20 octubre, 2008

Tira #13: Manifestación

Vale, es un juego de palabras muy tonto.

Todas las tiras. Feed RSS de todas las tiras

Spam de nueva generación

Si el spam fuera en 3D sería así (no doy más pistas).

19 octubre, 2008

Tecla de inicio sin logotipo de windows

¿Por qué los teclados tienen que traer el logotipo de un sistema operativo, si además en muchos casos el ordenador no tiene ese sistema? Afortunadamente existe el disolvente universal para remediar esta incongruencia.
Basta empapar un bastoncillo de los oídos en disolvente y frotar la tecla. Luego secar con un pañuelo de papel. Hay que tener cuidado, la propia tecla se puede llegar a disolver, aplicar el disolvente en pequeñas cantidades y secar enseguida.



Teclado modificado en 2005



Teclado HP modificado en 2008 (comparado con un teclado original)

Publicidad original: Regreso a los precios del pasado II

Pues nada, que iba por la calle y me encuentro esta obra de arte tirada en el suelo:
Regreso a los precios del pasado

24 julio, 2008

Ascensor a punto de explotar

¿Qué pasa cuando un ascensor se moja por una gotera en el techo?

¡Pues que se vuelve loco!

12 julio, 2008

Zoom en el applet java de camaras Axis.

Las cámaras Axis soportan distintos métodos de visualización:
- Stream MJPG. Soportado nativamente en Firefox, pero no en IE.
- Control ActiveX. Por defecto sólo soportado en IE.
- Shockwave Flash (SWF).
- JPG/Javascript.
- Applet Java.

Desde el menú de configuración de algunos modelos podemos encontrar ejemplos de código HTML/Javascript para incrustar el video en una web externa, que incluyen el código para detectar el navegador.

Una de las formas más universal de incrustar el video es mediante un applet Java. El problema es que el applet no ofrece, en principio, opciones para ajustar la imagen a un tamaño no estándar. Sin embargo, mediante ingeniería inversa (JODE) encontramos que existen varios parámetros no documentados, entre ellos uno para hacer zoom.

String string_16_ = getParameter("ama_zoom");
if ( string_16_ == null )
...
if ( string_16_.equals("auto") )
...
if ( string_16_.equals("free") )
...
else
...


Así que a nuestro applet añadimos esto para que el contenido se ajuste a la ventana:
<PARAM NAME="ama_zoom" VALUE="free">


Aquí una forma sencilla de obtener todos los parámetros del applet:
strings MediaApplet.class | grep ama_

04 junio, 2008

Tender la ropa con lluvia

La idea es muy sencilla: usar una funda de plástico impermeable sobre la ropa tendida. Sin embargo, en la práctica no es tan sencillo lograr un resultado aceptable por dos razones:

  • Un plástico mal colocado puede provocar bolsas de agua y hacer que se acabe cayendo.
  • Un plástico demasiado pegado a la ropa puede provocar condensación de agua y que tarde una semana en secar (y huela mal).
Por eso, lo mejor que se me ha ocurrido es hacer una estructura con perchas sobre la cuerda de tender.
En mi caso me viene especialmente bien porque tengo 2 cuerdas paralelas, una encima de la otra.


Este es el modelo de percha ideal, cuanto más grande mejor. Es necesario partirla por debajo para colocarla en la cuerda.




A continuación colocamos pinzas para sujetarla. Recomiendo colocar 4 en este orden:



Luego colocamos el plástico encima:



Y finalmente nos aseguramos de que todo está bien sujeto y sin puntos de entrada de agua. Ponemos más pinzas en las uniones de los extremos:



Para aprovechar mejor el espacio podemos tender la ropa en perchas. No recomiendo poner las perchas perpendiculares a la cuerda, sino más bien oblicuas, y así no sobresalen de la vertical del plástico.
Usamos más pinzas para fijar la posición y orientación de las perchas:
El resultado es bastante aceptable, muy recomendable para pisos de 30m2 donde no caben tendederos de interior.