New project: pymapper, a cross-platform GUI for libmapper

Tags:  audio libmapper music osc planet-debian pymapper pyo python

I've been using Pyo for creating synthesized musical instruments and communicating data via Open Sound Control. Also, I'm working on a personal project wich includes a bunch of light sensors and requires many attempts of mapping strategies. When looking for OSC connectors/mappers GUIs I've found just a few interesting solutions, which are usually limited to a specific OS and are available under non-free licenses.

Last month I was introduced to libmapper, "an open-source, cross-platform software library for declaring data signals on a shared network and enabling arbitrary connections to be made between them[...]". It provides python binds and works nicely together with Pyo. Libmapper developers provide a fonctional GUI for MacOS. There's out there webmapper, a web interface for libmapper, and umapper,"an Ugly TUI to libmapper".

I'm unable to use the "official" MapperGUI because I don't use Mac. Webmapper does the job, it has a really fancy interface and looks very promising, but I'm not a web person, mainly when it involves audio (it's a totally personal issue). Umapper is limited to the basic mapper functions and it's not working with recent libmapper API changes. So, I'd have a good reason to start coding a libmapper GUI myself :) Well, actually the real reason is that I wanted to know how libmapper works internally and I'm currently interested on learning a little of programming in WX, so I've just started coding pymapper, a libmapper GUI written in wxpython. It's in a very early stage but it works as it should in my GNU/Linux system. Hopefully it goes to Debian as soon as #737238 is closed.

Here's some screenshots from the GUIs mentioned above, including pymapper:


Webmapper running in my system


Pymapper running in my system


MiniDC BCN2014, we're all there!

Tags:  barcelona bcn2014 debconf debian

Mini Debconf in Barcelona was just amazing, while official group photo(s) are not provided I'm publishing these two I liked more. AFAIK we had about 160 attendees++ wow!! My sincere thanks, mainly to local people who made this event such a success!! Videos of talks coming soon :)


Mini Debconf Barcelona - group photo 1


Mini Debconf Barcelona - group photo 2


Fixing a broken wifi switch

Tags:  fixing ideapad laptop s10 wifi

By following some instructions kindly shared in a notebook forum I was able to fix the wifi switch from a Lenovo Ideapad s10. Some patience for millimetric tape cutting is all you need to get it done.

The following diagrams worked to me, just re-sharing them:

/images/pci_express.jpg /images/2luunog.jpg

Installing O. JVM in a Debian GNU/Linux

Tags:  debian java jre linux plugin

It's shame that the two main public banks in Brazil require a weird virtual machine for their services using GNU/Linux. I use to need it here and there, so...

Building the package:

apt-get install fakeroot java-package
fakeroot make-jpkg jre-7u45-linux-x64.tar.gz
sudo dpkg -i oracle-java7-jre_7u45_amd64.deb

The above was enough to have Iceweasel working.

For Chromium:

ln -s /usr/lib/jvm/jre-7-oracle-x64/lib/amd64/ /opt/google/chrome/plugins/

That's all. Hope you never need it.


Winter bike

Tags:  bike montreal winter

Voilà a very nice bike I reclycled last year with the generous help from Santropol's bike shop volunteers. I've just realized how beautiful it looks during these white days :)


Best disclaimer ever

Tags:  canonical legal ubuntu

From fixubuntu:

Disclaimer: In case you are either 1) a complete idiot; or 2) a lawyer; or 3) both, please be aware that this site is not affiliated with or approved by Canonical Limited. This site criticizes Canonical for certain privacy-invading features of Ubuntu and teaches users how to fix them. So, obviously, the site is not approved by Canonical. And our use of the trademarked term Ubuntu is plainly descriptive—it helps the public find this site and understand its message.

Read micah's post to be in context.


Parc national du Mont-Tremblant -- late autumn

Tags:  autumn mont-tremblant montreal quebec sepaq

A few pictures from Parc national du Mont-Tremblant taken with a gopro in October 2013. Last picture is a nice view of Montréal, taken from the Mont-Royal belvedere:


External interrupts numbers in Arduino Leonardo

Tags:  arduino leonardo sensors

After spending many hours trying to run some code for different light sensors in an arduino Leonardo I've figured out that I was using digital pin 2 for interrupt 0, which works for both arduino Uno and Mega2560, while digital pin 3 should be used for Leornardo:


Generating a wind sound with python

Tags:  audio pyo python synthesis

#!/usr/bin/env python
# encoding: utf-8

from pyo import *
import random

# Simple wind generator with Pyo
# Tiago Bortoletto Vaz <>
# Public domain - Wed Oct  9 15:27:32 EDT 2013

s = Server().boot()

# Brown noise to have less high frequency to cutoff
noise = BrownNoise(mul=Randi(0.5,1))

# This gives a factor for both the wind intensity and frequency. Intensity
# and frequency go together in the two first filters in order to generate a
# more natural wind. Q variation gives a kind of wind blows.
j = Randi(1,1.4,Randi(.5,1))

# Filter 1 - sort of continuos bass wind
freqs1 = Randi(150, 300)
q1 = Randi(4, 6)
f1 = ButBP(noise, freq=freqs1, q=q1, mul=.2*j)

# Filter 2 - main wind frequency with slow variation, following wind intensity
freqs2 = [Randi(300, 400)*j for i in range(3)]
q2 = Randi(40, 300)
f2 = ButBP(noise, freq=freqs2, q=q2, mul=j*1.5)

# Filter 3 - very high component, almost fixed in frequency
freqs3 = [Randi(2990, 3000)*j for i in range(2)]
q3 = Randi(10, 33)
f3 = ButBP(noise, freq=freqs3, q=q3, mul=.01)

# Filter 4 - the highest frequency wind component, also quite fixed
freqs4 = [Randi(10000, 10100)*j for i in range(2)]
q4 = Randi(10, 33)
f4 = ButBP(noise, freq=freqs4, q=q4, mul=.01)

# Player
fad = Fader(fadein=1).play()
m = Mix([f1, f2, f3, f4],voices=2, mul=fad).out()


Simple network debugging tools

Tags:  arduino audio osc pyo

I've been using sendip and ngrep to performe some network debugging. It was specially useful when I was trying to communicate an arduino ethernet shield to Pyo via Open Sound Control. Here's an example for future reference.

Sending a "Hello" message:

tiago@gnudaw:/home/tiago# sendip -p ipv4 -is -p udp -us 9999 -ud 8888 -d "Hello" -v
Added 26 options
Initializing module ipv4
Initializing module udp
Finalizing module udp
Finalizing module ipv4
Final packet data:
45 00 00 21   E..!
6B 7E 00 00   k~..
FF 11 C9 E9   ....
C0 A8 02 7E   ...~
C0 A8 02 95   ....
27 0F 22 B8   '.".
00 0D 0B D7   ....
48 65 6C 6C   Hell
6F   o
Sent 33 bytes to
Freeing module ipv4
Freeing module udp

Receiving a loop of OSC messages:

tiago@gnudaw:/home/tiago# ngrep src
interface: wlan0 (
filter: (ip or ip6) and ( src )
U ->
U ->
U ->
3 received, 0 dropped