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

Posted:
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:

/images/webmapper.png

Webmapper running in my system

/images/pymapper.png

Pymapper running in my system

Comments

MiniDC BCN2014, we're all there!

Posted:
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 :)

/images/bcn2014.1.jpg

Mini Debconf Barcelona - group photo 1

/images/bcn2014.2.jpg

Mini Debconf Barcelona - group photo 2

Comments

Fixing a broken wifi switch

Posted:
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
Comments

Installing O. JVM in a Debian GNU/Linux

Posted:
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/libnpjp2.so /opt/google/chrome/plugins/

That's all. Hope you never need it.

Comments

Winter bike

Posted:
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 :)

/images/bike-winter-small.jpg
Comments

Best disclaimer ever

Posted:
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.

Comments

Parc national du Mont-Tremblant -- late autumn

Posted:
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:

Comments

External interrupts numbers in Arduino Leonardo

Posted:
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: http://arduino.cc/en/Reference/attachInterrupt

Comments

Generating a wind sound with python

Posted:
Tags:  audio pyo python synthesis

wind.py

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

from pyo import *
import random

# Simple wind generator with Pyo
# Tiago Bortoletto Vaz <tiago@debian.org>
# 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()

s.gui(locals())
Comments

Simple network debugging tools

Posted:
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 192.168.2.126 -p udp -us 9999 -ud 8888 -d "Hello" -v 192.168.2.149
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 192.168.2.149
Freeing module ipv4
Freeing module udp

Receiving a loop of OSC messages:

tiago@gnudaw:/home/tiago# ngrep src 192.168.2.149
interface: wlan0 (192.168.2.0/255.255.255.0)
filter: (ip or ip6) and ( src 192.168.2.149 )
#
U 192.168.2.149:8888 -> 192.168.2.126:9999
  /analog/0...,i......
#
U 192.168.2.149:8888 -> 192.168.2.126:9999
  /analog/0...,i......
#
U 192.168.2.149:8888 -> 192.168.2.126:9999
  /analog/0...,i......
^Cexit
3 received, 0 dropped
Comments