Os voy a contar un truco muy sencillo -pero muy útil- para quitar la voz a vuestras canciones favoritas con Audacity, y de esta forma poder hacer el ridículo en karaokes improvisados, malograr con vuestra voz versiones apócrifas de canciones o iniciaros en el mundo de los mashups ;-)

Lo primero que necesitamos es una canción en WAV o cualquier formato que entienda el Audacity (MP3 puede valer). Yo he elegido “Hotel California” de “The Eagles”, por ejemplo.

Una vez abierta con el Audacity, veremos que es una canción stereo, con dos canales:

Si usamos el zoom, podremos ver la forma de la onda en cada uno de ellos y cómo son ligeramente diferentes:

Nos basaremos en el siguiente principio para eliminar la voz: si sumas una onda y su versión invertida, la anulas. Dado que la voz es mono (suele haber un solo cantante con una sola boca) normalmente, estará copiada igual en los dos canales, así que al invertir uno y sumarlo con el otro, se anulará.

¿Cómo hacemos esto? Muy fácil, separamos la pista stereo en dos canales mono:

Seleccionamos solamente una de las pistas:

Y aplicamos el efecto de inversión:

Finalmente volvemos a juntar los canales en una pista estéreo:

Y exportamos el resultado a un MP3.

Si lo hemos hecho bien, tendremos una versión de “Hotel California” en la que no se escuchará la voz y podremos arruinarla con nuestros alaridos.

Realmente este método no es perfecto y si nos fijamos bien, todavía quedará algún resto de la voz en nuestro MP3. Esto es debido a los filtros y efectos de post-producción que se emplean para mejorar las canciones, que no afectan por igual a los dos canales y por tanto dejan trazas que no se anulan al sumar una onda con su inversa. En algunas canciones estos efectos son tan extremos que la voz permanece totalmente audible después de emplear este método ;-(

Una vez eliminada la voz, podemos pensar en cómo se haría para quedarnos solamente con la voz y juntar la voz a la música sin voz de otra canción para inventar nuevas y estrambóticas versiones de música comercial. ¿Se os ocurre cómo podría hacerse? ;-)

Soy un usuario de la versión para Firefox Echofon desde hace tiempo y hasta la versión 2.3.6 todo fue gozo y alegría. ¿Qué ocurrió en la versión 2.4 para amargarme la existencia? En su changelog se ven muchas mejoras, pero la última -que no caracterizaría de mejora precisamente- es la que desencadena todo mi malestar:

  • Ad supported by 140proof

Supongo que para Echofon sí que será una mejora, pero para el usuario resulta realmente molesto tener que leer tweets de cuentas que hemos decidido no seguir porque solamente publican spam.

Durante cierto tiempo, practiqué la táctica de “Virgencita, virgencita, que me quede como estoy” y me mantuve en la versión 2.3.6 a salvo de spam. Lo malo es que esa versión no está soportada en versiones más modernas de Firefox, por lo que seguir así me dejaba anclado en el pasado no solamente para Echofon, sino para todo lo demás.

Indagando por la red encontré dos soluciones bastante buenas para usar las nuevas versiones de Echofon sin anuncios.

La primera de ellas consiste en abrir el fichero que contiene el código JavaScript con la función encargada de importar los anuncios y “anularla”. El procedimiento es muy sencillo:

  1. Accedemos a nuestro perfil de firefox. En Linux está en $HOME/.mozilla/firefox/[LETRASyNUMEROS].default/ y en Windows en C:\Users\[USER]\AppData\Roaming\Mozilla\Firefox\Profiles\[LETRASyNUMEROS].default\.
  2. Entramos en el subdirectorio “extensions” y ahí, si tenemos Echofon instalado, debería haber otro subdirectorio “/twitternotifier@naan.net”. Entramos en él y una vez dentro, entramos en el subdirectorio “components”.
  3. Una vez allí, editamos el fichero nsEchofon.js y buscamos la función getAd.
  4. Borramos el contenido de la función y lo reemplazamos por esto:
  getAd: function(info) {
    this._pref.setBoolPref("licensed", true);
    EchofonUtils.notifyObservers("removeAds");
  },

Y ya está :-)

La pega que tiene este método es que habrá que reemplazar la función getAd cada vez que se actualice el Echofon.

