Analog synth emulation with puredata on Raspberry Pi

Here is a step by step on how to make a analog synth emulation with an RPi :-) :

1. installing raspbian on a SD card

see instruction :
http://www.raspbian.org/
http://elinux.org/RPi_Easy_SD_Card_Setup

connect a keyboard, a mouse, an HDMI screen and an ethernet cable with DHCP (to get internet access) and boot on the SD card to configure the OS :
- expand root
- change keyboard
- change password
- change local (fr utf8)
- change memory split : minimum allocated to video
- enable ssh
- boot : no desktop
- update

sudo apt-get update
sudo apt-get upgrade
sudo reboot

install rpi-update and update the firmware (needed to improve sound quality !!)
(instruction here : http://www.framboise314.fr/maintenir-la-framboise314-a-jour-rpi-update-pour-raspberry-pi/)

sudo wget http://goo.gl/1BOfJ -O /usr/bin/rpi-update && sudo chmod +x /usr/bin/rpi-update
sudo rpi-update
sudo reboot

log in and start graphical interface :
startx

2. installing puredata

sudo apt-get install git tk8.5-dev libasound2-dev subversion autoconf libtool gettext

downloading latest pd :

git clone git://pure-data.git.sourceforge.net/gitroot/pure-data/pure-data pure-data
cd pure-data/src
./autogen.sh
./configure CFLAGS="-mfpu=vfp -mfloat-abi=hard"
make
sudo make install

It takes around 20min to build, be patient.
you can start pd using the “pd” command

3. optimising the system for pd :

sudo leafpad /etc/security/limits.conf
or try nano if you don’t start an X server
add
* - rtprio 99
* - memlock 1000000000

Start pd and go to media > preference > startup
add the following flag in the startup flag field :
-rt -alsa -noadc -audiobuf 25

then apply and restart pd.

4. test

download analog synth emulation patch by Cyrille Henry here :
svn checkout https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/nusmuk/nusmuk-audio/ ~/nusmuk-audio
cd ~/nusmuk-audio
make
cd examples
pd analog_synth_emulation.pd

5. Performance :

The analog output of RPi has been improved but it is still quite noisy. Man can output some audio through HDMI. We use an HDMI display to convert audio and to send it to good quality loudspeaker. We later tried a USB soundcard (Edirol UA-1A) which works out-of-the-box.

We tried to reduce latency without hearing click with the Cyrille’s patch, here are the results :
10 ms latency with USB soundcard
20 ms latency with integrated HDMI audio
We also tried to input audio with USB soundcard but audio is crackly as soon as input is enable (with output too).

6. Getting data from real world

Most of MIDI-USB interface should work out-of-the-box.
With Edirol UM-1EX we get a MIDI loopback between 30 and 35ms.

HID works great.
svn checkout https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/hid/ ~/hid
cd hid/
make
pd hid-help.pd

The Byron interface (http://www.1010.co.uk/org/byron.html) is one of the cheapest way to make a CV-to-computer interface.

A TCP loop on a local computer takes less than 1.5 ms.

7. Autologin

To enable auto login, we follow this : http://elinux.org/RPi_Debian_Auto_Login. And to start pd at startup, we follow the steps on the same page but replace startx by ~/autostart.sh wich is a script like this :
pd -nogui -audiodev 3 -open ~/nusmuk-audio/examples/analog_synth_emulation.pd

7 segments

Réalisation pour le collectif Ivan Mosjoukine <http://lepointtriple.blogspot.fr/p/ivan-mosjoukine_14.html> : afficheur à 3 chiffres de 7 segments grand format.
C’est un accessoire utilisé dans leur spectacle Note on circus.
Ingrédients : chipKit Uno32, quelques résistances et transistors, chutes de ruban de LED RGB chinois, boite en carton et bois recyclés, télécommande 3 boutons à fil

photo : Ivan Mosjoukine
photo : Ivan Mosjoukine

Dispositif de mapping dynamique

Mis au point dans le cadre du spectacle Les Fuyantes de la compagnie les Choses de RIen, ce dispositif de mapping dynamique permet notamment de projeter de la vidéo sur des objets / personnes en mouvement sur le plateau.
Je me suis occupé de la conception et du prototypage, le dispositif a ensuite été entièrement programmé en PureData par Cyrille Henry.
La vidéo ci-dessous montre quelques-unes de ses possibilités.

les fuyantes from chnry on Vimeo.

Arduino sends temperature & humidity to Google spreadsheet

Here is an Arduino code that sends some values to a Googledocs spreadsheet.
This is based on a RobertMParker’s code found here : http://asynclabs.com/forums/viewtopic.php?f=16&t=489
It uses an Ethernet shield to connect to the internet instead of a WiShield.

You just have to put the key of your own form into the url.

The code is downloadable on github : EthernetShield_to_google/EthernetShield_to_google.pde

av.jit open source

Les objets av.jit.iidc et av.jit.artsimple pour Jitter sont désormais disponibles en téléchargement sur github :
https://github.com/avilleret/av.jit

av.jit.iidc permet de contrôler les caméras IIDC. Il remplace jit.qt.grab pour ce type de caméras et permet d’accéder aux modes de fonctionnement avancés (ROI, binning, high framerate…). Basé sur la bibliothèque libdc1394, il est compatible uniquement avec OS X (cette bibliothèque n’est pour l’instant pas disponible pour Windows).

av.jit.artsimple permet de faire de la reconnaissance de motifs. Il est basé sur ARToolkit mais pour l’instant compilé seulement pour Windows.

av.jit.iidc update

une nouvelle version de av.jit.iidc est en ligne
il semblerait qu’en plus du framework il soit nécessaire d’installer Xcode…
c’est un problème que je tente de résoudre en m’arrachant les cheveux…
de plus cette version est intel only…

My 1st Arduino project

Je viens de terminer mon premier code pour une carte Arduino.
Ce code est destiné à un gadget qui averti l’utilisateur de l’arrivée de mails. Lorsqu’il y a des messages non lus dans la boîte de réception électronique, l’objet s’illumine. L’objet est designé par Arturo Erbsman et est en cours de réalisation.
Continue reading

Actif

Entre geste et son

Actif est un dispositif performatif questionnant doublement la relation du geste au son.
Actif est un dispositif de projection sonore interactif qui joue une composition dont les auditeurs contrôlent le déroulement par leurs gestes. Actif suit la dynamique des spectateurs : ce sont eux qui fournissent l’énergie générant la musique. Pas de mouvement, pas de musique. Actif teste l’implication du spectateur dans l’œuvre, il le provoque en le rendant indispensable à l’existence de l’œuvre.
Enfin Actif analyse la posture plus que la position. Un dispositif de vision par ordinateur calcule des descripteurs renseignant sur le geste ou la posture plutôt que seulement sur la position permettant de définir si le mouvement est rapide, énergique, saccadé ou encore répétitif.
Ces analyses permettent alors de jouer des sons d’un autre corps. Un corps sonore pré-enregistré issu des actes d’une autre personne. En interprétant les sons, on réinterprète les gestes dont ils sont issus. Ces gestes de production sonore ont été à la fois contraints par l’instrument et figés par l’enregistrement sonore alors qu’Actif est sensible à tous les gestes qu’il voit. Les contraintes ne sont pas les mêmes et tous les gestes sont possibles, mais tous n’auront pas nécessairement d’impact sur la composition.

La vidéo ci-dessous présente les premiers travaux autour de ce projet.

Actif#1:R2D2 utilise les mouvements pour générer des sons. Une transformée de Fourier inverse est appliquée à la matrice de vecteur de mouvement. Chaque colonne est spatialisée suivant sa position horizontale. Le résultat sonore suit de près l’énergie gestuelle déployée. En plaçant les aigus en haut et les graves en bas, on retrouve une gestuelle familière des chanteurs.

av.jit.iidc

Mise en ligne aujourd’hui de l’external pour Max av.jit.iidc remplaçant jit.qt.grab pour les caméras IIDC.

http://antoine.villeret.free.fr/?page_id=23

Cet external permet d’accéder de manière précise aux paramètres avancées des caméras industrielles : Format 7, haute cadence d’image, ROI…

Cet external utilise la librairie open source libdc1394 de Damien Douxchamps et n’est pour l’instant compilé que pour OS X.

La version en ligne est une version béta et nécessite l’installation manuelle du framework libdc1394. Elle a été testée sous Mac OS 10.6.2 et 10.5.8 avec Max 5.3 et les caméras AVT Guppy F033-B, Sony XCD-V60 et Apple iSight.

Le décodage des couleurs a été tester avec la iSight d’Apple et une Unibrain Fire-i.

Pour toute suggestion, rapport de bug, mécénat, envoi de bonbons, fleurs ou tomates contactez moi directement par mail : antoine [dot] villeret [at] gmail [dot] com.