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!
Added some new videos of my installations to my list of works. I’m going to update also the list of software very soon.
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.
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.
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!
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.
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
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.
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 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.
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;
oflag O_RDWR | O_NOCITY | O_NONBLOCK
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.