El otro método es algo menos directo pero aún así me parece muy efectivo. Además, pueden combinarse y estar doblemente a salvo del spam. En este caso, lo que vamos a hacer es invisibilizar mediante CSS el contenido de la caja de texto de spam. De esta manera, aunque la función getAd siga trayendo el contenido no deseado a nuestro Echofon, a la hora de mostrarlo se hará de forma invisible, con lo que no lo leeremos :-)

Para ello, tenemos que acceder a nuestro perfil de Firefox (ver paso 1 del método anterior) y entrar en el subdirectorio “chrome”. Una vez ahí, creamos el fichero “userChrome.css” donde indicaremos nuestras preferencias personales para CSS, con este contenido:

#echofon-ad-unit {
display: none !important;
}

Así, cuando se llene ese elemento de publicidad, nuestro navegador no lo mostrará porque hemos indicado que su propiedad display esté a “none”. Sin embargo, como comentan en el sitio donde tradujeron el primero de los métodos, esto no evitará que se mande información nuestra a 140 Proof y Google Analytics, así que sigue siendo recomendable llevar a cabo también el primero método.

Happy tweeting ;-)

Estos últimos días estoy teniendo un problema a la hora de usar claws-mail con Gmail (en Deusto tenemos el correo con Google Apps for Education, así que lo tengo que usar sí o sí) porque cada cierto tiempo (1-2 años) Gmail renueva sus certificados SSL para sus servidores de correo.

Esto no debería suponer el mayor problema, pero al no renovar todos los certificados a la vez, durante unos días algunas conexiones van servidores con el certificado SSL antiguo y otras al nuevo. Cuando claws-mail detecta el cambio de certificado, nos avisa de que deberíamos comprobarlo y aceptarlo, así que en esos días inmediatamente posteriores al cambio, hay que estar aceptando certificados a cada rato lo cual es un peñazo fino.

Revisando en foros y en la documentación de claws-mail he dado con la solución: hay que habilitar la opción “unsafe_ssl_certs” dentro del fichero de configuración, ya que no hay ninguna opción para hacerlo desde el interfaz gráfico de claws-mail.

Así, si sufrís este incordio como yo, no tenéis más que editar el fichero ~/.claws-mail/clawsrc, ir a la línea donde se encuentra la opción unsafe_ssl_certs y fijarla a 1:

unsafe_ssl_certs=1

Esto no deshabilita la comprobación del certificado, como pudiera parecer (esa opción es skip_ssl_cert_check), sino que permite almacenar varios certificados para cada servidor, lo que coincide perfectamente con el caso en el que nos encontramos ;-)

Aprovechando las ganas que tiene la gente de ayudar a través de las redes sociales, hace unos días me animé a “socializar” un encargo que me habían hecho: crear un listado de canciones tranquilas (no necesariamente baladas) en euskera. Así que tomo prestado el verso de Ruper Ordorika “kantu leunak nahi nituzke jarri” (me gustaría poner canciones suaves) para titular esta entrada :-)

La respuesta de la gente ha desbordado mis expectativas y el listado que en pocas horas generamos es el siguiente:

Mil gracias a toda la gente que ha contribuido :-) (@matalaz, @saghul, @n61, @fuanis, @_buxus, @irenetxiki, @AitorArechabala, @Uhernand, @josianito, @azetaekis, @suzzlo, @jabiluengo, @josianito, @ilis, @itzitxo, @ikerbrk, @ibai, @chambertuX, @cyrusnimda, @Eneko_McCracken, @aizenar, @_izartxo_, @Inselafor, @jjontx, @jaimeirurzun, etc.)

Por supuesto, tenéis a vuestra disposición los comentarios de esta entrada para seguir contribuyendo con más recomendaciones ;-)

Esta semana he estado muy involucrado en dos eventos que me encantan: la MoodleMoot (Jornada de encuentro de la comunidad Moodle) y SLUN (Software Libre en la Docencia). En ambos eventos he participado en la organización e impartiendo talleres :-)

Resulta que a raíz del taller que dí en SLUN sobre Scratch, un asistente me preguntó cómo se llevan Moodle y Scratch y cómo de fácil es embeber proyectos de Scratch en Moodle. La respuesta es sencilla y basta con fijarse en el código que genera la propia web de Scratch para ello, pero para que la gente que no se maneja bien con HTML no se líe, he creado este pequeño generador de código HTML para embeber proyectos de Scratch donde sea.

