Monthly Archive for May, 2009

Pleasantville colour effect in AfterEffects


In this 2 minute video tip, check out how to use After Effects’ Leave Color effect to create the look where you footage is made black and white, leaving only a single color, made popular by the film Pleasantville. http://www.motionworks.com.au/2008/04/leave_color/

Proof of Concept Critique


I think this picture sums up what Mat really thinks of our sound projects :

Mat Disappointed

Just kidding. =P

Though on a more serious note he did mention that I should take a look at what my project is trying to achieve and not making it too obvious for the participants otherwise they’ll figure out what it does, get bored,  and walk off. He did suggest randomisation of both sound and lighting to make it a really cool and trippy experience, but there is a fine line between making it a cool installation and making it too abstract for most people to comprehend. I shall take this recommendation into consideration when I start recording, compiling and mixing my sound files together.

I’ve also seemed to fix (for the most part) the distortion issue with my PD volume control attempt in the previous post by reducing the levels to a more sensible number. Here’s the PD flowchart for it :

PD-test volume control

All I’ve done is add another multiplication function which reduces the rms level from the mic input by 95%, which makes it a much more sensible number when you use it to boost the volume of the output. This has made the distortion far more managable and less annoying to the end user.

The Plan


My ideal plan of the installation will hopefully look like this once completed :

lounge setup

The plan was to have 2 x 2.1 ch speakers behind each lounge but crosswired so that the participants on the lounge hear the sound coming from the opposite lounge. The grey areas indicates where I will be placing either pressure pads or contact mics (though at this stage I think contact mics are a more feasible option) for interaction and input into PD.

The lounges themselves will be rigged up with both contact mics as well as a sound reactive CCFL tube as well as flexiwire LED lighting underneath to give it a nice aura and attract attention to the lounge setup. Each lounge will hopefully look like this once complete :

lounge diagram

The grey areas in this diagram indicates places where I will like lighting to be put, however this is still pending a decision based on practicality of placement and health and safety requirements. The sound reactive CCFL will be mounted underneath the couch so it gives it a subtle pulsating glow to the whole installation. The flexiwire LED lighting will be drapped across the back of the lounge as well as the side of the arms to help outline the lounge in the installation area.

Problems that may be encountered

  • Sourcing of components (lounges, lighting, speakers, contact mics etc)
  • Practicality and safety of mounting lighting equipment on the couch
  • Getting a space to build, install and test the installation

Even more playing with PD and makeshift contact mic ideas


After more playing around with PD I’ve decided that my first attempt was very crude and basic. One problem that I found was that the first PD program kept triggering pretty much every time you breathed near the mic. I thought that this was way too sensitive, so I decided to make some sort of audio threshold gate whereby once a certain audio threshold has been reached, the program will run. Easy idea at first, harder to sort of do in PD, but I’ve managed to put something together.

prototype audio gate

As you can see I’ve barely strayed from my original design from the previous post. I did add a few more functions to the side of the input so I’ll outline what I’ve done below.

The new functions I used were:

env~ – This stands for Envelope Follower and what it does is convert the mic input from adc~ into number (in this case rms levels)

moses – This function acts as a filter for an audio signal. You assign a number after it to set your threshold levels and will either pass or block the signal flow depending whether or not that threshold has been reached. This is basically my audio gate function.

*~ – This is just a multiplication operator on an audio signal depending on the input values that gets sent to it.

NOTE: The number box which is connected to env~ is just there for me to monitor the levels of my mic input from adc~. I haven’t quite understood how to get a VU Meter working in PD yet so for the time being this will do.

So basically put this extra bit of PD code just allows me to get the rms levels from the mic, then check whether or not it’s hit a certain threshold level (it will output 0 if it hasn’t or 1 if it has), then pass that onto a multiplier which sends the signal along to fiddle~.

The next issue I have tried to attempt to tackle is volume control of some sort. I don’t mean volume control that a user controls, but a volume control that controls the volume of the output level on the speakers according to the input level from the mic.

Here is how I’ve tried to attempt to achieve this in a crude way :

prototype crude volume control

I’ve basically got the rms level of the input using env~ and used that to multiply the output from the sound file read in by readsf~. I think this is a really lazy and cheap way of doing this from a mic (it also adds a lot of distortion as I’m taking an input signal and multiplying the volume of that signal by whatever rms value from the mic is at that time of sampling), but i’m sure there’s a more elegant way of approaching this that I haven’t stumbled across just yet but hopefully will soon.

Here’s a short video of the PD program :

I’d also like to thank Grace for showing me this site which outlines how to go about making your own contact mics (this is only if the uni can’t provide us with some to play around with). Looks like it can easily and cheaply be put together by using a simple piezo transducer that Dick Smith sell.

Problems still to be fixed

  • A more elegant volume control function (to eliminate distortion added when controlling the output volume)
  • How to get multiple mic inputs into a computer
  • Sound reactive hardware and software convergence
  • Sourcing all the bits needed for my project to come together (lounges, contact mics etc.)

That’s all that I can think of now, though I do have a feeling that I’m missing a few here and there.

Playing with PD


