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.

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

/portaudio/include
/Gamma

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.

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);