Show Posts
Pages: [1]
1  Topics / Interactive Art / Re: audiocubes by percussa, smart cubes for creating sounds, music and visuals on: April 24, 2012, 01:29:39 pm
Hey, I've just built a musical arduino sphere. I wonder if we could dock a few cubes onto it like a mother-ship?

Your audiocubes could add in MIDI based effects, loops, and filter envelopes; I don't know the sky is the limit.  There is so much creativity going on around here smiley

i checked out your site and it seems we have a common goal. "Enable social interaction, music, sound and visual creation and play"
That's what the Dub Cadet is all about!


2  Community / Exhibition / Gallery / Re: Dub Cadet: A Gyrocope-to-MIDI, sound synthesis LED Ball for everyone! on: April 23, 2012, 11:41:03 pm
And here is the kickstarter link to learn more about this project:
3  Community / Exhibition / Gallery / Re: Dub Cadet: A Gyrocope-to-MIDI, sound synthesis LED Ball for everyone! on: April 22, 2012, 08:10:31 pm
Thanks for the enthusiasm, I hope so too!
4  Community / Exhibition / Gallery / Dub Cadet: A Gyrocope-to-MIDI, sound synthesis LED Ball for everyone! on: April 21, 2012, 08:22:48 pm
I wanted to share something I've been working on for about a year now. I'm going to launch a kickstarter real soon that will allow anyone to get an open source kit or a competed instrument to play with. Enjoy!

The Dub Cadet is a powerful tool for bringing anyone into the exciting world of musical performance. Jam with friends, use it as a robotic practice buddy, or break the ice at a gathering. Improvised music has the charming ability to help us discover new possibilities through unexpected outcomes and 'happy accidents'. Use it for musical brainstorming, songwriting, or just for fun and be empowered to make bold new grooves. With the Dub Cadet in your hands, the possibilities are endless. Small motions lead to big variations in the music!

While I learned the creative process from the best of the best at Pixar, I picked up a little secret of character animation. It's more like a fundamental principle, but knowing it or not makes the difference between average and superior animation. The secret is also very obvious, but it often gets ignored: every joint and every limb of the body moves in an arc as it travels through space. In other words, rotation is the fundamental action by which animals and humans move.

This little secret marinated with my longstanding pursuit of musical exploration until one day I had an inspiration: I wanted to design an instrument that used only rotation to make music. No keys to press, no levers to pull, no strings to strum. It would be a totally unconventional approach to music: a ball. Since rotation is 3-dimentional, it would create a dynamic and super-unique way to structure sound. I was very curious to see how an instrument could use the motion curves of human movements to generate music. The Dub Cadet is the fruit of this pursuit.

I was driven by an inner urge to produce something new and simple. I began to think of the ball as a big bulging director's wand, that would allow someone to set the pace and feel of the music the way my choir directors did. But I wanted it to do more: I wanted it to compose the notes on-the-fly so the music would be new and original every time. It would be the music machine right out of my wildest dreams. Well, thanks to the open hardware community, I have gone from concept to final prototype in a little less than a year! Check it out:

5  Topics / Product Design / Re: Licenses and copyrights on: April 20, 2012, 11:09:39 pm
I'm in a similar position, just getting ready to launch a product and here is my take on it:

I've read the biography on Steve Jobs and found it very puzzling that such an intelligent fellow got so hung up on people copying his innovations. I know that are a million arguments for the other side, but every true innovator knows they are doing something to benefit humanity at large. It might sound over-the-top, but when you work to make the world a better place, the work you do is meant for everyone to benefit from. The lingering fear is that someone will take advantage of your idea and make money and exploit something that they really did not work for. But I think open hardware (and software) offers a solution. It's a new model, a new paradigm, and that means we, who know the old system have the duty to make the transition work. I'm serious. I believe that in 50 years or so, everything will be open, because the model is simply better. Open hardware sounds pretty futuristic to me.

The open hardware movement basically keeps all the greedy investors very far away. It's too risky, for them. But for those willing to work things out, get their hands dirty, and create, open hardware means uncapped potential to create new things, using the resource of combined knowledge and expertise. The old economic systems are falling apart because the people with the money are not the actual people who make things. Open hardware, for me means that I add my knowledge to a community of creators who keep multiplying the energy and innovation.

There is probably a license that will keep copycat projects from springing up while at the same time encouraging people to innovate. For me, It's not so much about preventing people from making money from it, as it is about keeping someone from just ripping it off. If someone wants to add their bag of tricks to what I made and sell it, how is that any different from what I have done? I mean, without the prototyping boards, it would have taken at least another year of research to get to market.