Para usarlo, solamente tienes que poner la dirección del proyecto Scratch que quieres embeber y pulsar en el botón de generar código. Automáticamente se generará el código necesario y se incluirá en esta página para comprobar que el código generado es correcto.

Qué lo disfrutéis ;-)





Hoy verás este texto en decenas de blogs. Si estás de acuerdo con él, reprodúcelo donde consideres oportuno.

Ante la previsible aprobación de la polémica “Ley Sinde”, los periodistas, bloggers, usuarios, profesionales y creadores de Internet seguimos manifestando –como hicimos en el Manifiesto de 2 de Diciembre de 2009- nuestra firme oposición a una norma que incluye modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet.
En principio no parece de recibo que un Gobierno en funciones adopte esta decisión en su último o uno de sus últimos Consejos de Ministros. Sería doblemente grave que se confirmaran las presiones ejercidas por EEUU, a través de su embajada en Madrid, como revelaron los cables de Wikileaks.
En todo caso insistimos en estos razonamientos:
1.- Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.
2.- La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.
3.- La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.
4.- La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.
5.- Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.
6.- Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.
7.- Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.
8.- Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.
9.- Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.
10.- En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

Creo que hay bastantes cosas que estoy haciendo y que no estoy contando en el blog, así que voy a empezar a ponerlas por aquí, aunque sea de forma desordenada en el tiempo, por si os resultasen de interés.

El pasado mes de septiembre participé en los Cursos de Verano de la EHU/UPV invitado por la gente de Tabakalera para hablar de la “cultura de la remezcla” dentro de un curso sobre “content curators”, un rol que muchos realizan en esta sobre-informada sociedad aunque no conozcan tan rimbombante nombre.

Fue muy agradable participar en el curso. La organización fue impecable y la gente que participó muy animada. Además tuve el placer de compartir viajes con Venan Llona, todo un lujo. Lo pasé muy bien.

Si queréis saber lo que conté, estáis de suerte, porque está todo grabado. Ojo, que es un vídeo de un poco más de una hora. Avisados estáis ;-)

PABLO GARAIZAR – CONTENT CURATOR from Tabakalera on Vimeo.

La presentación que utilicé está colgada en Slideshare:

Y si preferís la prosa a las artes escénicas, aquí tenéis este borrador sobre el tema:

Todo ello publicado con licencias libres, claro, para que lo remezcléis a gusto ;-)

This plugin is based on Youtube Brackets plugin by Robert Buzink (which is, in turn, based on Quicktime posting plugin by Shawn Van Every), and works in the same way.

WordPress.com doesn’t allow embedding Slideshare code directly, but using a bracket-based syntax is permitted. Here you are an example:

[s1ideshare id=5936296&doc=aprendices-tedxbilbao-101127134340-phpapp01]

If you have migrated your blog from WordPress.com to a standalone WordPress.org based one, and your posts are likely to have embedded Slideshare presentations, this plugin may be helpful :-)

Download Slideshare Brackets 1.0.

La última entrada por aquí fue hace un añito exactamente, lo que significa que este blog ha estado un año entero en barbecho :-D

No, no es este el típico post disculpatorio diciendo que pronto volveré a la carga y tal y cual, sino todo lo contrario. Desde su nacimiento, este espacio nunca ha sido un blog sino una manera cómoda de ir recopilando las cosas que hacía relacionadas con la informática y que quería que estuvieran accesibles desde Internet para toda la gente interesada en ellas.

¿Significa esto que no he hecho nada relacionado con la informática en 2010? Sí y no. Claro que he hecho cosas, pero no tan originales como para merecer un artículo por aquí :-D

Bueno, pensándolo un poco mejor, igual cuelgo cómo migré el blog de un wordpress.com a un wordpress.org (nada nuevo) y me tuve que apañar un plugin para WordPress para que me reconozca los tags entre corchetes típicos de wordpress.com para embeber contenido externo. El plugin en concreto embebe presentaciones de Slideshare y es el que me faltaba, porque para Youtube ya hay otros plugins que hacen esto mismo bastante bien. De hecho, el mío de Slideshare no es más que un search&replace de uno que había para Youtube que a su vez era otro search&replace de otro plugin para QuickTime… viva el software libre :-D

Pues nada, que paséis buena noche y que 2011 sea un poco mejor que 2010 ;-)

