Cymatic/Chlandi simulation


    Mar 27 2007 | 1:39 pm
    I'd like to write a simulation of a Cymatic Tonoscope.
    I plan to create a physical model of a circular membrane, sand will be sprinkled on top of it. When a person speaks into a microphone the membrane will vibrate causing the sand to move into the nodal lines forming standing wave patterns.
    Obviously this will be done in real time.
    I have looked at PMPD in PD and I dont think it's possible.
    Any ideas guys? I really want to write this :)

    • Mar 27 2007 | 2:10 pm
      do you really want to move the sand? I guess that if you just make the membrane vibrate according to the speakers voice the sand would move. I did get sound on a membrane if you're interested in that but it was a different technique which had very few to do with max.
      best
      pieter
      On 27 Mar 2007, at 15:39, Carl Knott wrote:
      > > I'd like to write a simulation of a Cymatic Tonoscope. > > I plan to create a physical model of a circular membrane, sand will > be sprinkled on top of it. When a person speaks into a microphone > the membrane will vibrate causing the sand to move into the nodal > lines forming standing wave patterns. > > Obviously this will be done in real time. > > I have looked at PMPD in PD and I dont think it's possible. > > Any ideas guys? I really want to write this :) >
    • Mar 27 2007 | 2:30 pm
      Yes, I'd love to see your membrane example. Is it done in real-time and how did you implement it?
    • Mar 27 2007 | 2:46 pm
      I used solenoids hooked onto a large amplifier (just to have enough pxer) the solenoids were connected to the membrane and the solenoids functioned as a large speaker. I guess you could look at it as a normal speaker. You can look into the MFB (motion feedback) speakers of the late 60's. If you could make a closed system in wich the space between the membrane and the speaker is airtight your vibrations of the speaker are transposed onto the membrane still no max involved
      grtz p
      On 27 Mar 2007, at 16:30, Carl Knott wrote:
      > > Yes, I'd love to see how your membrane example. Is it done in real- > time and how did you implement it? >
    • Mar 27 2007 | 6:17 pm
      Ahh, though interesting I dont think that'll help as I want to do it in software.. any more ideas guys?
    • Mar 28 2007 | 9:40 am
      Carl Knott schrieb: > Ahh, though interesting I dont think that'll help as I want to do it > in software.. any more ideas guys?
      Why do you think its not possible with PMPD? As the modes probably only show up with lower frequencies, you can filter and downsample the incoming audio and then apply it to PMPD models...
      Another approach is to crossfade pictures according to the knowledge of the modes. Analyze the sound for the resonant frequencies or use filters and then mix the images... I know that's a fake which could lead to wrong results...
      Stefan
      -- Stefan Tiedje------------x------- --_____-----------|-------------- --(_|_ ----|-----|-----()------- -- _|_)----|-----()-------------- ----------()--------www.ccmix.com
    • Mar 28 2007 | 11:11 am
      Paul Bourke is the man.
      I'm not sure my math is up to it. But here's a first thought:
      If you represent the surface of a (square) plate as a matrix of dimension LxL, the value of the cell [x,y] is:
      cos(n pi x / L) cos(m pi y / L) - cos(m pi x / L) cos(n pi y / L)
      Might this be in the scope of jit.expr?
      The sand should move towards areas where the value is nearest zero (you could do some processing on the matrix to get a topology or field out of it, and then put your sand particle system through it). Differentiate the matrix (jit.op @op -, with feedback) and you will get the slope at x,y; then move the sand particle by a fraction of that xy (jit.repos?)
      n and m I believe are two frequency components of the input signal, not entirely sure. Putting arbitrary signals through might be hard; maybe do an FFT and pick the peak bins? Or use fiddle~/analyze~?
      I'm actually tempted to try it.
      For the circular plate, I think I would use a matrix of r & theta, then do a cartesian to polar conversion to represent it visually. No idea how to implement a Bessel function.
      Chladni Plate Mathematics, 2D
      Written by Paul Bourke March 2003
      The basic experiment that is given the name "Chladni" consists of a plate or drum of some shape, possibly constrained at the edges or at a point in the center, and forced to vibrate historically with a violin bow or more recently with a speaker. A fine sand or powder is sprinkled on the surface and it is allowed to settle. It will do so at those parts of the surface that are not vibrating, namely at the nodes of vibration.
      The equation for the zeros of the standing wave on a square Chladni plate (side length L) constrained at the center is given by the following.
      cos(n pi x / L) cos(m pi y / L) - cos(m pi x / L) cos(n pi y / L) = 0 where n and m are integers. The Chladni patterns for n,m between 1 and 5 are shown below, click on the image for a larger version or click on the "continuous" link for the standing wave amplitude maps. Note that the solution is uninteresting for n = m and the lower half of the table is the same as the upper half, namely (n1,m2) = (n2,m1).
      Circular plate
      For a circular plate with radius R the solution is given in terms of polar coordinates (r,theta) by
      Jn(K r) (C1 cos(n theta) + C2 sin(n theta))
      Where Jn is the n'th order Bessel function. If the plate is fixed around the rim (eg: a drum) then K = Znm / R, Znm is the m'th zero of the n'th order Bessel function. The term "Znm r / R" means the Bessel function term goes to zero at the rim as required by the constraint of the rim being fixed.
      On Mar 27, 2007, at 6:39 AM, Carl Knott wrote:
      > > I'd like to write a simulation of a Cymatic Tonoscope. > > I plan to create a physical model of a circular membrane, sand will > be sprinkled on top of it. When a person speaks into a microphone > the membrane will vibrate causing the sand to move into the nodal > lines forming standing wave patterns. > > Obviously this will be done in real time. > > I have looked at PMPD in PD and I dont think it's possible. > > Any ideas guys? I really want to write this :)
      grrr waaa www.grahamwakefield.net
    • Mar 28 2007 | 11:53 am
      OK, I got enthusiastic... enjoy!
      grrr waaa www.grahamwakefield.net
    • Mar 28 2007 | 12:58 pm
      Brilliant Graham your posts have been very helpful, I'll try your example at home tonight :)
    • Apr 05 2007 | 8:04 pm
      Graham Wakefield skrev: > OK, I got enthusiastic... enjoy! ... A magical patch, that. And might I also add that your website holds some of the most interesting descriptions of academic processes I have read in a long time!
      Thank you.
      Andreas.
    • Apr 06 2007 | 6:09 am
      Just for kicks, I wondered what a Chladni plate might look like if it was a three-dimensional box with the virtual sand shaking inside it (yeah, physically impossible but that's not what we like computers for anyway)... so, the equations might be wrong, but the images the jit.gl.volume makes are definitely interesting, in a old-flakes new- flakes way...
    • Apr 07 2007 | 6:05 pm
      On 4/6/07, Graham Wakefield wrote: > Just for kicks, I wondered what a Chladni plate might look like if it > was a three-dimensional box with the virtual sand shaking inside it > (yeah, physically impossible but that's not what we like computers > for anyway)... so, the equations might be wrong, but the images the > jit.gl.volume makes are definitely interesting, in a old-flakes new- > flakes way...
      ISTR seeing a video of an artist's project installed on an airplane flying a parabolic arc to create momentary weightlessness. It consisted of a closed transparent plastic cylinder with a speaker at one end. A modest quantity of puffed rice or other small granular objects was enclosed in the cylinder. In weightless conditions, acoustic waves sorted the grains into 3-D patterns. I would guess that could be called a 3D Chladni.
      There were videos of it out on the net, but I couldn't locate them. Maybe someone in the forum remembers.
      -- Paul
      -- ----- |(*,+,#,=)(#,=,*,+)(=,#,+,*)(+,*,=,#)| -----
    • May 26 2008 | 5:10 am
      I hunted around for the link you mentioned.
      Is this it?
    • May 29 2008 | 11:45 pm
      That microgravity experiment reminds me of this bi-axial rotation mould making technique this guy purportedly tested. http://video.google.ca/videoplay?docid=148004506625128048 Claims he encountered the idea while trying to mentally reverse engineer an extra-terrestrial powerplants construction.
      If only he had used a Buchla instead of that Moog-we'd have Fusion powered "Hitachi Magic Wands" by now!
      I'm thinking this would of been helpful as a dynamic surface. Unfortunately, looks like the links to this amazing patch have all dried up. http://www.lma.cnrs-mrs.fr/~IM/Projets/en_scansynth.htm Donut understand why this never received more attention. One of my favorite patches.
    • May 30 2008 | 1:12 am
      maxobjects.com is your friend - do a search for 'scansynth'
      Brad
      On 29-May-08, at 5:45 PM, Ryan C. Dean wrote:
      > > That microgravity experiment reminds me of this bi-axial rotation > mould making technique this guy purportedly tested. > http://video.google.ca/videoplay?docid=148004506625128048 > Claims he encountered the idea while trying to mentally reverse > engineer an extra-terrestrial powerplants construction. > > If only he had used a Buchla instead of that Moog-we'd have Fusion > powered "Hitachi Magic Wands" by now! > > > I'm thinking this would of been helpful as a dynamic surface. > Unfortunately, looks like the links to this amazing patch have all > dried up. > http://www.lma.cnrs-mrs.fr/~IM/Projets/en_scansynth.htm > Donut understand why this never received more attention. > One of my favorite patches.