I think we are in a new position, because the underlying models of business and innovation are shifting, and yes, it's a big hairy mess of a thing to figure out, but that is why we love it.
I think when you really innovate, you create something in your own way, and that's what attracts people. It's not actually about the mechanics, but the sale is made based on your unique angle  or approach. Another perspective is that a copy only opens  public to the awareness of your product. If you can prove that your's is the best, you have made the sale and used the copier as a marketing tool.

6  Using Arduino / Programming Questions / Re: How long do instructions take to process? on: February 10, 2012, 05:11:31 pm

So what happens 71.5 minutes after booting when micros() wraps round back to zero again?  Compare with
unsigned long last_gyro_time ;

#define GYRO_MICROS 10000

void setup ()
  last_gyro_time = micros () ;

void loop ()
  if (micros () - last_gyro_time >= GYRO_MICROS)
    last_gyro_time += GYRO_MICROS ;
    GyroGo () ;

The subtraction in the if statement yields a value that will be correct whenever the value returned by micros() wraps round.

Your improvement for longer run times is very elegant. Thanks!~
7  Using Arduino / Programming Questions / Re: Gyro 3d rotational displacement using 2D polar coordinates? on: February 10, 2012, 02:03:56 pm
Thanks for the link! The rotation order is not a big deal apparently if you are using small angle approximation because the angles are so small that the approximation rounds them to nothing. I think my max speed will be less than .2 radians for each of the periodic integrations. This apparently is a good time to use the small angle approximation. Time will tell . . .
8  Using Arduino / Programming Questions / Re: How long do instructions take to process? on: February 10, 2012, 01:56:13 pm
 I've locked in timing for gyroscopic reading and musical notation purposes using the following method. On the Arduino 16mgz the timing resolution is limited to 4 microseconds and the 8mgz is 8 microseconds. This has been accurate enough for my needs.

Micros() gives the current time in microseconds. By dividing the current time by the rate that you want (for me 100 times a second = 10,000 micros) you get to know how many timing clicks of 1/100 of a second have passed. Each time you pass a 10,000 microsecond period, mark it by iterating a period counter (Gyro_PeriodCount). It has been exactly 10,000 micros when

micros() / 10,000 = (Gyro_PeriodCount + 1));

By running this code continuously you are watching the clock and at the right time, executing your timed code. The best part is you can be running many of these if statements in the same cycle (if their timing periods are not wildly variable)

  if (micros() / (10000)  >= (Gyro_PeriodCount + 1)){
    if (micros() / (15000)  >= (Color_PeriodCount + 1)){

Let me know if this is unclear. It avoids the relative timing problems that happen when you use delay();
9  Using Arduino / Programming Questions / Gyro 3d rotational displacement using 2D polar coordinates? on: February 10, 2012, 01:31:08 pm
I am using the ITG-3200 gyroscope and have it calibrated very well with very little drift. I'm building a toy prototype, so pinpoint accuracy is not a huge issue. The gyro is in the center of a ball.

I need to track the position of a single point (P) on the shell of a plastic sphere to trigger programmed actions when it is rotated certain directions relative to the user. I think spherical coordinates are the way to go, because they allow me to know how far it has moved from the starting position and use that as the offset for calculations dealing with the current position.  After some research I am still fuzzy on the exact process of turning the gyros digital x, y, and z angular rate into a 2d projection of my point in spherical coordinates.

The whole point of this is to remove the frame of reference of the rotating object  and instead, approximate the user's global frame of reference (from the initial conditions) close enough to allow rotations to be mapped relative to the user's body, (not tied to the axi of the sphere). This would mean directions like rotate ball left, rotate ball right, rotate forward, backwards etc. could be followed without reference to the accumulated rotational condition of the sphere.   smiley-roll-sweat

In short I want to integrate the speed of rotation to keep track of the 3d rotational displacement using 2D polar coordinates (dropping the radius because it stays constant)

This is what I think should work. (Any help or conceptual guidance will be appreciated)

A.) Start with x, y, z angular rate
B.) Integrate over time to get angular displacement for each axis (some small error will be present)
C.) Calculate the single compound angle w and it's arbitrary rotation matrix (and axis)
D.) multiply the coordinates of initial point P with the resultant rotation matrix of step C
E.) covert displaced point in Cartesian coords to polar coords
F.) Use the Azimuth and Zenith of the polar mapping as if it were an x-y plane, effectively projection mapping the point on the sphere into a two dimensional array for driving various actions (like blink this light and make this sound when the point P enters polar region x, y)

I learned projective geometry in art school, but never did calculus. This might be a major over-complication. It seems like more work than I probably need to do.  Or it might be yet too simple. I'm going to continue hashing it out but feel free to advise if you are familiar with this math.

I have read the somewhat dated primer document here: but turning those equations into Arduino code is boggling my brain. Thanks.
Pages: [1]