Here comes the hard and convoluted bit, PD. Rachel & I sat in front of a blank box in PD wondering what are we suppose to do next? Thankfully Mat gave us a simplistic run down of its features and functions which will hopefully help us understand how it all works for our projects (to a certain degree).

PD or Pure Data is a graphical programming language developed by Miller Puckette in the 1990s for the creation of interactive computer music and multimedia works. It basically is like a massive flowchart connecting components together so that they work somehow.

Screenshot of PD with a really simple flowchart :

Simple PD flowchart

Now onto my PD program thing. My project simply has to take inputs from quite a few contact mics, and when a signal is heard from a particular mic, play a sound file. Now breaking this down I’ve decided to create a simple PD program flowchart of how it works with just the one mic input.

PD flowchart

Now for people who’ve used PD you would prolly laugh at my pathetic first attempt, but for all the rest who are looking confused as to what this all means I shall attempt to break it all down and explain what functions I used and why.

adc~ & dac~ – This is how PD gets inputs and outputs from the computer (adc = analogue to digital converter, dac = digital to analogue converter). Think of this as the begin and end nodes of a flowchart.

fiddle~ – This function estimates the pitch and amplitude of an incoming sound. The numbers after it indicate window size, number of pitch outlets, number of peaks to find and number of peaks to output. Since I didn’t know what all these numbers meant I’ve decided the leave it as the default settings.

[O] – This box (a circle inside a square for those who still don’t know what it looks like from that) is called a bang. Basically from what I gather it creates a visual indication of when a function that it’s connected to triggers. So it basically lights up black if the fiddle~ function receives a signal from the mic in this case.

1 – This number is associated with the readsf~ function below. It basically tells readsf~ to start playing the sound file (if instead the number were 0, it will tell the readsf~ function to stop playing).

open <directory path of sound file> – This basically tells the readsf~ function below to open a sound file in a particular directory path on your computer.

readsf~ – This function just allows you to read the sound file passed on from open.

So basically this simple flowchart is getting the left and right channel inputs from the computer’s input device (inbuilt mic), senses whether or not there is a signal from that mic that hits a particular threshold level. When this level is hit, it will play a soundfile out of the left and right channels of the computer’s output device (speakers).

Problems I’ve encountered

  • Learning how to use PD was a problem in itself.
  • Functions not working properly because of wrong syntax but was worked out by use of online help files and trial and error.
  • I only know how to make it work with only one input, I’m not sure how to make it all work for multiple inputs…yet.
  • Getting hold of contact mics to play with.

I think that’s all for now since I can’t really think of any other problems that I’ve encountered…

Ambient Lighting Setup & Test


OK it looks like I should start doing something productive seeing that there’s less than a week left before we have to show off our prototypes. I’ve decided to start off with the easiest part of my sound installation, and that is lighting. I had a few choices when it came to ambient lighting of my installation, however I’ve yet to see the space it will be installed in so the plan could change a bit later on. Having said that, I’ve started putting together the components needed for the sound reactive lighting that my installation will feature.

I had plans on getting LED lights though there were a few problems with them. Firstly no one sold them in LED “tubes” or so to speak (think like an LED strip of lights in a fluorescent tube enclosure) in any retail shops and the only places I could track down a set were through professional sound and lighting installation firms which will be expensive. The only ones that I could find were the flexiwire type of LED strip lighting, which I may still utilize as ambient lighting, but not for the sound reactive part. So I managed to settle on using CCFL (Cold Cathode Fluorescent Lighting) which is utilised in pimped out showcars and PC gamers’ rigs.

The sound reactive lighting installation I’ve compiled consists of the following items:

30cm Flexiglow CCFL Tube

CCFL

CCFL Transformer

CCFL Transformer

On/Off Switch with Molex power connectors

Power Switch + Molex Connectors

Normal Power Plug to Molex Connector adapter

Power to Molex Connector

Sound Reactive Module

Sound Module

Since this type of lighting uses the typical molex connectors used in computers I had to find a normal power to molex connector to power the whole installation. The sound reactive module is a simple circuit consisting of a mic (this caused me a few problems which i’ll outline below) and a potentiometer (a variable resistor for current control). Basically the sound reactive lighting will light up when the mic detects a loud enough sound. Though this was my first problem because I wanted the circuit to do the opposite, that is the light turns off when it hears sound and remains on when there’s no sound detected.

Here’s a few videos of it being tested. The first video is me tweaking the potentiometer so that it gives me the desired lighting output according to the music :

The next one is a slightly longer example of how it’s suppose to be like in the final installation (i.e. used as sound reactive ambient lighting) :

Problems I’ve encountered

There were a few issues I’ve encountered whilst testing.

  • The sound module’s mic seems to only pick up and react well to the mid to high frequencies of the sound spectrum and completely disregard the low end bass. I suppose I have two ways to approach this, one would be to mount a direct line input onto the board instead of the mic, or I could actually find out how to recreate my sounds and/or background soundscape to work with this limitation.
  • The circuit board is doing the opposite of what I want it to do, however this may not be a major issue and I can live with this issue, but it was one that I found which was unexpected.

Otherwise I think the sound reactive ambient lighting is pretty much well sorted.

Screen shots of progress (look and feel)


pic_3pic_2Pic_1pic_7pic_6pic_5pic_4