Me he pasado unas cuantas horas intentando descargar un vídeo en Flash para no depender de mi conexión a Internet cuando quiera volver a verlo. Con Firefox no suelo tener mayor problema en hacerlo gracias a Video Download Helper, una extensión que a golpe de click te resuelve la papeleta casi siempre. Pero el caso de esta tarde quedaba fuera de los dominios de Video Download Helper, porque no se trataba de un vídeo en Flash (FLV) descargado desde la web (HTTP), sino del típico esquema reproductor multimedia en Flash + streaming de vídeo por RTMP.

En concreto, mi “reto” era descargar la entrevista de Stephen Colbert a Lawrence Lessig (os la recomiendo, muy buena ;-) ).

Buscando en gúguel llegué a páginas bastante desactualizadas que me hablaban de infinidad de programas para Win32 como GetFLV o ReplayAV que terminé probando en Wine y en una máquina Windows con VirtualBox, con poco éxito.

Cada vez que pulsaba el botón de play, mi frustración iba en aumento, porque tenía claro que “si se puede ver, se puede descargar”. Así que con el típico enfoque “moscas a cañonazos” que predomina en el recetario de este humilde blog, terminé dando con lo obvio (aunque como dijo Lacan: “Lo obvio suele pasar desapercibido, precísamente por obvio”, también procede el más castizo refrán: “vistos los cojones, toro”): capturar todo, buscar URLs en la captura y descargarlas.

Manos a la obra:

1. Captura de tráfico

Para capturar el tráfico, nada como el viejo tcpdump a todo trapo:

tcpdump -i eth0 -p -s 0 -w captura.pcap
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
^C7042 packets captured
7042 packets received by filter
0 packets dropped by kernel

2. Búsqueda en la captura

Para buscar, probamos con grep:

grep -i rtmp captura.pcap
Coincidencia en el fichero binario captura.pcap

Sabemos que estás ahí…

strings captura.pcap | grep rtmp
rtmp://cp9950.edgefcs.net/ondemand/mtvnorigin/gsp.comedystor/com/colbert/season_05/episode_004/cr_05004_05_240.flv
rtmp://cp9950.edgefcs.net/ondemand/mtvnorigin/gsp.comedystor/com/colbert/season_05/episode_004/cr_05004_05_480.flv
@rtmp://88.221.92.180:1935/ondemand?_fcs_vhost=cp9950.edgefcs.net

Perfecto, a por ello…

3. Descarga del stream de vídeo

Para bajar un flujo de datos en RTMP, rtmpdump o flvstreamer son nuestros aliados:

flvstreamer -r "rtmp://cp9950.edgefcs.net/ondemand/mtvnorigin/gsp.comedystor/com/colbert/season_05/episode_004/cr_05004_05_240.flv" -o colbert.flv
FLVStreamer v1.8e
(c) 2009 Andrej Stepanchuk, The Flvstreamer Team, license: GPL
Connecting ...
Starting download at 0.000 kB
Metadata:
duration 370.94
width 240
height 180
videodatarate 250
audiodatarate 80
framerate 14.98
creationdate Fri Jan 9 01:01:09 2009
lasttimestamp 370.91
lastkeyframetimestamp 368.97
videocodecid 4
audiocodecid 2
audiodelay 0
canSeekToEnd FALSE
filesize 12810455
videosize 8851208
audiosize 3879788
datasize 19758
ERROR: ReadPacket, failed to read RTMP packet body. len: 65812
Download may be incomplete (downloaded about 8.30%), try --resume
Closing connection.

Vaya, parece que se corta cada pocos bytes, probaremos usando la fuerza bruta y la opción “resume”:

while true; do flvstreamer --resume -r "rtmp://cp9950.edgefcs.net/ondemand/mtvnorigin/gsp.comedystor/com/colbert/season_05/episode_004/cr_05004_05_240.flv" -o colbert.flv; done

¡Genial! El FLV ya está en nuestro disco duro a buen recaudo. Ahora a remezclaro y vitaminarlo :-)


 

Acerca de

Este el blog de Pablo Garaizar Sagarminaga (también conocido como “txipi”) y normalmente trata sobre informática en general, ciencia, seguridad, software libre, ciencia ficción e historietas afines. A veces, hablo de otras cosas, pero son las menos. Siéntete libre de comentar todo lo que te apetezca ;-)