Weekend Cat Blogging and Photo Hunt: Digital

The theme of this week’s Photo Hunt is digital. Rather than simply use a digital photo – which could be any photo ever taken of Luna – I chose a couple of images that demonstrate the unique opportunities of the medium. A digital photo is really just a stream of numbers, not unlike digital audio, and can be processed in countless ways using digital signal processing or applying other mathematical functions.

For a piece I originally did in 2007, I took one of Luna’s adoption photos from Santa Cruz County Animal Services and applied an algorithm that overlaid these colored bands, as shown above.  The color bands were generated using a set of hastily chosen trigonometric and hyperbolic functions applied to the timeline of the animation sequence.  These photos are stills from the full animation.

I did these using image and video extensions to Open Sound World – one nice feature of that work was that I could use the same functions for both audio and video, and “see” what a particular audio-processing algorithm looked like when applied to an image.   And I would probably use the Processing environment for future visual work, perhaps in conjunction with OSW.

Weekend Cat Blogging #309 and Carnival of the Cats are both being hosted by Billy SweetFeets this weekend. Perhaps Luna’s animation could be part of one of the dance videos they often feature.

Photo Hunt #264 is hosted by tnchick. This week’s theme is digital.

And the Friday Ark is at the modulator.

A special note this week. Our friend Judi at Judi’s Mind over Matter (home of Jules and Vincent) has information on how to help animals affected the storms and tornadoes in the southeast US. They live in Alabama, not far from the place that was hit hardest by the tornadoes. We’re glad they’re safe, and able to provide this information for those who would like to help.

Preparing for Regents’ Lecturer presentation, Part 1

I have been busily preparing this weekend for the first of my UC Berkeley Regents’ Lecturer presentations:

Open Sound World (OSW) is a scalable, extensible programming environment that allows musicians, sound designers and researchers to process sound in response to expressive real-time control. This talk will provide an overview of OSW, past development and future directions, and then focus on the parallel processing architecture. Early in the development of OSW in late 1999 and early 2000, we made a conscious decision to support parallel processing as affordable multiprocessor systems were coming on the market. We implemented a simple scalable dynamic system in which workers take on tasks called “activation expressions” on a first-come first serve basis, which facilities for ordering and prioritization to deal with real-time constraints and synchronicity of audio streams. In this presentation, we will review a simple musical example and demonstrate performance benefits and limitations of scaling to small multi-core systems. The talk will conclude with a discussion of how current research directions in parallel computing can be applied to this system to solve past challenges and scale to much larger systems.

You can find out more details, including location for those in the Bay Area who may be interested in attending, at the official announcement site.

Much of the time for a presentation is spent making PowerPoint slides:

With slides out of the way, I can now turn to the more fun part, the short demos. This gives me an opportunity to work with TouchOSC for the iPad as a method for controlling OSW patches. We will see how that turns out later.

Preparing for tomorrow's today's performance, part 2

Things were looking pretty dire yesterday afternoon, with major audio problems on both the PC and Mac. Without going into details, I was getting intermittent pops, clicks and stutters on the PC, and the Mac was simply outputting something wrong. Eventually, I was able to get the mac working with clean audio, so that became the computer for today's performance, together with an E-MU 0202 | USB and an Xboard.

Basically, the mac is running Open Sound World, more specifically, the latest version that works with my new Python interface. Without the pesky graphical interface, the system is rock solid and a lot more efficient to program. It's more akin to SuperCollider or the practice of “live coding”, if you are familiar with either of those. So with this setup, I was able to get things up and running for today very quickly. And it is rock solid, though I don't want to jinx the actual performance too much by describing all the things that didn't happen.

The “instrument” for today allows two live recordings to be played back at various rates, controlled by the MIDI keyboard and knobs. I will be playing several of my Indian instruments to feed the recordings, in particular the ektar (single-string instrument) and the gopichand (also single string, with a bendable neck for pitch modulation).

