Showing posts with label max/msp. Show all posts
Showing posts with label max/msp. Show all posts

Tuesday, April 08, 2008

snd particles

my max patch:


individual 3 millisecond sound bits at varying frequencies:
50Hz
220Hz
1000Hz
4000Hz
10000Hz

sequences of sound bits at various frequencies and playing for various durations:
5 and 10 millisecond
1 millisecond
3 millisecond
5 millisecond
10 millisecond

Wednesday, March 26, 2008

img noise

hej

becomes

this noise from one pass through the img

and

after 10 passes through the img

This is a very stripped down image analysis. I'm just converting the rgb value of each pixel into either a -1, 0, or 1, and then sending it into a buffer. I have a phasor object that takes a second to tween from one sample to the next, hence the rhythmic nature of the noise. These two mp3s are only playing blue and green values.

it ended up sounding like a dot matrix printer... more experiments to come.

Tuesday, February 19, 2008

Sine Waves: catch-up!

Here are a few sound files generated from driving different wave shapes through an oscillator I meant to post a couple weeks ago!

sine wave ramp-up
rectangular shaped wave ramp-up
saw tooth wave ramp-up
trapezoidal wave ramp-up
triangle wave ramp-up

Intonations

Here's a few scales I put together, divided by equal temperament and just intonation:

Equal Temperament
2-note scale starting at 100Hz
4-note scale at 100Hz
5-note scale at 100Hz

Just Intonation
12-note scale, low D
12-note scale, low E
12-note scale, low F#
12-note scale, middle Ab
12-note scale, high C#

Monday, December 03, 2007

Loom: Update 7

This week I made a lot of progress with the loom, which is good since the show is only 2 weeks away, and dress rehearsal less than 1 week away.

I got it all set up on the ITP floor, got my sensors hooked up, and am spending this next week composing and figuring out my performance.

I was experiencing a drawback with getting the wireless accelerometer data into max/msp, but finally ironed that out a minute ago; the WiTilt 2.5 from SparkFun is a great little device, but there are some pitfalls to watch out for, which caused me many hours of frustration. Here are some tips:

- after you connect to the WiTilt over its serial port, make sure you hit the onboard reset button twice. Only after doing this was I able to get into the config screen from zterm (or terminal) in order to set the device up.

- when you configure the WiTilt, make sure the data is being sent out as 'raw data'. This will send everything out as ascii.

- once you are in max and connected to the WiTilt's serial port, don't forget that you won't be seeing the config screen (unless you are printing the incoming data after sending it through the atoi object), so just trust that after you hit the reset button twice and start getting a string of characters (which should be the config menu converted to dec values), you need to send a '1' character (49) in order to get the data stream started.

- conversely, send a spacebar character (32) to stop the data stream

- the best way to parse out the values you want from the data stream (which will be coming at you in ascii as something like X=392 Y=772 Z=857), is to use regular expressions. I configured my WiTilt to only send me values along the Y-axis, so i was getting a continuous stream of Y=553 (or whatever current reading was). I pulled that data in from the serial port into max, converted the ascii to an integer (atoi), and then used the following regular expression with the max regexp object to get the sensor value: ([\\d+]*)

That regex will take all the numbers out of the incoming serial packet and append them one after another, thus giving you a complete sensor reading (instead of giving you the reading as individual numbers. i.e. 583 coming to you as 5, 8, 3).

The thing that screwed me up the most in the beginning was forgetting to hit the reset button on the WiTilt. I'd sit there insanely frustrated, wondering why the config menu wasn't coming up. Unless I missed it after reading the datasheet a million times (which is still possible I guess), it's not noted by SparkFun that you have to do this. So when in doubt, hit the reset button!

Okay, so the other problem was my stretch sensor wasn't giving me values. That was just a result of a bad connection on the breadboard.

Other things that I have to do is size the yarn. Because it's wool, it's sticking to itself, so to speak. Wool fibers are composed of gazillions of tiny barbs that hook onto each other (which is why felting exists), and to get around this, you need to 'size' your wool, or soak it in water and elmer's glue, basically. One of my upright beams warped and cracked as well, so that was unfortunate.

So for next week, the plan is:

- build a stand for the loom (so it doesn't have to lean up against the wall)

- size my yarn

- compose

- implement xbee circuits so i can transmit sensor values wirelessly (although this will probably not be the version I use in the show, just in case something screwy happens last minute. Wires are much reliable)

Tuesday, November 27, 2007

Loom: Update 6

Okay, I'm still waiting for a space to set my loom up in. And my cat got sick on my laptop, thereby killing it (it's not salvageable apparently) and cutting my access to my max/msp and arduino files thusfar developed. Not a great week.

But I did make some progress, despite that. I re-did my warp, as it wasn't long enough the first time I made it, and it went A LOT faster the second time around (about 2 hours vs, uh, 10 hours last time). So that is now finally complete and attached to my top beam. Other things completed:

- Got the correct bolts in my top beam supports. It's all bolted up to the uprights and ready to go.
_ Got my shed stick cut and bolted to the bottom of the loom (for separating the front and back threads from each other)
- Put together xbee/accelerometer circuits to go on five of the 24 weights hanging from the warp
- Got my shuttle put together with the wireless accelerometer sensor + a lithium battery
- Rewrote my max patch to where it was before

Oh yes, the xbee is an addition, heh. I am combining this final with my Mesh Networking final, and making the weights wireless devices that send their values remotely. I will be keeping a wired version of the code and board handy though, in case some kind of wireless mishap takes place, which seems to always be a danger, and I don't want any of that at showtime.

This next week is just wrapping everything up I guess and well, getting the xbee stuff all working flawlessly as well as tweaking the sound still.

Monday, October 29, 2007

Loom: Update 2

This week was all about max/msp. I got myself up to reasonable speed with max and have built a basic circuit that takes in readings from sensors, midi-formats them, and sends them out via midi to max. Once they get to max, i take the values in off channels 0 - 15 and send them through various filters. I was happy to get some noise out of my circuits this week.

Once I was able to get the readings from arduino to max, I focused on manipulating the midi data so as to get the kinds of textures/sounds that I'm looking to sculpt out of the data. I'm still working on that now.

Next week, I plan to continue working on the sound, and also doing the following:

- build the loom with sensors tentatively placed. I will be building a warp-weighted vertical loom.
- build the loom
- BUILD THE LOOM!!!!
- complete my max patches
- get the materials i'm going to actually be weaving with

This week, I didn't have any major hangups. Now that I actually have data coming in and pushing sound out of the patches i'm using, I am feeling good about getting the max/msp stuff done. I expect next week will be full of issues, since I will putting together a kind of prototype for two wednesdays from now.

Monday, October 22, 2007

Loom: Update 1

So I've broken the task of building this loom down into a few categories of attack:

Material (yarn)
Loom (building + augmentation of...)
Hardware (sensors, circuits)
Software (music mapping and programming)
Performance

This week I took on a few of the tasks under the Software header. I mapped out how I would use the loom for actual sound production and worked on some test patches in max/msp.

I also decided on what kinds of sounds I am going to produce. I'm going with deep synthy sounds, contrasted with fuzzy, crackly, scratchy sounds. Although it's nothing I'm completely intentionally doing, I'm well aware that many of the sounds I'm going with reference wool, hair, and other organic fibers.

As far as mapping goes, I'm tentatively going with this plan: I'd like the warp (vertical strands) to alter the sounds I've already laid on the canvas (which will be controlled by the weft, or the horizontal strands). The shuttle will either operate as a beat keeper, or it will act as some kind of interrupt as it slides across the warp. Actually, it will become percussive by default, as it affects the warp threads. I'd also like to have panning mapped literally going from left to right across the loom.

This next week, I want to continue working on my patches. The max/msp part feels like the largest challenge so far, since it is the part I'm the least familiar with. I will also try to build out a 'test loom', which will just be warp and weft threads hand-laid out so I can try to mock up what I ultimately want to do with the final loom.

The biggest challenge is working with max/msp. I'm fairly new to this program, and it can seem like a beast, and therefore hard to get started with. I'm overwhelmed by what I can potentially do, and by deciding what I exactly need to do. For now, I'm just accepting midi-data in from a test circuit, and producing sounds with that data.

Tuesday, December 19, 2006

Playing With Food

My final project for physical computing turned a fork and knife into musical instruments. Sine waves are generated and through max/msp, when you cut into different kinds of food on your table. Full documentation can be found here.