Posts By chikashi

impulse reactive objects for Pure Data

published several impulse reactive puredata external objects for windows on github.

impulse~ generator with distribution functionality
glisson: impulse reactive ramp generator
envgen~: impulse reactive envelope generator
wavemorph~: impulse reactive crossfader

check it out!

New works added



Mirror of Sound (201)

Added some new videos of my installations to my list of works. I’m going to update also the list of software very soon.

Leapmotion PD v0.2 external for Windows

Recently I developed leampmotion v0.2 Pd external for Window.
This project is commissioned by João Pais.
He tested the object carefully and revised the help patch.
If you are interested in, the binary and the help patch are available on github.

Hardware list updated

added two new hardware to the list, built for the exhibition at Kunsthaus Rhenania and wrote a brief description for each hardware. I’ll add one more to the list very soon.


3D lissajous experiment

As a prototype of my next project, I implemented lissajous in 3D, using OpenGL and Gamma synthesis library on windows with C++. Lissajous is often used by sound engineers to check the phase coherence of stereo input, but this 3D lissajous accepts 3 inputs and visualize them in 3D.

publication list updated

I added three papers (SMC 2016 and ICMC 2016) about my works for ZKM and SpatDIF in my publication list.
You can read these papers right away by clicking the links!

Go to publication list

Gamma, up and running on windows

Gamma is a synthesis toolkit by Lance Putnam and it’s an open source software.
The source code is available on github

I compiled it for my project and I’ll write it down how I set up my MS VC++ 2015 on Windows 10 environment for Gamma.
Gamma requires two external libraries, one is libsndfile, the other is port audio.
Since I’m not interested in playing back sound files, I just avoided to include libsndfile.

Port Audio
Port Audio is very popular cross platform audio I/O kit and it’s downloadable from the website.
I basically followed this instruction and compiled it on MSVC 2015.

Then, I got portaudio_x64.dll and portaudio_x64.lib files under portaudio/build/msvc/x64/Release

Link portaudio to Gamma
Gamma provides a detailed instruction for the build on Windows. So I just made one C++ project and place all relevant Gamma .cpp codes downloaded from the git and setup a path to


in properties->C/C++/Additional include Directories

Then, set portaudio_x64.lib

under Linker->Input
and also set the path to .lib

under Linker -> General -> Additional Library Directories

Then, copied the portaudio_x64.dll to the directory of exe and run the project.

USB Stick Cloning

dd if=/dev/sd? /dev/sd? bs=4M

? should be replaced by a character assigned by OS
The number for partition should be ignored.

The difference between ATMega 32U2 and 32U4


The behavier of oFSerial and comport object on Pd is different.
oFSerial::available returns the number of bytes, and readByte returns byte itself only when the received message contains \n (ascii 13), which is highly problematic for high speed raw byte sending.

Presumably this is caused by the flags of serial fucntions.
in comport:
new->c_cflag |= (CREAD | CLOCAL);

/* always nocanonical, this means raw i/o no terminal */
new->c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);

/* no post processing */
new->c_oflag &= ~OPOST;

in ofSerial

cflag CLOCAL | CREAD | CS8
cflag &= ~(PARENB | CSTOPB | CSIZE)


The problem is ofSerial does not canonical mode by

so without sending \n or other special character, the front ends holds the data and not release them to the receiver app.