Of course, the ketzela wants to get in the act again, too:

One last-minute change was dealing with my Xboard killing itself (something stupid on my part, really). Fortunately, I also have the Novation keyboard as a backup, and although the keyboard itself isn't as good, the controllers are a better fit.

The setup is also extremely compact. This is all I have to carry:

Well, actually, this and the folding table I usually bring. Still, it will be very light and relatively easy to set up (especially as the mac boots very quickly).

"Can you say OSW 2?" strange images of the mind and such

This is what opening the “can you say” demo patch looks like in the current OSW 2 user interface prototype?

I suppose the new UI isn't quite ready for prime time, but I thought the attempt at auto-converting existing patches looked rather cool. I wonder how some of the aesthetics can be incorporated into a correctly working version…

For comparison with the current release, visit the Open Sound World site – the same patch is used as the front page.

Somehow, I also think the image represents my state of mind at the moment. I'll let you interpret that as you will. Let's just say after a pretty good January 1, things have been a bit weird. I prefer not to delve too much into the personal on this forum, though you can read an interpretation of Luna's point of view on her Catster page/blog. Actually, the most interesting part is a typo I made but left in. Again, I leave identifying and interpreting it as an exercise to the reader…

Preparing for tomorrow's radio performance and more ICMC

In order prepare for tomorrow’s performance on WTUL 91.5FM, I have set up a “compact” system here in a corner of the hotel room with laptop, audio interface, mic, small tablet and keyboard:

The only thing I wasn’t able to get running simultaneously was the Evolver, which is only used for a small part of the performance – the problem was not enough nearby outlets.

Performing live on radio presents some additional challenges because of the time constraints, constant sound-level requirements, and of course the fact than any flaws in the technology or my performance will be part of the broadcast and what everyone listening hears…and remembers. So I have been spending extra time preparing and practicing.

Musicially, The Wooden Fish is not a difficult piece. Basically, it is a guided improvisation based on a few short rhythm patterns in 3/4 and a graphical score. The technologies for this performance are straight-forward as well. The initial delay/loop section and a tablet-controlled loop are programmed in OSW, and other variations of the patterns are done in Emulator X2, including one variation using the Twistaloop feature. Both applications are running simulataneously, allowing me to easily switch between at any given point. So far this seems to be working fine – I am just a little wary after a nasty crash at a performance a few weeks ago.

I did take some time out of today’s preparations to return to the conference for the SEAMUS concert and Max Matthews’ keynote address. Matthews, who turns 80 next week, is considered the “father of computer music” and was received very warmly by everyone. While it is inspiring to hear from giants in one’s field, I couldn’t help feel a little demoralized during his relating of past accomplishments and interactions with others – it’s hard live up to those kind of standards, or even see how one could try given the way the computer-music community has evolved. But on balance, it was inspiring – at the very least I would like to explore some of the books and records he recommended. It was also great to see someone who at 80 can talk at length not only about theories and foundational work on mainframes, but also on the latest laptop technologies (like Mac core-duo) and sensor technologies for interactive music performance.

I also found myself more aesthetically in tune with what the SEAMUS musicians were doing than many of the pieces from the ICMC.

Those who are interested in turning in to the radio performance tomorrow can click here for the live internet stream.

The Logistic Function and its Discontents

This article explores the mathematical and more specifically the musical products of a very simple equation. In that exploration, we touch not only mathematics and music, but art, architecture, nature and philosophy; so those who are usually squeamish about mathematics are encouraged to read on.

Most readers who made it through high school algebra should be familiar with quadratic functions and the parabolas described by these functions on the x-y plane. For those who have forgotten, a parabola looks like this:

Parabolas are seen not only in high-school math classes, but often in nature as well. Among the most exquisite uses of parabolae can be found in the architecture of Antoni Gaudí. I had the priveledge of seeing many of his buildings and spaces in Barcelona, including this magnificent example of parabolic architecture:

But (as usual), I digress. For the remainder of this article, we will focus on a particular class of these functions, called logistic functions:

f(x) = ax(x-1)

Logistic functions have roots and 0 and 1, and describe a downward facing parabola (or “water-shedding parabola” in the parlance of my high-school pre-calculus teacher). The peak of this parabola depends on the value of a, and as we will soon see, this is the least of the interesting properties dependent on a.

Now, instead of simply graphing the function on an x-y plane, apply the output of the function back as the next input value in a process known as iteration:

xn+1 = axn(xn1)

This is a fancy way of saying “do the function over and over again.” What is interesting is that for different values of a, one will get different results. For low values (where a is less than one), repeated iterations get closer and closer to zero. If a is between 1 and 3, the it will end up at some value between zero and one. Above 3, things get more interesting. The first range bounces around between two values, as characterized below:

As a increases, eventually the results start bouncing among four values, and then eight, then sixteen, and so on. These “doubling periods” get closer and closer together (those interested in this part of the story are encouraged to look up the Feigenbaum constant). Beyond about 3.57 or so, things get a little crazy, and rather than settling into a period behavior around a few points, we obsserve what is best described as “chaotic behavior,” where the succession of points on the logistic function varies unpredictably.

It is not random in the same way that we usually think of (like rolling dice or using the random-number generators on our computers), but has rather intricate patterns within – those interested in learning more are encouraged to look up “chaos.” This chatoic behavior can be musically interesting, and I have used the chaotic range of the logistic function in compositions, such as the following except from my 2000 piece Spin Cycle/Control Freak.

One can more vividly observe the behavior I describe above as a graph called a bifurcation diagram. As the values is a increase (a is labelled as “r” in this graphic I shamelessly but legally ripped off from wikipedia), one can oberve vertically the period doubling where the logistic map converges on a single value, then bounces between two points, then four, then eight, and so on, until the onset of chaos at approximatley 3.57.

There are tons of books and online articles on chaos, the logistic function, and its bifurcation diagram. Thus, it’s probably best that interested readers simply google those phrases rather than suffer through more of my own writing on the topics. However, I do have more to say on my musical interpretations of these concepts.

Given my experience in additive synthesis and frequency-domain processing (if I have lost you, then skip to the musical excerpt at the end, it’s pretty cool), I of course viewed this map as a series of frequency spectra that grow more or less complex based on a. I implemented this idea in Open Sound World. using the logstic function and its bifurcation diagram to drive OSW’s additive synthesizer functions. The results were quite interesting, and have been used in several of my live performances. I use my graphics tablet to sweep through different values of a on the horizontal axis as in the bifurcation diagram:

Photo by Tiffany Worthington

The resulting sound is the synthesis of frequences based on the verticle slice through the diagram.

Click here to listen to an example.

In the periods of chaos, the sound is extremely complex and rich. Below 3.57 and in the observable “calm periods,” the sound is simpler, containing on a few components forming somethin akin to an inharmonic chord. In true chaotic fashion, small movements along the horizontal axis result in dramatic differences in the spectrum and the timbre. The leads to a certain “glitchy” quality in the sound – one can practice control over time to make smooth transitions and find interesting “islands of stability” within the timbral space.

I have used this simple but evocative computer instrument in several performances, including my 2006 Skronkathon performance as well as my work last year with the Electron SAlon series. I have really only scratched the surface the possibilities with this concept, and hope to have more examples int the future.

catsynth pic: Reed Ghazala Tape Canvas Device

I was reviewing Get LoFi for yesterday's circuit-bending article, and came across a reference not only to Reed Ghazala, whom I also referenced, but a catsynth pic to boot!

Who knew the “father of circuit bending” was also a cat person? Then again, perhaps I shouldn't be surprised…

The tape canvas (illustrated above) itself is interesting as well, allowing expressive control of a device and process that is traditionally linear. It inspires me to revive my interest in musical reading of barcodes using a CueCat, which has the added advantage of continuing the feline theme.

