I’ve just uploaded an performance from 2013 for my sensor-augmented upright bass using the mousetrap sensors I designed in 2007. You can see a more detailed overview video of the sensors here, as well as in the blog archive.
I write a lot of stream-oriented code, where you’re working with data in chunks and manipulating them as they pass through the system. Julia 0.6 introduced some new functionality for expressing array manipulations more efficiently, which are described in depth in Steven G. Johnson’s post here.
When ...
Defining some terms
This post is all about noise, so lets start with a quick discussion of what noise is. In some contexts noise is defined as whatever part of a signal you don’t care about and would rather ignore. It is a distractor and can obscure the information ...
I just watched this talk by David Beazley about Python’s newish async
/await
functionality. Beazley is also known for his Curious Course on Coroutines and Concurrency, which is also wonderful. I’m not sure this talk really sells the paradigm to folks who haven’t been bitten by concurrent ...
I’ve seen several posts now with people complaining about the following python code:
>>> funcs = []
>>> for i in range(11):
def func(x):
return x + i
funcs.append(func)
>>> funcs[1](5)
15
Most people first looking at the code would expect the value of funcs[1](5)
to be ...
So we have a vector
Given a vector of audio, the first step in making a spectrogram is to slice up the audio into frames. This slicing process is defined by the frame size and the hop. The frame size is the number of samples in each frame, the hop ...
Intro
So I took it up as a challenge to generate a spectrogram in Haskell. How hard could it be? Turns out that what’s a few lines of python code using numpy and matplotlib took me down quite a rabbit hole.
For the impatient, you can find the finished ...
(photo nabbed from MusicRadar)
After more than a year(sporadically), several re-writes, and much learning about USB, cross-platform threading, concurrency, OSX device driver loading, and many more, the libmanta library and the included PD and Max/MSP objects are finally ready for release.
Get The Source Read The Documentation
libmanta ...
I’ve been working off and on for a bit on a C++ library to implement a variant of Dynamic Stochastic Synthesis, a technique developed by Iannis Xenakis. (For a great history and more details check out Sergio Luque’s thesis.
The library is still pretty rough around the edges ...
I spent a couple of hours on Sunday whipping up this little scheduler in python.
It was mostly to have something fun to do in Python, and doesn’t do much that’s useful, but it does demonstrate some general process scheduling concepts.
It provides base classes for “Processes” and ...
Just a quick announcement that Capillary Action has finally returned from our ridiculous 4-month US-UK-Europe-US tour (except for 5 more east coast dates in another week and a half).
It was long and amazing and draining and eye-opening, and now I’m glad to be home.
My ...
So I’ve been playing around with WMII for a while now, soaking in the glory of tiling window managers. One thing that’s a bit inconvienient is easy automounting. I don’t want to have to manually create a directory in /media and mount each and every teeny-tiny usb ...
After installing openembedded from these
directions,
I’ve successfully compiled the helloworld-image target and have it running on
my beagleboard! After running bitbake helloworld-image
and bitbake
virtual/kernel
and finding something else to do for a few hours while
everything compiled, I had a usable rootfs and kernel image. I ...
Well, today I got Günter Geiger’s PDa version of Pure Data compiled on the Beagle Board. I haven’t gotten HDMI output to work properly to my TV so I’m relying on X-forwarding for the GUI, which is pretty painfully slow at the moment, but I did get ...
I have just received a beagleboard, flyswatter JTAG, 4GB SD card, USB ethernet adapter, and USB hub. Everything I should need to get started with embedded development.
I created the proper filesystem setup on the SD card as per these instructions, and installed koen’s demo image for the Ångstrom ...
As of 4:00pm today my old Columbia site has been decommissioned and redirected to this one. The site is dead, long live the site.
Stay tuned for more frequent posting, now that I’m getting a couple projects off the ground and I’m pretty much done futzing around ...
So it’s been a while since I’ve posted any info here. Since a recent re-wire of the sensorBib to switch all solid-core wiring with stranded(a mistake I will not make again), I’ve been working on putting music together to perform on my new sensor-augmented upright bass ...
I finished the hardware portion of my sensor array right before I left for a tour and recording session with Capillary Action, but didn’t get a chance to post pictures, so here they are, only a month late. In the coming weeks I’ll be working on refining the ...
I successfully printed out my pattern onto a bunch of 8.5x11 sheets of paper, taped them together and cut them out. I taped the patterns onto my bass to make sure that it all fits the way my model said it should, and so far so good. This also ...
So now that I’m mostly done with the physical design part of this project, I thought it would be a good time to whip up another video demo to show it in action. I’m using a couple of custom abstractions that I’ve made make the sensor data ...
Here’s a quick video I made of me waving my hands around the MouseTrap sensors, and sending the data through an arduino board into my laptop running puredata. The video footage was pretty out of sync with the audio, which is why there’s more screen capture than video ...