The CueCat has proved a difficult device to work with, however. I have a modified version that gets beyond some of the proprietary issues and shows up as an HID device that can be read in OSW, but I have yet to make it work properly.

Little Sound Dj and "lo-fi" synthesis

I came across some interesting resources while visiting Ouroboros Complex the other day, in particular references to lo-fi synthesizers for small devices, such as Nanoloop for the GameBoy. Unfortunately, there was no free demo that I could run on my VisualBoyAdvance emulator, but I did find another synthesizer/sequencer that did: Little Sound Dj. It is set up like an old-style tracker application:

One can assign notes within a phrase (or larger structures called songs and chains) to various instruments. The instruments can be pulse tones, noise, built-in drumkits (emulating several classic lo-fi drum machines like Roland TR and even a “drumulator”), and custom waves that you can hand edit:

Although it is cute and fun to play around and see what one can do with such a limited but nonetheless interesting pallette, I think it falls short for actual musical work because of the interface and lack of interoperability with my other software and hardware instruments. Much of the lo-fi synthesis can be easily accomplished with OSW (check out the lo-fi and swiss_cheese tutorials) or several freely-available VST isntruments – and Ableton Live! remains a much more usable system for quick real-time pattern editing. I will be looking into some other lo-fi synthesizer plug-ins or algorithms to use in OSW and post more in a future article…

getting ready for tomorrow's performance, part 1

Well, it's time to stop fooling around with pictures and get back to using Open Sound World for what is was intendend, making sound. In preparation for my performance tomorrow at the Skronkathon, I have selected a couple of patches that have worked well for me in the past. They are quite robust, and provide a variety of musical gestures and timbres that complement the sound generated by Ron Lettuce on his PVC wind instrument.

First there is my sinusoidal timbre space based on bifurcation diagrams from classic chaotic functions, controlled using my Wacom graphics tablet. If that sounds really complicated and weird, just accept for the moment that it sounds really cool, and that I will post a more in-depth article about it along with sound clips in the near future. The second patch uses a WX7 wind controller to control a set of resonance models and the excitations used to drive them – essentially, a metallic chamber that one plays like a wind instrument (clarinet, saxophone, etc.). Both of these programs were used in my performances with ELSA Productions last year.

Before today, I had been a bit worried about using my Dell laptop for the performance, as it had a tendency to start running the fan at full blast and slowing to a crawl, especially when running a CPU-intensive program like OSW or Emulator X2. Things would get even worse running a program like Poser or Bryce that is both CPU and graphics intensive. I installed the fan control software and cleaned out the internal fans and heat sink as described in this article and others, and while this has helped, it hasn't cured the problem, particularly with respect to graphics. I fear the root cause of the problem is simply that the laptop, which is nearly three years old, is simply nearing retirement.

In any case, I am also the planning to use the Evolver and the feedback+filter technique I described in a previous article. I generally have both a hardware synth and computer running simultaneously during live performances, so that if the computer and software crash I still have something to play. This has paid off on numerous occasions.

And that's pretty much it. It doesn't sound like a lot, a couple of very focused synthesis techniques, but by listening and playing them like traditional instruments, I expect to get a ful musical performance – I often advise such a “simple” approach to live electronic performance when asked by other musicians.

So that's it for now. I'm off to San Francisco for my one “rehearsal,” taking a leisurely trip up Highway 1 to Half Moon Bay and then cutting over to get to the city. More later.

shades of luna

As I was writing the previous post, Luna poked her head out the glass door leading to the patio. I can't help it, just had to snap a pic:

Cell phone pics aren't particularly high quality, but they're creat for moments like this. Plus, the image inspired a few variations. Enhancing the reflection of the patio in the glass gives us a cat as mirror to the world:

And I also like this highly processed version in red and black, done with some of the new image-processing tools I've build for Open Sound World: